Hi NRK, Thanks for sharing xuv. One practical use case with dwm is Firefox requesting EWMH fullscreen _NET_WM_STATE_FULLSCREEN, which hides the tags. This can be handled with:
[FirefoxBlockWMFullscreen] event = ActiveFS class = firefox cmd = wmctrl -r :ACTIVE: -b remove,fullscreen This prevents WM level fullscreen while still allowing F11 style browser fullscreen. xuv feels like a nice complement to dwm and the general suckless workflow since it keeps the window manager simple while allowing event driven behavior externally. Also a small question regarding the repository layout. install.mk and the manpages are currently under etc/. From a packaging perspective I usually expect etc/ to contain only runtime configuration examples, with build logic and documentation separated. Was this intentional to mirror the installation layout? ---- Kind regards, r1w1s1 On Sun, Mar 1, 2026, at 3:13 PM, NRK wrote: > Hi all, > > I wanted to share the following tool which I have been using myself for the > past couple weeks: > > https://codeberg.org/NRK/xuv > > It's a X11 daemon that automatically runs commands triggered by events > specified by the user's configuration. > For example, to automatically kill compositor when a window enters fullscreen: > > [CompositorOff] > event = ActiveFS > cmd = pkill SomeCompositor > > And then to enable it back on: > > [CompositorOn] > event = ActiveFSLeave > cmd = SomeCompositor > > Events can be further filtered by the window name, class and instance. > The following events are currently supported: > > * Window becoming active/losing active. > * Window being focused/losing focus. > * Window being created/destroyed. > * Window being mapped/unmapped. > * Window entering/leaving fullscreen mode. > > More events can be added based on use-cases/feature-requests. > > Detailed documentation can be found in the manpages. > > Suggestions/feedback/bug-reports welcome. > > - NRK
