Wayland: Difference between revisions

From Alpine Linux
No edit summary
(→‎XDG_RUNTIME_DIR: Add reference to mkrundir)
 
(19 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Expand|A more thorough guide to installing, configuring, and running {{Pkg|wayland}} on Alpine would be better. }}
[https://en.wikipedia.org/wiki/Wayland%20(protocol) Wayland] is a new display protocol that aims to replace X11.


Multiple compositor implementations exist, including [[Sway]], [https://en.wikipedia.org/wiki/Mutter%20(software) Mutter] ([[GNOME]]'s compositor) and [https://en.wikipedia.org/wiki/KWin Kwin] ([[KDE]]'s compositor). [https://wiki.archlinux.org/title/Wayland#Compositors A more exhaustive list is available in the ArchWiki].


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


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


== XDG_RUNTIME_DIR ==
* [[elogind]] can do this and also export other XDG environment variables automatically for each session.
Weston and other compositors require the XDG_RUNTIME_DIR variable to be set. Simply save the following script in /etc/profile.d/xdg_runtime_dir.sh and re-login to have it set up properly.
* {{pkg|pam-rundir}} can handle this for logins. To use this [[PAM]] is required.
* [https://git.sr.ht/~whynothugo/mkrundir mkrundir] is an executable that can be used to initialise the runtime directory explicitly by each user.
* Setting it up manually ([[#Configuring_XDG_RUNTIME_DIR_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 <code>XDG_*</code> variables manually as this configuration may have errors or conflict with other utilities that do this automatically.


if test -z "${XDG_RUNTIME_DIR}"; then
On a system that's not using elogind nor any pam module that handles this, the <code>XDG_RUNTIME_DIR</code> can be initialised manually. The easiest approach is by adding a snippet like this one to shell init scripts (e.g.: {{Path|~/.profile}}):
  export XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir
  if ! test -d "${XDG_RUNTIME_DIR}"; then
    mkdir "${XDG_RUNTIME_DIR}"
    chmod 0700 "${XDG_RUNTIME_DIR}"
  fi
fi


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


This code was taken from Weston's build instructions. Only ${UID} (not present on Alpine Linux) has been replaced with $(id -u).
mkdir -pm 0700 "$XDG_RUNTIME_DIR"
export XDG_RUNTIME_DIR
fi
</nowiki>}}


If using fish, use the following script, placed in /etc/fish/conf.d/xdg_runtime_dir.fish:
== See also ==


if test -z $XDG_RUNTIME_DIR
* [https://wiki.archlinux.org/title/Wayland Wayland - Arch Wiki]
  set -x XDG_RUNTIME_DIR /tmp/(id -u)-runtime-dir
* [https://wiki.gentoo.org/wiki/Wayland Wayland - Gentoo Wiki]
  if not test -d $XDG_RUNTIME_DIR
* [https://en.wikipedia.org/wiki/Wayland_(protocol) Wayland (protocol) - Wikipedia]
    mkdir $XDG_RUNTIME_DIR
    chmod 0700 $XDG_RUNTIME_DIR
  end
end


[[Category:Desktop]]
[[Category:Desktop]]
[[Category:Wayland]]

Latest revision as of 19:08, 18 May 2024

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.
  • mkrundir is an executable that can be used to initialise the runtime directory explicitly by each user.
  • 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