Wayland: Difference between revisions

From Alpine Linux
(link to pam-rundir package instead of repository)
(Added reference to Seat manager and setup-wayland-base script)
 
(8 intermediate revisions by 4 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 [[Xorg|X11]]. Wayland requires a [[Seat manager|seat manager]] to work. The <Code>setup-wayland-base</Code> script Installs and enables [[elogind]] as [[Seat manager|seat manager]], enables [[Repositories#Community|community repository]] and enables [[eudev]] automatically as these are required for Wayland to work.


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). A more exhaustive list is available in the [https://wiki.archlinux.org/title/Wayland#Compositors ArchWiki].


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


== 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:


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 this variable:
* [[elogind]] can do this and also export other XDG environment variables automatically for each session.
* {{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]]).


* A login manager such as [[elogind]] can configure this and other XDG environment variables automatically.
Note that this variable MUST be initialised before the Wayland compositor, and also before the D-Bus session instance is started.
* {{pkg|pam-rundir}} can enable this for logins. To use this [[PAM]] is required.
* Setting it up manually


=== Configuring XDG_RUNTIME_DIR manually ===
=== Configuring XDG_RUNTIME_DIR manually ===
Line 17: Line 18:
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.
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.


On a system that's not using elogind nor any pam module that handles this, it's often necessary to set up <code>XDG_RUNTIME_DIR</code> manually. This can be done by adding a snippet like this one to shell init scripts (e.g.: {{Path|~/.profile}}):
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}}):
 
{{Cat|~/.profile|<nowiki>if [ -z "$XDG_RUNTIME_DIR" ]; then
XDG_RUNTIME_DIR="/tmp/$(id -u)-runtime-dir"


{{Cat|~/.profile|<nowiki>if test -z "${XDG_RUNTIME_DIR}"; then
mkdir -pm 0700 "$XDG_RUNTIME_DIR"
  export XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir
export XDG_RUNTIME_DIR
  if ! test -d "${XDG_RUNTIME_DIR}"; then
    mkdir "${XDG_RUNTIME_DIR}"
    chmod 0700 "${XDG_RUNTIME_DIR}"
  fi
fi
fi
</nowiki>}}
</nowiki>}}
Line 32: Line 32:
* [https://wiki.archlinux.org/title/Wayland Wayland - Arch Wiki]
* [https://wiki.archlinux.org/title/Wayland Wayland - Arch Wiki]
* [https://wiki.gentoo.org/wiki/Wayland Wayland - Gentoo Wiki]
* [https://wiki.gentoo.org/wiki/Wayland Wayland - Gentoo Wiki]
* [https://en.wikipedia.org/wiki/Wayland_(protocol) Wayland (protocol) - Wikipedia]


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

Latest revision as of 06:34, 22 November 2024

Wayland is a new display protocol that aims to replace X11. 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.

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