Wayland: Difference between revisions
(→XDG_RUNTIME_DIR: Remove terrible hacky shim that has the user config XDG_RUNTIME_DIR themself. This lead to a very confused beginner seeking help for various errors on login in a Discord server I follow.) |
WhyNotHugo (talk | contribs) (→XDG_RUNTIME_DIR: Add reference to mkrundir) |
||
(18 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[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]. | |||
== 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. | ||
* {{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. | |||
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" | |||
mkdir -pm 0700 "$XDG_RUNTIME_DIR" | |||
export XDG_RUNTIME_DIR | |||
fi | |||
</nowiki>}} | |||
== See also == | |||
* [https://wiki.archlinux.org/title/Wayland Wayland - Arch 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]] |
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