Wayland (license MIT, https://gitlab.freedesktop.org/wayland) is the new standard display protocol and consist of the following components:
- Wayland 1.18 as the display server protocol itself
- Wayland-Protocols 1.18 extended Wayland protocols
- Weston 8.0 is the optional reference compositor (not required if you use e.g. Kwin)
- XWayland 1.20.8 to run legacy X11 only apps in a Wayland environment
Wayland replaces the legacy X11 display and graphic implementation. Wayland is designed as just a protocol and with security in mind. A Wayland application cannot see the content and input devices of another window or of the screen as long as it is not explicitly granted by the compositor. This restricts key loggers and screen monitoring software that could be easily implemented in X11 without permission requests, in fact it was designed like this, any X11 application can read all input and screen content at any time. Wayland is usually installed automatically by distributions. The main Wayland compositors are Kwin from KDE Plasma and Mutter from Gnome.
Toolkits with proper Wayland support are
- SDL2 + SDL12-compat
- Electron 2.0 will support Gtk3, not yet released.
For more details read https://wiki.archlinux.org/index.php/Wayland#GUI_libraries
- Gnome and Gtk do not support XDG Decorations (bug) and therefore all the client side decoration apps will have an inconsistent look on Wayland desktops, read https://gitlab.gnome.org/GNOME/mutter/issues/217.
Since some time the libinput is the main driver dealing with all input devices like a mouse, touchpad or touchscreen. For more details read https://wiki.archlinux.org/index.php/Libinput. Libinput is used by Wayland and Xorg and many distributions are in the process to switch over. Except for some corner cases the other drivers are not required.
Check and remove from Arch Linux installs all xf86-input-* drivers except for xf86-input-libinput (required for X11), press 2 times the TAB key to see which package is still installed. Example:
pacman -Rsc xf86-input-synaptics
You may want to clean and remove some config files like:
rm -R /etc/X11/xorg.conf.d/50-synaptics.conf
Pipewire (license LGPL, https://pipewire.org) is a new multimedia framework to replace in the long run JACK and PulseAudio. It was developed mainly with Video routing similar like PulseAudio but with security, Wayland and Flatpak in mind.
Remove legacy tool-kits without Wayland support
Qt4 has been removed successful from Arch Linux.
Gtk2 doesn’t support Wayland, so try to remove it. To see which Gtk2 applications need to be removed or replaced with an alternative, try to remove Gtk2:
pacman -R gtk2
Add alternatives like KDE Partition Manager.
pacman -Sy partitionmanager
Then remove applications with:
pacman -Rsc gparted
The steam package got rid of this legacy dependency in May 2020.
Python2 doesn’t support Wayland, so try to remove it, but still several applications make use of it as the transition to Python 3 is not finished yet. To see which Python2 applications need to be removed or replaced with an alternative, try to remove Python2:
pacman -R python2
The issue is that still several software depends from this old toolkit like kodi, getmail, calibre, …
At least some can be removed like the following examples:
pacman -Rsc bzr phantomjs urlgrabber
Some software that doesn’t depend anymore from python2 in Arch Linux (Status: https://www.archlinux.org/todo/die-python2-die/ and https://www.archlinux.org/todo/conversion-of-programs-that-use-python-2-to-python-3/): libvirt, ceph, samba.
SDL1 doesn’t support Wayland, removing it might break several old games. It is out of maintenance as well.
So hopefully these games get updated soon to SDL2 or will use SDL12-compat. Applications with experimental SDL2 support:
- dosbox -> dosbox-sdl2 (AUR), but sdl_sound-hg requires still SDL1 as a package dependency
Applications depending from SDL1:
SDL12-compat (https://hg.libsdl.org/sdl12-compat) is a library in development as a drop-in replacement for the legacy SDL1.2 that translated everything to SDL2, read https://www.gamingonlinux.com/articles/ryan-gordon-is-re-working-sdl12-compat-a-tool-to-provide-sdl2-to-software-using-sdl12.13744. This offers all the nice features of SDL2 including Wayland support.
- 2020-03-30 Since xorg 1.20.8 all Vulkan & Open GL XWayland apps and games do not show graphical glichtes anymore on startup.
- XWayland freezes fullscreen Vulkan applications until set to window mode with boarders, fixed in xorg 1.20.4 https://bugs.freedesktop.org/show_bug.cgi?id=106713
- 2018-06-25 Since xorg 1.20 Feral Launcher of Rise of the Tomb Raider in XWayland will freeze, bug is still open https://gitlab.freedesktop.org/xorg/xserver/issues/722. Fixed with xwayland 1.20.5 and libx11 1.6.9.