xfwm4-wayland: wlroots branch merged into wayland branch

adlo adloconwy at gmail.com
Fri Dec 23 09:37:36 UTC 2022

My wayland port of xfwm4 currently consists of two binaries, a compositor and a helper client. The compositor sends events to the helper client using a private protocol. The helper client controls the compositor. The helper client basically contains all the code of the original xfwm4. The tabwin widget is rendered by the helper client. Essentially my Wayland compositor is behaving like an X server and my helper client acts like a traditional X11 window manager.

The compositor-and-helper-client approach works fine for the tabwin, but it may have limitations when attempting to port server-side decorations. I suppose copying the X11 approach could result in a lot of pointless back-and-forth between the helper client and server. How could I port xfwm4's window decorations code to Wayland?

Also, window thumbnails may be a very difficult problem. There isn't even an agreed way to do that on Wayland. Should the compositor render the thumbnails, or should it pass the window's buffer to a client? Or another way I haven't thought of?

My compositor currently consists of two binaries. I suppose if I wanted to make it one binary, the GTK code would have to be removed as afaik you can't do GTK server side? I don't necessarily want to make it one binary.

How does mutter manage to be one binary? On X11, the window manager is a client but on Wayland the window manager is a server, so the directionality of X11 and Wayland is the complete opposite.


> On 16 Dec 2022, at 06:58, adlo <adloconwy at gmail.com> wrote:
> The wlroots version of xfwm4-wayland now has partial support for the
> wlr-foreign-toplevel protocol.
> I have now declared feature parity with the libweston version, so I
> have merged the wlroots branch into the wayland branch.
> Link to the git repository:
> https://github.com/adlocode/xfwm4/tree/wayland
> Regards
> adlo

More information about the wayland-devel mailing list