Support GNOME Wayland sessions
- Name: Matthias Clasen and the desktop team
- Email: firstname.lastname@example.org, email@example.com
- Release notes owner:
Upstream gnome-shell 3.12.1 can be launched as a Wayland compositor, with some regressions and limitations. mutter-wayland, and the GNOME Wayland session are available in f20. In rawide, mutter-wayland has been merged into mutter.
GNOME is being ported to Wayland. In particular GNOME shell is changed to run as a Wayland compositor instead of an X11 compositor. Other components of GNOME that currently talk directly to the X server, such as gnome-settings-daemon or gnome-control-center, will be ported to corresponding Wayland interfaces. Many GTK+ applications will just work, using the existing Wayland backend. Applications that make use of X-specific APIs will be supported with the xwayland X server, which is started on demand. gdm will be changed to support both Wayland-based sessions and X-based sessions.
For F20, we have an experimental GNOME shell Wayland compositor and an experimental GNOME Wayland session available, with some gaps in the surrounding desktop infrastructure. To avoid destabilizing the X compositor in F20, there is a separate mutter-wayland package, and gnome-shell ships two binaries that will link against the two mutters.
In F21, the mutter-wayland package is reintegrated in mutter, and the GNOME Wayland porting work is focusing on closing the gaps, to avoid user-visible regressions.
For more details, see this page.
Benefit to Fedora
Fedora stays at the forefront of Linux development by adopting the next-generation display server technology after X. Aiming for F21 with this transition gives us the chance to influence many aspects of the Wayland-based userspace before they are set in stone.
- Proposal owners:
- Port GNOME shell to be a Wayland compositor
- Implement Wayland equivalents for X11 APIs such as
- XRANDR (DONE)
- Port gnome-settings-daemon, gnome-control-center, gnome-desktop from X11 APIs to Wayland equivalents
- Enable gdm to launch Wayland sessions (DONE)
- Complete the GTK+ Wayland backend to be on par with the X11 backend
- Package mutter-wayland as a separate package review (DONE)
- Other developers:
- The X team needs to improve xwayland to be good enough for all X11 application - in practice this means we need X 1.16 (DONE)
- The X team needs to cooperate with us in reimplementing some X11 APIs
- The X team needs to package libevdev (DONE)
- The X team needs to package libinput (DONE)
- It is not necessary for all spins or all desktop environments in Fedora to switch to Wayland at the same time (or ever)
- Release engineering:
- No tasks anticipated
- Policies and guidelines:
- Once we have a basic Wayland-based GNOME session, it would be good to encourage testers and packagers to test their applications under Wayland
- For applications that are known not to work under Wayland, we will need guidelines for how to ensure that they will transparently run under xwayland
- Proprietary driver support in Wayland is less complete than under X. Systems that have been configured to use e.g. the proprietary Nvidia drivers under X will fall back to using open-source drivers under Wayland
- Support for alternative input devices such as Wacom tablets or joysticks may not be available in time for F21
How To Test
Log into a GNOME desktop. Do any activity you would normally do in your daily desktop use: launching applications, configuring displays, etc. Things should work the same way under Wayland than they used to under X.
The user experience should not change noticeably, except for gaps in the initial porting (such as lack of Wacom tablet support).
Some new libraries may be developed to support Wayland compositors, such as libevdev and libinput. These will have to be packaged if GNOME shell starts to depends on them. Xorg needs to be updated to version 1.16 to include xwayland.
- Contingency mechanism:
- If we don't succeed in making an experimental GNOME shell Wayland compositor available in F20, we will make the Wayland compositor available in post-F20 rawhide as soon as it becomes available.
- If important pieces of this plan are not going to be available in time for F21, we will defer the switch to Wayland until F22. We will keep the experimental Wayland compositor available in any case, to enable further development.
- Contingency deadline:
- We will reevaluate the timeline around the time F20 is released, and then again around the F21 feature submission deadline.
- Blocks release? No
- https://wiki.gnome.org/Wayland - the GNOME wiki contains lots of material
- https://wiki.gnome.org/ThreePointNine/Features/WaylandSupport - the upstream feature page for 3.10
- https://wiki.gnome.org/ThreePointEleven/Features/WaylandSupport - the upstream feature page for 3.12
- http://wayland.freedesktop.org/ - the Wayland web page
The GNOME desktop is using the Wayland display system now. X applications will continue to run transparently by means of xwayland.