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

Reply via email to