diff --git a/x11-wm/Makefile b/x11-wm/Makefile index 1a06782520a2..02c0f00363e4 100644 --- a/x11-wm/Makefile +++ b/x11-wm/Makefile @@ -1,129 +1,130 @@ COMMENT = X11 window managers SUBDIR += afterstep SUBDIR += afterstep-stable SUBDIR += amiwm SUBDIR += antiwm SUBDIR += aphelia SUBDIR += awesome SUBDIR += awesome-vicious SUBDIR += bbkeys SUBDIR += bbpager SUBDIR += berry SUBDIR += blackbox SUBDIR += bspwm SUBDIR += cage SUBDIR += chamfer SUBDIR += compiz SUBDIR += compiz-plugins-extra SUBDIR += compiz-plugins-main SUBDIR += compiz-plugins-unsupported SUBDIR += compizconfig-backend-gconf SUBDIR += compton SUBDIR += ctwm SUBDIR += cwm SUBDIR += devilspie SUBDIR += durden + SUBDIR += dwl SUBDIR += dwm SUBDIR += e16 SUBDIR += e16-docs SUBDIR += echinus SUBDIR += emerald SUBDIR += enlightenment SUBDIR += epplets SUBDIR += euclid-wm SUBDIR += evilwm SUBDIR += fbcmd SUBDIR += fluxbox SUBDIR += fluxter SUBDIR += flwm SUBDIR += fvwm2 SUBDIR += fvwm3 SUBDIR += gamescope SUBDIR += herbstluftwm SUBDIR += hikari SUBDIR += hs-xmonad SUBDIR += i3 SUBDIR += i3-gaps SUBDIR += icewm SUBDIR += jewel SUBDIR += jwm SUBDIR += kickshaw SUBDIR += kwinft SUBDIR += labwc SUBDIR += larswm SUBDIR += leftwm SUBDIR += libcompizconfig SUBDIR += libdockapp SUBDIR += libwraster SUBDIR += lwm SUBDIR += lxappearance-obconf SUBDIR += lxmed SUBDIR += lxqt SUBDIR += lxqt-panel SUBDIR += lxqt-session SUBDIR += lxsession SUBDIR += marco SUBDIR += mcwm SUBDIR += metacity SUBDIR += muffin SUBDIR += mutter SUBDIR += nscde SUBDIR += obconf SUBDIR += obconf-qt SUBDIR += obpager SUBDIR += openbox SUBDIR += oroborus SUBDIR += pager SUBDIR += peksystray SUBDIR += pekwm SUBDIR += phluid SUBDIR += phoc SUBDIR += picom SUBDIR += piewm SUBDIR += plasma5-kdecoration SUBDIR += plasma5-kwin SUBDIR += pwm SUBDIR += qtile SUBDIR += ratmen SUBDIR += ratpoison SUBDIR += river SUBDIR += rubygem-uh-layout SUBDIR += rubygem-uh-wm SUBDIR += sawfish SUBDIR += sdorfehs SUBDIR += selectwm SUBDIR += skippy-xd SUBDIR += spectrwm SUBDIR += stumpwm SUBDIR += subtle SUBDIR += sway SUBDIR += tinywm SUBDIR += transset SUBDIR += treewm SUBDIR += tvtwm SUBDIR += twm SUBDIR += vtwm SUBDIR += w9wm SUBDIR += wayfire SUBDIR += wayfire-plugins-extra SUBDIR += windowmaker SUBDIR += wm2 SUBDIR += wmakerconf SUBDIR += wmanager SUBDIR += wmanager-addons SUBDIR += wmconfig SUBDIR += wmii SUBDIR += wmii-devel SUBDIR += wmname SUBDIR += wmx SUBDIR += xcompmgr SUBDIR += xfce4 SUBDIR += xfce4-desktop SUBDIR += xfce4-panel SUBDIR += xfce4-panel-profiles SUBDIR += xfce4-session SUBDIR += xfce4-wm SUBDIR += yeahwm .include 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 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