Wayland
Wayland is a new display protocol that aims to replace X11. Display servers that implement the Wayland display server protocol are also called Wayland compositors because they additionally perform the task of a compositing window manager.
Multiple compositor implementations exist, including Sway, Mutter (GNOME's compositor) and Kwin (KDE's compositor). A more exhaustive list is available in the ArchWiki.
Wayland requires a seat manager to work.
The setup-wayland-base
script installs and enables elogind as seat manager, enables community repository and enables eudev automatically as these are required for Wayland to work.
XDG_RUNTIME_DIR
As per the protocol spec, Wayland compositors require the XDG_RUNTIME_DIR
variable to be set. Elogind seat manager handles XDG_RUNTIME_DIR
and also export other XDG environment variables automatically for each session. So do not follow further configuration, if using elogind.
If Seatd is used then there are a few ways to create a XDG_RUNTIME_DIR
directory and export this variable:
Use pam_rundir
pam_rundir is a PAM module that provides the runtime directory variable. Installing the package pam-rundir takes care of dependencies and no further configuration is required.
XDG_RUNTIME_DIR
variable MUST be initialised before the Wayland compositor, and also before the D-Bus session instance is started in your startup script/file for both the methods listed below.Use mkrundir
- mkrundir is an executable that can be used to initialise the runtime directory explicitly by each user. To use
mkrundir
, install the package mkrundir available in testing repository. In your shell init script (e.g.: ~/.profile include an entry as follows at the top of the fileContents of ~.profile
... export XDG_RUNTIME_DIR=$(mkrundir) ...
As per mkrundir website, this might have issues inside containers, due to privilege escalation.
Configuring XDG_RUNTIME_DIR manually
Generally, care should be taken when configuring the XDG_*
variables manually as this configuration may have errors or conflict with other utilities that do this automatically. Use this only on a system that's not using elogind and other solutions outlined above cannot handle this.
The XDG_RUNTIME_DIR
can be initialised manually by adding below snippet to shell init scripts (e.g.: ~/.profile):
Contents of ~/.profile