Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
releng:wayland_roadmap [2025/10/22 23:17] – Update Overall plans, mention 4.22 and update screenshooter info andreldmreleng:wayland_roadmap [2026/08/19 08:43] (current) – [Panel Plugins] gael
Line 21: Line 21:
  
 For Xfce 4.22, the stabilization work continues. Reaching X11 feature parity is not yet our target. For Xfce 4.22, the stabilization work continues. Reaching X11 feature parity is not yet our target.
 +
 +We are now working on our own [[https://gitlab.xfce.org/xfce/xfwl4|Wayland compositor]]. It is under heavy development, somewhat usable but not stable yet. Please see [[/xfwl4_faq|its FAQ]] for further information.
  
 Check the table in the [[#component specific status]] section for details and labelled issues by group: Check the table in the [[#component specific status]] section for details and labelled issues by group:
Line 42: Line 44:
   * Do not depend on XWayland   * Do not depend on XWayland
     * No xsettings     * No xsettings
-  * Use wlroots over libmutter+  * Use smithay over wlroots and libmutter for our compositor
     * keep the possibility to run xfdesktop and xfce4-panel as separate components     * keep the possibility to run xfdesktop and xfce4-panel as separate components
     * Prevent dependency on libgnome-desktop     * Prevent dependency on libgnome-desktop
     * xfce4-panel and xfdesktop have been ported to Wayland assuming our compositor will be based on wlroots.     * xfce4-panel and xfdesktop have been ported to Wayland assuming our compositor will be based on wlroots.
-    * We plan to port xfwm4 to Wayland using wlroots but it will only be for Xfce 4.22 at best.+    * We plan to keep xfwm4 as X11-onlyfor Wayland a brand new compositor called xfwl4 was created.
   * Keep X11 compatibility for the foreseeable future   * Keep X11 compatibility for the foreseeable future
     * Nvidia support to Wayland is still problematic, one more reason to keep X11 backward compatibility (nouveau driver usually is slower)     * Nvidia support to Wayland is still problematic, one more reason to keep X11 backward compatibility (nouveau driver usually is slower)
     * Wayland compositors which were written from scratch like Weston or sway will never run as a x11 window manager. But others which started as x11 window managers such as kwin or mutter still keep their x11 window management code     * Wayland compositors which were written from scratch like Weston or sway will never run as a x11 window manager. But others which started as x11 window managers such as kwin or mutter still keep their x11 window management code
     * FreeBSD has decent [[https://docs.freebsd.org/en/books/handbook/wayland/|support]] for Wayland, OpenBSD is still [[https://www.openbsd.org/papers/eurobsdcon2023-matthieu-wayland-openbsd.pdf|working on supporting]] Wayland     * FreeBSD has decent [[https://docs.freebsd.org/en/books/handbook/wayland/|support]] for Wayland, OpenBSD is still [[https://www.openbsd.org/papers/eurobsdcon2023-matthieu-wayland-openbsd.pdf|working on supporting]] Wayland
 +    * We will archive this by having both a window manager (xfwm4/X11) and a compositor (xfwl4/wayland)
  
 ---- ----
Line 58: Line 61:
 === Core components === === Core components ===
  
-This table reflects the current status of what's released as 4.19 or git master.+This table reflects the current status of what's released as 4.21 or git master.
  
 ^ Component ^ Wayland Support ^ Remarks ^ ^ Component ^ Wayland Support ^ Remarks ^
Line 71: Line 74:
 | xfconf | yes | | | xfconf | yes | |
 | [[#xfdesktop]] | yes | See below | | [[#xfdesktop]] | yes | See below |
-| xfwm4 | no | |+| xfwm4 | not planned xfwl4 is its Wayland counterpart |
 | [[#xfce4-power-manager]] | yes | See below | | [[#xfce4-power-manager]] | yes | See below |
 | tumbler | yes | | | tumbler | yes | |
Line 118: Line 121:
 | xfburn | yes | | | xfburn | yes | |
 | parole | yes | player window is not embedded ([[https://gitlab.xfce.org/apps/parole/-/issues/134|parole#134]]), no systray icon ([[https://gitlab.xfce.org/apps/parole/-/issues/126|parole#126]]) | | parole | yes | player window is not embedded ([[https://gitlab.xfce.org/apps/parole/-/issues/134|parole#134]]), no systray icon ([[https://gitlab.xfce.org/apps/parole/-/issues/126|parole#126]]) |
-| [[#xfce4-screenshooter]] | yes | partial, see below |+| [[#xfce4-screenshooter]] | yes | Active Window not supported |
 | xfce4-screensaver | no | Port to Wayland is essentially done [[https://gitlab.xfce.org/apps/xfce4-screensaver/-/merge_requests/28|xfce4-screensaver!28]] \\ But this requires [[https://gitlab.xfce.org/kelnos/libwlembed|libwlembed]], which is still experimental and has no release at this stage (2024-02-04) | | xfce4-screensaver | no | Port to Wayland is essentially done [[https://gitlab.xfce.org/apps/xfce4-screensaver/-/merge_requests/28|xfce4-screensaver!28]] \\ But this requires [[https://gitlab.xfce.org/kelnos/libwlembed|libwlembed]], which is still experimental and has no release at this stage (2024-02-04) |
 | xfmpc | yes | | | xfmpc | yes | |
Line 156: Line 159:
 ^ Component ^ Wayland Support ^ Remarks ^ ^ Component ^ Wayland Support ^ Remarks ^
 | xfce4-battery-plugin | yes | | | xfce4-battery-plugin | yes | |
-| xfce4-calculator-plugin | yes | insensitive text entry |+| xfce4-calculator-plugin | yes | |
 | xfce4-clipman-plugin | yes | [[https://gitlab.xfce.org/panel-plugins/xfce4-clipman-plugin/-/merge_requests/26|Ported]] via wlr-data-control \\ TODO: [[https://gitlab.xfce.org/panel-plugins/xfce4-clipman-plugin/-/issues/87|use status notifier instead of status icon]] | | xfce4-clipman-plugin | yes | [[https://gitlab.xfce.org/panel-plugins/xfce4-clipman-plugin/-/merge_requests/26|Ported]] via wlr-data-control \\ TODO: [[https://gitlab.xfce.org/panel-plugins/xfce4-clipman-plugin/-/issues/87|use status notifier instead of status icon]] |
 | xfce4-cpufreq-plugin | yes | | | xfce4-cpufreq-plugin | yes | |
 | xfce4-cpugraph-plugin | yes | | | xfce4-cpugraph-plugin | yes | |
 | xfce4-diskperf-plugin | yes | | | xfce4-diskperf-plugin | yes | |
-| xfce4-docklike-plugin | yes | Requires libxfce4windowing 4.19.3 | +| xfce4-docklike-plugin | yes | Requires libxfce4windowing 4.19.|
-| xfce4-embed-plugin | no | unmaintained, gtk2 |+
 | xfce4-eyes-plugin | yes | the pointer is not followed outside the panel | | xfce4-eyes-plugin | yes | the pointer is not followed outside the panel |
 | xfce4-fsguard-plugin | yes | | | xfce4-fsguard-plugin | yes | |
Line 173: Line 175:
 | xfce4-netload-plugin | yes | | | xfce4-netload-plugin | yes | |
 | xfce4-notes-plugin | yes | | | xfce4-notes-plugin | yes | |
-| xfce4-places-plugin | yes | icon issue, critical errors when removing the plugin +| xfce4-places-plugin | yes | | 
-| xfce4-pulseaudio-plugin | yes | with warnings (needs to be rechecked) |+| xfce4-pulseaudio-plugin | yes | |
 | xfce4-sample-plugin | yes | | | xfce4-sample-plugin | yes | |
 | xfce4-sensors-plugin | yes | | | xfce4-sensors-plugin | yes | |
-| xfce4-smartbookmark-plugin | yes | insensitive text entry |+| xfce4-smartbookmark-plugin | yes | |
 | xfce4-stopwatch-plugin | yes | | | xfce4-stopwatch-plugin | yes | |
 | xfce4-systemload-plugin | yes | | | xfce4-systemload-plugin | yes | |
-| xfce4-time-out-plugin | yes | coredumps on pause and critical errors when removing/re-adding the plugin |+| xfce4-time-out-plugin | yes | |
 | xfce4-timer-plugin | yes | | | xfce4-timer-plugin | yes | |
-| xfce4-verve-plugin | yes | insensitive text entry |+| xfce4-verve-plugin | yes | |
 | xfce4-wavelan-plugin | yes | | | xfce4-wavelan-plugin | yes | |
 | xfce4-weather-plugin | yes | | | xfce4-weather-plugin | yes | |
-| xfce4-whiskermenu-plugin | yes | icons issue, menu window floating +| xfce4-whiskermenu-plugin | yes | | 
-| xfce4-windowck-plugin | no | [[https://gitlab.xfce.org/panel-plugins/xfce4-windowck-plugin/-/issues/37|to be fixed]], exits early and removes itself on Wayland for now +| xfce4-windowck-plugin | yes | [[https://gitlab.xfce.org/panel-plugins/xfce4-windowck-plugin/-/issues/37|Requires libxfce4windowing 4.20.6]] | 
-| xfce4-xkb-plugin | no | Non-portable to Wayland in the near future, exits early and removes itself for now |+| xfce4-xkb-plugin | no | Non-portable to Wayland in the near future, shows a placeholder on Wayland for now |
  
 ---- ----
Line 195: Line 197:
 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. 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)+If you run a NVidia GPU, you might need to use the "Nouveau" driver for testing. If using the proprietary NVidia driver, try version ≥ 495 which supports [[https://en.wikipedia.org/wiki/Mesa_(computer_graphics)#Generic_Buffer_Management|GBM]], however, it's not guaranteed everything will work smoothly. 
 + 
 +Originally we relied on wlroots compositors such as labwc and wayfire, which should work fine with Xfce components, but nowadays xfwl4 is our target compositor.
  
-A wlroots compositor is almost 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.+<note important>Outdated information below, review is pending. Xfwl4 provides session desktop file which allows launching from a display manager.</note>
  
 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): 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):
Line 215: Line 219:
   * [[https://frontpagelinux.com/articles/a-deep-dive-into-the-wayland-protocol-for-linux|A deep dive into the wayland protocol]]   * [[https://frontpagelinux.com/articles/a-deep-dive-into-the-wayland-protocol-for-linux|A deep dive into the wayland protocol]]
   * [[https://gitlab.xfce.org/xfce/libxfce4ui/-/commit/57410e2dffde5271443809a0dbd0280be262ba47|Check if current display is a wayland display]]   * [[https://gitlab.xfce.org/xfce/libxfce4ui/-/commit/57410e2dffde5271443809a0dbd0280be262ba47|Check if current display is a wayland display]]
 +  * [[https://alexxcons.github.io/blogpost_15.html|Xfwl4 - The roadmap for a Xfce Wayland Compositor]]
  
 [[|Back to Top]] [[|Back to Top]]