Wayland is a computer protocol that specifies the communication between a display server and its clients, as well as a reference implementation of the protocol in the C programming language.
Wayland's main goal is replacing the X Window System with a modern, simpler windowing system in Linux and other Unix-like operating systems. The project's source code is published under the terms of the MIT License, a permissive free software licence.
As part of its efforts, the Wayland project also develops a reference implementation of a Wayland compositor called Weston.
To test Wayland, you will need to have a compatible compositor installed. A Wayland compositor combines the roles of the X window manager, compositing manager and display server. Weston is the reference implementation of the concept, but each desktop environment implements their own composition manager.
You can test weston directly from a regular X session with the following commands:
sudo apt install weston weston
This will start a Wayland window in your regular X session where you can test things.
You can also test the mutter window manager directly:
sudo apt install mutter mutter --nested --wayland
Then further Wayland clients will show up in that window. Try, for example, starting gnome-terminal.
Another way to test Wayland is to install the GNOME desktop environment and select the "GNOME on wayland" session when logging in.
- GNOME 3.20+ (if specifically selected; X is used by default in Debian)
- KDE (Plasma 5.4)
- Qt 5
- GTK+ 3.20+
- SDL 2.0.2+
- GLFW 3.2
Note that any X program will still run, as there is a XWayland server that provides backwards compatibility with X program. Those programs will not, however, benefit from the security and performance improvements Wayland provides.
Emacs: because Emacs is not a real GTK apps, it still talks with X11 and therefore will use XWayland
Vim: similar (819954)
- other window managers unlikely to be supported
Xresources won't load
This is a known issue. Back in 2015, it was decided that the resources were too slow to load and that was dropped from the main GNOME session, see Redhat's bugzilla for more information.
Workaround: run this by hand or setup something to start it up automatically on session login.
xrdb -load .Xsession
Why is Wayland necessary?
Wayland allows better isolation between processes: one window cannot access resources from, or inject keystrokes into, another window.
Wayland also has the potential to be faster, by reducing the amount of code between the processes and the hardware, by delegating lots of things to the processes themselves.
See also the Wayland FAQ for more information.