Xfce Wayland Development Roadmap

This document is intended for Xfce developers to keep track of Wayland development. This is a work in progress and does not imply any future implementation commitments.

Overall Plans

For Xfce 4.20, the plan is, to add preliminary support to Wayland to core components without losing X11 support. This doesn't mean that by the next major release an Xfce session on Wayland will offer all existing features, but we hope it will be minimally usable. We also intend to continue refining our applications to work acceptably on Wayland (those that already work or can be made to work with low effort).

Check the table in the component specific status section for details and labelled issues by group:


Long Term Goals

It is not clear yet which Xfce release will target a complete Xfce Wayland transition (or if such a transition will happen at all). Below is a list of larger tasks which would need to be done in some way for such a transition to occur.

Some of them are mostly agreed on by the Xfce devs.

Agreed guidelines


Component specific status

Core components

This table reflects the current status of what's released as 4.19 or git master.

Component Wayland Support Remarks
exo yes
libxfce4ui yes X11 code paths properly protected in libxfce4ui!110
libxfce4util yes
thunar yes
xfce4-appfinder yes
xfce4-panel yes See below
xfce4-session yes See xfce4-session!49 about limitations and how to use it
xfce4-settings yes See below
xfconf yes
xfdesktop yes See below
xfwm4 no
xfce4-power-manager yes See below
tumbler yes
garcon yes
thunar-volman yes
xfce4-dev-tools yes

xfce4-panel

xfdesktop

xfwm4

xfce4-settings

xfce4-power-manager


Applications

Component Wayland Support Remarks
xfce4-terminal yes drop-down requires layer-shell to work properly xfce4-terminal!72
mousepad yes
xfce4-notifyd yes
xfdashboard no crash on startup
xfce4-taskmanager yes no libwnck (appicons, xfce4-taskmanager#75), no “identify window”, no systray icon (xfce4-taskmanager#78)
xfce4-mixer yes
ristretto yes
catfish yes
xfburn yes
parole yes no systray icon (parole#126)
xfce4-screenshooter yes partial, see below
xfce4-screensaver no Port to Wayland is essentially done xfce4-screensaver!28
But this requires libwlembed, which is still experimental and has no release at this stage (2024-02-04)
xfmpc yes
xfce4-volumed-pulse no key bindings fail
xfce4-dict yes
gigolo yes
xfce4-panel-profiles yes

xfce4-notifyd

GTK doesn't appear to do anything special if you set a window to be override-redirect or always-on-top.

xfce4-screenshooter

Wayland does not specify a native interface for the compositor for taking screenshots and it looks like it never will. We decided to use wlroots' screencopy protocol because that's probably what our compositor will support.

At the moment only Entire Screen screenshots are supported (xfce4-screenshooter!52), Rectangle Selection will be implemented next but Active Window is going to be much trickier, perhaps we'll need a custom protocol for our compositor to take care of that.

If we want to support compositors that don't implement the protocol above, we have to add DBus Support for org.freedesktop.portal.Screenshot. This however is not planned and it's unlikely we'll ever fully support other compositors.


Thunar Plugins

Component Wayland Support Remarks
thunar-archive-plugin yes
thunar-media-tags-plugin yes
thunar-shares-plugin yes
thunar-vcs-plugin yes

Panel Plugins

See details in the xfce4-panel section about how to run external plugins on Wayland. At first, “yes” below simply means “doesn't crash”, even after some elementary manipulations (eventually). It does not mean that everything works like on X11.

Component Wayland Support Remarks
xfce4-battery-plugin yes
xfce4-calculator-plugin yes insensitive text entry
xfce4-clipman-plugin yes Ported via wlr-data-control
TODO: use status notifier instead of status icon
xfce4-cpufreq-plugin yes
xfce4-cpugraph-plugin yes
xfce4-diskperf-plugin yes
xfce4-docklike-plugin yes Requires libxfce4windowing 4.19.3
xfce4-embed-plugin no unmaintained, gtk2
xfce4-eyes-plugin yes the pointer is not followed outside the panel
xfce4-fsguard-plugin yes
xfce4-generic-slider yes
xfce4-genmon-plugin yes
xfce4-indicator-plugin yes
xfce4-mailwatch-plugin yes
xfce4-mount-plugin yes
xfce4-mpc-plugin yes though probably relying on non working stuff (?)
xfce4-netload-plugin yes
xfce4-notes-plugin yes
xfce4-places-plugin yes icon issue, critical errors when removing the plugin
xfce4-pulseaudio-plugin yes with warnings (needs to be rechecked)
xfce4-sample-plugin yes
xfce4-sensors-plugin yes
xfce4-smartbookmark-plugin yes insensitive text entry
xfce4-stopwatch-plugin yes
xfce4-systemload-plugin yes
xfce4-time-out-plugin yes coredumps on pause and critical errors when removing/re-adding the plugin
xfce4-timer-plugin yes
xfce4-verve-plugin yes insensitive text entry
xfce4-wavelan-plugin yes
xfce4-weather-plugin yes
xfce4-whiskermenu-plugin yes icons issue, menu window floating
xfce4-windowck-plugin no does not work (Libwnck)
xfce4-xkb-plugin no crashes (Libwnck)

Testing

Regarding the version to test: master, or latest dev release would be best. If you don't test master, best add info on which version you tested.

If you run a NVidia GPU, you will need to use the “Nouveau” driver for testing, Since the proprietary NVidia driver does not provide Wayland support. (Though some things might work in some cases)

A wlroots compositor is almost a prerequisite for most core components (as well as panel plugins and some apps), at least to ensure that all features ported to Wayland are available. The default compositor is labwc, but wayfire is another wlroots compositor on which tests have generally been carried out.

To start an Xfce session on Wayland, you can run startxfce4 --wayland from a tty, which will launch xfce4-session from labwc. If you want to use wayfire instead, you'll need to run startxfce4 --wayland wayfire and add this configuration first, as wayfire doesn't have a --startup option like labwc (see startxfce4 --help for details):

~/.config/wayfire.ini
[autostart]
session = xfce4-session

Configuration adaptations may be required for other compositors as well, if they also don't have a --startup option to pass to startxfce4.

A @datadir@/wayland-sessions/xfce-wayland.desktop file has also been added to xfce4-session for display managers, such as lightdm, with which this has been tested. The command line must also be modified in this file to use a compositor other than the default one.


Back to Top