Complete the GNOME Wayland port
Status: Planning
Description
In 3.10, we started the effort to make GNOME work on top of Wayland instead of X. As a result, GNOME shell can now operate as a Wayland compositor, the display panel is using mutter D-Bus interfaces to configure displays under both X and Wayland, and many GNOME applications have started to use client-side decorations and header bars.
The 3.10 feature was tracked in ThreePointNine/Features/WaylandSupport.
For 3.12, the focus is to
- Replace remaining X dependencies in the desktop with Wayland equivalents
- Port applications to run as Wayland clients instead of X clients
A lot more details and background information can be found here.
Owner
Matthias Clasen
Involved Parties
GNOME Shell team (OwenTaylor, JasperStPierre, GiovanniCampagna, Florian Muellner, ...),
GTK+ team (MatthiasClasen, Benjamin Otte, Alexander Larsson, EmmanueleBassi, ...),
Wayland and cogl developers (Kristian Høgsberg, Rob Bradford, NeilRoberts, ...)
gdm developers (Ray Strode, ...)
Happy volunteers (Rui Matos, David King, Richard Hughes, Bastien Nocera...)
Application developers
Current Status
Detailed information for the state of GTK+/Wayland and the GNOME shell port has been collected.
The Wayland compositor is being developed in the mutter wayland branch.
Information on trying GNOME / Wayland with jhbuild can be found here.
Remaining tasks for 3.10
- Build xwayland in fedora and other distributions (Adam)
Known limitations and regressions in 3.10/3.12
- Can't launch Wayland sessions from gdm
- Global keyboard shortcuts don't work
- Input handling tweaks (e.g. touchpad behaviours)
- Keyboard accessibility may not be there
- Performance not up to par yet
- Totem and clutter-gtk apps will not work without subsurfaces
- Direct accelerated rendering in X will not work
- Status icons may or may not work
- Hot corner and pointer barriers don't work
- Limited touchpad support
Tasks for 3.14
- Implement DND
697855 GTK+
- GNOME shell
707573 Implement HW cursors in GNOME shell
706963 Implement global and window keybindings
705523 No clipboard manager
- Implement startup notification
- Implement remaining window management functions
705515 Some fullscreen behaviours not implemented (scaling)
Resizing and maximization may not work perfectly (707401 implemented initial support, but we need to improve to get fully flicker-free maximization)
707079 Always on top won't work
707080 Always on current workspace won't work
707080 Moving between workspaces from window menu won't work
Switch to xdg_shell instead of wl_shell
- Implement remaining Wayland protocol pieces
- Support for Wayland sessions
706421 gnome-shell
gdm
Make the login screen work for both X and Wayland sessions. Details gdm branch
- Color management in GNOME shell (basic per-screen color correction already works)
- Wayland text protocol support in GNOME shell
- Accessibility support in GNOME shell
- Visual bell
- slow, sticky, bounce keys (this may benefit from libinputcommon)
- mousetweaks
- locate pointer
hot corner
706655 Pointer barriers
- Full touchpad support (this may benefit from libinputcommon)
- Wacom support
695737 Make clutter-gtk work under Wayland (needs subsurfaces)
- Make gstreamer work well under Wayland
712775 Move gsd cursor plugin functionality into mutter
A recent status update on the Wayland port can be found here: https://mail.gnome.org/archives/desktop-devel-list/2014-February/msg00199.html
How you can help
Eliminating X dependencies in applications can be very easy; just find an application on the list, and investigate why it is failing. If you want to get more involved, there's lots of things in the GTK+ Wayland backend or in Wayland itself that could use your help.