diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2019-11-10 15:37:37 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2019-11-10 15:37:37 +0000 |
commit | 69e65b6fe5ec0bca456542d730b00a897b2bce19 (patch) | |
tree | 8aed14f121e49dd7ec286e23f75226eb2622e828 /x11-wm/chamfer | |
parent | 7142b5d3e16b11908199dc8bddbcb450a5b76709 (diff) | |
download | ports-69e65b6fe5ec0bca456542d730b00a897b2bce19.tar.gz ports-69e65b6fe5ec0bca456542d730b00a897b2bce19.zip |
x11-wm/chamfer: add new port
Chamferwm is a dynamic tiling window manager with a built-in Vulkan
based compositor. Besides aiming to be a fully featured and highly
configurable window manager, significant effort is put to provide a
complete control over the appearance of the desktop. With its shader
based customization system, Chamferwm enables rendering of arbitrary
window decorations, borders and effects, maximizing the potential for
visual personalization.
Window manager:
- Dynamic horizontal and vertical tiling with gaps and stacking
- Specify container size restrictions, overlap when necessary
- Resize and translate individual containers in their place while
keeping the surrounding layout
- Floating containers and automatic dialog, dock, widget etc. handling
- Yank and paste containers to move them within the tree hierarchy
along with typical move operations
- Configuration with python, scriptable behaviour with client and
container specific callbacks
- Fully keyboard controllable
Compositor:
- Vulkan renderer
- Arbitrary window decorations and borders with user supplied shaders
- Per-client materials
- Optional, alternatively use any other external compositor
https://jaelpark.github.io/chamferwm-docs/
Notes
Notes:
svn path=/head/; revision=517213
Diffstat (limited to 'x11-wm/chamfer')
-rw-r--r-- | x11-wm/chamfer/Makefile | 55 | ||||
-rw-r--r-- | x11-wm/chamfer/distinfo | 3 | ||||
-rw-r--r-- | x11-wm/chamfer/files/patch-main.cpp | 13 | ||||
-rw-r--r-- | x11-wm/chamfer/pkg-descr | 27 | ||||
-rw-r--r-- | x11-wm/chamfer/pkg-plist | 10 |
5 files changed, 108 insertions, 0 deletions
diff --git a/x11-wm/chamfer/Makefile b/x11-wm/chamfer/Makefile new file mode 100644 index 000000000000..11d3b878b036 --- /dev/null +++ b/x11-wm/chamfer/Makefile @@ -0,0 +1,55 @@ +# $FreeBSD$ + +PORTNAME= chamfer +DISTVERSION= s20191106 +CATEGORIES= x11-wm + +MAINTAINER= jbeich@FreeBSD.org +COMMENT= Tiling X11 window manager with Vulkan compositor + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \ + glslc:graphics/shaderc \ + glm>0:math/glm +LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \ + ${PY_BOOST} \ + libvulkan.so:graphics/vulkan-loader \ + libxcb-cursor.so:x11/xcb-util-cursor \ + libxcb-keysyms.so:x11/xcb-util-keysyms \ + libxcb-icccm.so:x11/xcb-util-wm +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xlib>0:x11-toolkits/py-xlib@${PY_FLAVOR} + +USES= compiler:c++17-lang meson localbase pkgconfig python:3.3+ xorg +USE_GITHUB= yes +USE_XORG= xcb +GH_ACCOUNT= jaelpark +GH_PROJECT= ${PORTNAME}wm +GH_TAGNAME= 176bb1d +CXXFLAGS+= -Wno-narrowing + +post-patch: + @${REINPLACE_CMD} -e 's,/usr,${PREFIX},' \ + ${WRKSRC}/src/config.cpp ${WRKSRC}/src/main.cpp +# XXX import('python').find_installation().dependency() +# XXX https://github.com/mesonbuild/meson/issues/4788 + @${REINPLACE_CMD} -e '/boost/!s/python3/python-${PYTHON_VER}/' \ + -e '/boost/s/python3/python${PYTHON_SUFFIX}/' \ + ${WRKSRC}/meson.build + +do-install: + ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/${PORTNAME} \ + ${STAGEDIR}${PREFIX}/bin + ${MKDIR} ${STAGEDIR}${DATADIR}/shaders + ${INSTALL_DATA} ${INSTALL_WRKSRC}/*.spv \ + ${STAGEDIR}${DATADIR}/shaders + ${MKDIR} ${STAGEDIR}${DATADIR}/config + ${INSTALL_DATA} ${WRKSRC}/config/config.py \ + ${STAGEDIR}${DATADIR}/config/config.py.sample + ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions/ + ${INSTALL_DATA} ${WRKSRC}/share/${PORTNAME}.desktop \ + ${STAGEDIR}${PREFIX}/share/xsessions/ + +.include <bsd.port.mk> diff --git a/x11-wm/chamfer/distinfo b/x11-wm/chamfer/distinfo new file mode 100644 index 000000000000..220c37cb92ff --- /dev/null +++ b/x11-wm/chamfer/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1573053413 +SHA256 (jaelpark-chamferwm-s20191106-176bb1d_GH0.tar.gz) = 9821401d30cfb7c3babdd63322d37318314a430f8dfba82b067559597146102e +SIZE (jaelpark-chamferwm-s20191106-176bb1d_GH0.tar.gz) = 119191 diff --git a/x11-wm/chamfer/files/patch-main.cpp b/x11-wm/chamfer/files/patch-main.cpp new file mode 100644 index 000000000000..d88480bd121c --- /dev/null +++ b/x11-wm/chamfer/files/patch-main.cpp @@ -0,0 +1,13 @@ +- Add default shader path + +--- src/main.cpp.orig 2019-08-02 19:10:02 UTC ++++ src/main.cpp +@@ -806,7 +806,7 @@ int main(sint argc, const char **pargv){ + args::ValueFlag<uint> deviceIndexOpt(group_comp,"id","GPU to use by its index. By default the first device in the list of enumerated GPUs will be used.",{"device-index"}); + args::Flag debugLayersOpt(group_comp,"debugLayers","Enable Vulkan debug layers.",{"debug-layers",'l'},false); + args::Flag noScissoringOpt(group_comp,"noScissoring","Disable scissoring optimization.",{"no-scissoring"},false); +- args::ValueFlagList<std::string> shaderPaths(group_comp,"path","Shader lookup path. SPIR-V shader objects are identified by an '.spv' extension. Multiple paths may be specified.",{"shader-path"}); ++ args::ValueFlagList<std::string> shaderPaths(group_comp,"path","Shader lookup path. SPIR-V shader objects are identified by an '.spv' extension. Multiple paths may be specified.",{"shader-path"},{"/usr/share/chamfer/shaders"}); + + try{ + parser.ParseCLI(argc,pargv); diff --git a/x11-wm/chamfer/pkg-descr b/x11-wm/chamfer/pkg-descr new file mode 100644 index 000000000000..b94b30fe4a73 --- /dev/null +++ b/x11-wm/chamfer/pkg-descr @@ -0,0 +1,27 @@ +Chamferwm is a dynamic tiling window manager with a built-in Vulkan +based compositor. Besides aiming to be a fully featured and highly +configurable window manager, significant effort is put to provide a +complete control over the appearance of the desktop. With its shader +based customization system, Chamferwm enables rendering of arbitrary +window decorations, borders and effects, maximizing the potential for +visual personalization. + +Window manager: +- Dynamic horizontal and vertical tiling with gaps and stacking +- Specify container size restrictions, overlap when necessary +- Resize and translate individual containers in their place while + keeping the surrounding layout +- Floating containers and automatic dialog, dock, widget etc. handling +- Yank and paste containers to move them within the tree hierarchy + along with typical move operations +- Configuration with python, scriptable behaviour with client and + container specific callbacks +- Fully keyboard controllable + +Compositor: +- Vulkan renderer +- Arbitrary window decorations and borders with user supplied shaders +- Per-client materials +- Optional, alternatively use any other external compositor + +WWW: https://jaelpark.github.io/chamferwm-docs/ diff --git a/x11-wm/chamfer/pkg-plist b/x11-wm/chamfer/pkg-plist new file mode 100644 index 000000000000..545c3d586326 --- /dev/null +++ b/x11-wm/chamfer/pkg-plist @@ -0,0 +1,10 @@ +bin/chamfer +@sample %%DATADIR%%/config/config.py.sample +%%DATADIR%%/shaders/default_fragment.spv +%%DATADIR%%/shaders/default_geometry.spv +%%DATADIR%%/shaders/default_vertex.spv +%%DATADIR%%/shaders/frame_fragment.spv +%%DATADIR%%/shaders/frame_geometry.spv +%%DATADIR%%/shaders/frame_vertex.spv +%%DATADIR%%/shaders/solid_fragment.spv +share/xsessions/chamfer.desktop |