summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11-wm/Makefile1
-rw-r--r--x11-wm/dwl/Makefile64
-rw-r--r--x11-wm/dwl/distinfo3
-rw-r--r--x11-wm/dwl/files/dwl.desktop7
-rw-r--r--x11-wm/dwl/pkg-descr28
5 files changed, 103 insertions, 0 deletions
diff --git a/x11-wm/Makefile b/x11-wm/Makefile
index 1a06782520a2..02c0f00363e4 100644
--- a/x11-wm/Makefile
+++ b/x11-wm/Makefile
@@ -24,6 +24,7 @@
SUBDIR += cwm
SUBDIR += devilspie
SUBDIR += durden
+ SUBDIR += dwl
SUBDIR += dwm
SUBDIR += e16
SUBDIR += e16-docs
diff --git a/x11-wm/dwl/Makefile b/x11-wm/dwl/Makefile
new file mode 100644
index 000000000000..e812062142a5
--- /dev/null
+++ b/x11-wm/dwl/Makefile
@@ -0,0 +1,64 @@
+PORTNAME= dwl
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.2.2
+CATEGORIES= x11-wm
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= dwm for Wayland
+
+LICENSE= CC0-1.0 GPLv3+ MIT
+LICENSE_COMB= multi
+LICENSE_FILE_CC0-1.0= ${WRKSRC}/LICENSE.tinywl
+LICENSE_FILE_GPLv3+ = ${WRKSRC}/LICENSE
+LICENSE_FILE_MIT= ${WRKSRC}/LICENSE.dwm
+
+BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
+ wayland-protocols>0:graphics/wayland-protocols \
+ wlroots>=0.15.0:x11-toolkits/wlroots
+LIB_DEPENDS= libwayland-server.so:graphics/wayland \
+ libwlroots.so:x11-toolkits/wlroots \
+ libinput.so:x11/libinput \
+ libxkbcommon.so:x11/libxkbcommon
+
+USES= gmake pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= djpohly
+PLIST_FILES= bin/${PORTNAME} \
+ share/wayland-sessions/${PORTNAME}.desktop
+PORTDOCS= README.md
+
+OPTIONS_DEFINE= ADDONS DOCS X11
+OPTIONS_DEFAULT=ADDONS X11
+
+ADDONS_DESC= Install extra applications: ${ADDONS_RUN_DEPENDS:C/\:.*//}
+ADDONS_RUN_DEPENDS?= alacritty:x11/alacritty \
+ bemenu-run:x11/bemenu
+
+X11_USES= xorg
+X11_USE= XORG=xcb
+X11_CFLAGS= -DXWAYLAND
+
+pre-everything::
+ @${ECHO_MSG} "To build ${PORTNAME} with your own config.h set ${PORTNAME:tu}_CONF variable"
+ @${ECHO_MSG} "either in ${.CURDIR:T}/Makefile.local, make.conf(5), environ(7) or command line e.g.,"
+ @${ECHO_MSG} "\$$ make install clean ${PORTNAME:tu}_CONF=/path/to/${PORTNAME}/config.h"
+
+post-extract:
+# .if exists(...) before bsd.port.mk ignores *_CONF in make.conf(5) and Makefile.local
+ @if [ -e "${${PORTNAME:tu}_CONF}" ]; then \
+ ${ECHO_MSG} "Creating symlink: config.h -> ${${PORTNAME:tu}_CONF}"; \
+ ${LN} -fs "${${PORTNAME:tu}_CONF}" ${WRKSRC}/config.h; \
+ fi
+
+post-patch-X11-off:
+ @${REINPLACE_CMD} 's/ xcb//' ${WRKSRC}/Makefile
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/wayland-sessions
+ ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.desktop \
+ ${STAGEDIR}${PREFIX}/share/wayland-sessions
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} "${PORTDOCS}" \
+ ${STAGEDIR}${DOCSDIR})
+
+.include <bsd.port.mk>
diff --git a/x11-wm/dwl/distinfo b/x11-wm/dwl/distinfo
new file mode 100644
index 000000000000..818d6bdafe8c
--- /dev/null
+++ b/x11-wm/dwl/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1640196876
+SHA256 (djpohly-dwl-v0.2.2_GH0.tar.gz) = c629fa7f38050db9850dc0cdf487191c725e6fc68f0c497f6297b48e873c9e5e
+SIZE (djpohly-dwl-v0.2.2_GH0.tar.gz) = 50077
diff --git a/x11-wm/dwl/files/dwl.desktop b/x11-wm/dwl/files/dwl.desktop
new file mode 100644
index 000000000000..4d792f27e5da
--- /dev/null
+++ b/x11-wm/dwl/files/dwl.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=dwl
+Exec=dwl
+TryExec=dwl
+Icon=
+Type=Application
+DesktopNames=wlroots
diff --git a/x11-wm/dwl/pkg-descr b/x11-wm/dwl/pkg-descr
new file mode 100644
index 000000000000..90eacd92744e
--- /dev/null
+++ b/x11-wm/dwl/pkg-descr
@@ -0,0 +1,28 @@
+dwl is a compact, hackable compositor for Wayland based on wlroots. It is
+intended to fill the same space in the Wayland world that dwm does in X11,
+primarily in terms of philosophy, and secondarily in terms of
+functionality. Like dwm, dwl is:
+
+- Easy to understand, hack on, and extend with patches
+- One C source file (or a very small number) configurable via config.h
+- Limited to 2000 SLOC to promote hackability
+- Tied to as few external dependencies as possible
+
+dwl is not meant to provide every feature under the sun. Instead, like dwm,
+it sticks to features which are necessary, simple, and straightforward to
+implement given the base on which it is built. Implemented default features:
+
+- Any features provided by dwm/Xlib: simple window borders, tags,
+ keybindings, client rules, mouse move/resize. Providing a built-in
+ status bar is an exception to this goal, to avoid dependencies on
+ font rendering and/or drawing libraries when an external bar could
+ work well.
+- Configurable multi-monitor layout support, including position and rotation
+- Configurable HiDPI/multi-DPI support
+- Provide information to external status bars via stdout/stdin
+- Urgency hints via xdg-activate protocol
+- Various Wayland protocols
+- XWayland support as provided by wlroots (can be enabled in config.mk)
+- Zero flickering - Wayland users naturally expect "every frame is perfect"
+
+WWW: https://github.com/djpohly/dwl