Xfwl4: Xfce to get its own Wayland compositor
The Xfce team wants to invest collected donations in the development of the Wayland compositor xfwl4.
(Image: Screenshot / David Wolski)
The lean Xfce desktop has already tentatively reached out towards Wayland, albeit so far only experimentally and with limitations. Now, however, Xfce is to receive better Wayland support with a dedicated compositor – xfwl4 – with renewed vigor.
The Xfce team has now announced this in a blog post. Apparently, the project was able to collect significant donations from the community and has decided to use them to fund Brian Tarricone, who has been active as an Xfce core developer for a long time. Tarricone is to create xfwl4, “a brand new Wayland compositor for Xfce.” A significant portion of the project donations will go towards this, but the Xfce team believes it is an important investment in the future of the Xfce desktop environment.
Xfce: Goals for Wayland Compositor
Xfwl4 is intended to provide the same functions and behavior as xfwm4 – as far as possible, given the differences between X11 and Wayland. The developers aim for using xfwl4 to feel the same as xfwm4 under X11. “We even plan to reuse existing xfwm4 configuration dialogs and xfconf settings to ensure a seamless transition,” the developers write. Xfwl4 is not to be based on existing xfwm4 code but will be programmed from scratch in Rust. The developers have decided to program the compositor based on the building blocks of smithay.
The first attempt to implement a Wayland compositor for Xfce by adapting the existing xfwm4 code, which would result in simultaneous support for X11 and Wayland, proved to be the wrong approach. The structure of xfwm4 makes it difficult to cast window management behavior into generic interfaces that do not contain X11 specifications. Refactoring the code is risky, as it can introduce new bugs in X11 – working with two parallel codebases allows for faster development and experimentation with the Wayland compositor without the risk of breaking xfwm4. Furthermore, the existing codebase would force developers to use C and wlroots, when better alternatives exist.
Brian Tarricone has evaluated wlroots and smithay and opted for the latter as the basis for xfwl4, as it supports most of the official Wayland protocol extensions, as well as the wlroots and some KDE protocols. Tarricone also prefers Rust over C, which also simplifies avoiding memory-based errors and thus reduces the likelihood of crashes, for example.
Videos by heise
Further tasks pending
Several tasks are pending. First, xfwl4 must become functionally equivalent to xfwm4. This requires major changes to session startup, as the Wayland compositor is the root of a session, rather than xfce4-session. Support for xdg-session management is also to be added, and support for XWayland is also on the roadmap. Furthermore, the build system must be adapted and updated accordingly. Tarricone has already started with the project. The Xfce team hopes that the first development releases could appear as early as mid-year.
(dmk)