Wayland

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

  • Qt5
  • Gtk3
  • SDL2 + SDL12-compat
  • Clutter
  • EFL
  • GLFW
  • Electron 2.0 will support Gtk3, not yet released.

For more details read https://wiki.archlinux.org/index.php/Wayland#GUI_libraries

Bugs

libinput 1.14

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

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

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

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.2

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:

  • steam-native-runtime
  • sdl_sound-hg

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.

yay sdl2_compat12-git
yay lib32-sdl2_compat12-git

Wayland Misconceptions?

Interesting read https://drewdevault.com/2019/02/10/Wayland-misconceptions-debunked.html

Closed Bugs

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.