After 6 months of development, a preview release of the new Xfwl4 composite server using the Wayland protocol has been unveiled. Xfwl4 is built from scratch in Rust using the Smithay library. The need for this new composite server arose due to the challenges in enabling simultaneous support for X11 and Wayland in the existing codebase of the xfwm4 window manager, which was originally designed with strong integration of the X11 protocol, making it challenging to separate general windowing logic from X11 specifics.
Xfwl4 aims to replicate all the functions of xfwm4, including the capability to utilize existing xfconf settings and the configuration interface, but adapted for Wayland instead of X11. The development goal is to reach a point where users can seamlessly switch between Xfwl4 and xfwm4 without noticing any differences.
Xfwl4 includes advanced features such as revamped session launch logic, the implementation of Wayland protocol xdg-session-management, and support for launching X11 applications with XWayland. The code for Xfwl4 is released under the GPLv3 license, distinguishing it from the GPLv2 license of the xfwm4 window manager.
Built on the Smithay library, Xfwl4 leverages almost all official Wayland protocol extensions, as well as wlroots and KDE protocols. Similar to wlroots, Smithay provides high-level abstractions while allowing intervention in low-level systems to customize graphics output methods, handle input devices, manage Wayland protocols, and address desktop-building tasks.
The decision to develop Xfwl4 separately from xfwm4 was made to prevent stability issues and new errors that could arise during the process of adding Wayland support to xfwm4. The first release of Xfwl4, currently in alpha stage, does not yet encompass all planned features, including the absence of:
- Mouse and touchpad settings dialog
- Virtual desktop settings dialog
- Definition of exclusion zones along the screen edges for window placement