Wayland: Difference between revisions

From Alpine Linux
m (Simplify XDG_RUNTIME_DIR code)
(→‎Configuring XDG_RUNTIME_DIR manually: re-add "-runtime-dir" suffix to prevent naming conflicts)
Line 20: Line 20:


{{Cat|~/.profile|<nowiki>if [ -z "$XDG_RUNTIME_DIR" ]; then
{{Cat|~/.profile|<nowiki>if [ -z "$XDG_RUNTIME_DIR" ]; then
XDG_RUNTIME_DIR="/tmp/$(id -u)"
XDG_RUNTIME_DIR="/tmp/$(id -u)-runtime-dir"


mkdir -pm 0700 "$XDG_RUNTIME_DIR"
mkdir -pm 0700 "$XDG_RUNTIME_DIR"

Revision as of 12:50, 14 November 2023

Wayland is a new display protocol that aims to replace X11.

Multiple compositor implementations exist, including Sway, Mutter (GNOME's compositor) and Kwin (KDE's compositor). A more exhaustive list is available in the ArchWiki.

XDG_RUNTIME_DIR

As per the protocol spec, Wayland compositors require the XDG_RUNTIME_DIR variable to be set. There are a few ways to configure create a temporary runtime directory and export this variable:

  • elogind can do this and also export other XDG environment variables automatically for each session.
  • pam-rundir can handle this for logins. To use this PAM is required.
  • Setting it up manually (see below).

Note that this variable MUST be initialised before the Wayland compositor, and also before the D-Bus session instance is started.

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.

On a system that's not using elogind nor any pam module that handles this, the XDG_RUNTIME_DIR can be initialised manually. The easiest approach is by adding a snippet like this one to shell init scripts (e.g.: ~/.profile):

Contents of ~/.profile

if [ -z "$XDG_RUNTIME_DIR" ]; then XDG_RUNTIME_DIR="/tmp/$(id -u)-runtime-dir" mkdir -pm 0700 "$XDG_RUNTIME_DIR" export XDG_RUNTIME_DIR fi

See also