Seatd: Difference between revisions

From Alpine Linux
(simplified the script to launch sway on tty1 by removing references to $XDG_VTNR and removed headings)
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Seatd is a seat management daemon, that does everything it needs to do. Nothing more, nothing less. Depends only on libc. Seat management takes care of mediating access to shared devices (graphics, input), without requiring the applications needing access to be root.
[https://man.sr.ht/~kennylevinsen/seatd/ Seatd] is a [[Seat manager|seat management]] daemon, that does everything it needs to do. Nothing more, nothing less. Depends only on libc. Seat management takes care of mediating access to shared devices (graphics, input), without requiring the applications needing access to be root.


When using [[elogind]], seatd is not required and viceversa. Don't add both to auto-start.
When using [[elogind]], seatd is not required and viceversa. Don't add both to auto-start.
{{note|Reading about seatd and elogind, you might get the impression that elogind is required for polkit. But seatd/polkit works fine if you use groups in the polkit rules, only for "subject.active" elogind is required.}}


== Installation ==
== Installation ==
Line 15: Line 17:
== Configuration ==
== Configuration ==


Seatd is the light weight solution for [[Wayland]] compositors compared to [[elogind]]. However, when using seatd ensure that the following two mandatory steps are completed.
When seatd is used with [[Wayland]], ensure that the following two mandatory steps are completed.


* Set the variable [[XDG_RUNTIME_DIR]].  
* Set the variable [[XDG_RUNTIME_DIR]].  
Line 28: Line 30:


When using seatd, adding the following lines to {{Path|~/.profile}} or other shell specific profile file will launch Sway automatically with and [[D-Bus]] only in tty1. {{Cat|~/.profile|<nowiki>...
When using seatd, adding the following lines to {{Path|~/.profile}} or other shell specific profile file will launch Sway automatically with and [[D-Bus]] only in tty1. {{Cat|~/.profile|<nowiki>...
# Set the environment variables required for seatd
export XDG_SESSION_TYPE=wayland
export LIBSEAT_BACKEND=seatd
export XDG_CURRENT_DESKTOP=sway
#start sway with DBUS (only in tty1)  
#start sway with DBUS (only in tty1)  
if [ "$(tty)" = "/dev/tty1" ]; then
if [ "$(tty)" = "/dev/tty1" ]; then
Line 37: Line 35:
fi
fi
...</nowiki>}}
...</nowiki>}}
Instead of depending on {{Path|.profile}} or their equivalent files a [[Sway#Starting_sway|wrapper script]] can also be used.  
Instead of depending on {{Path|.profile}} or their equivalent files a [[Sway#Starting_sway|wrapper script]] can also be used.


== See Also ==
== See Also ==
* [https://man.sr.ht/~kennylevinsen/seatd/ seatd documentation]
* [https://man.sr.ht/~kennylevinsen/seatd/ seatd documentation]
* [https://github.com/swaywm/sway/wiki/Setting-environmental-variables sway wiki]
* [https://github.com/swaywm/sway/wiki/Setting-environmental-variables sway wiki]

Latest revision as of 09:06, 8 April 2025

Seatd is a seat management daemon, that does everything it needs to do. Nothing more, nothing less. Depends only on libc. Seat management takes care of mediating access to shared devices (graphics, input), without requiring the applications needing access to be root.

When using elogind, seatd is not required and viceversa. Don't add both to auto-start.

Note: Reading about seatd and elogind, you might get the impression that elogind is required for polkit. But seatd/polkit works fine if you use groups in the polkit rules, only for "subject.active" elogind is required.

Installation

apk add seatd # install seatd rc-update add seatd # configure it to auto-start service seatd start # start it now adduser $USER seat # allow current user to access seatd

If you are already logged in as a $USER, you will need to relogin.

Configuration

When seatd is used with Wayland, ensure that the following two mandatory steps are completed.

  • Set the variable XDG_RUNTIME_DIR.
  • The following environment variables needs to be set:
XDG_SESSION_TYPE=wayland
LIBSEAT_BACKEND=seatd
XDG_CURRENT_DESKTOP=sway

The variable XDG_CURRENT_DESKTOP must be suitably adjusted if a different Compositor is used.

Seatd and sway

When using seatd, adding the following lines to ~/.profile or other shell specific profile file will launch Sway automatically with and D-Bus only in tty1.

Contents of ~/.profile

... #start sway with DBUS (only in tty1) if [ "$(tty)" = "/dev/tty1" ]; then exec dbus-run-session sway fi ...

Instead of depending on .profile or their equivalent files a wrapper script can also be used.

See Also