Seatd: Difference between revisions

From Alpine Linux
(moved the seatd references to bottom.)
(removed the repetetive information for starting sway as the info has already been added to sway)
 
(15 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.


= Installation =
{{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. Which means with seatd you are restricted to YES or NO rules, no AUTH_ADMIN, since agents need POLKIT_IS_SUBJECT.}}
 
== Installation ==


{{Cmd|apk add {{Pkg|seatd}}      # install seatd
{{Cmd|apk add {{Pkg|seatd}}      # install seatd
Line 13: Line 15:
If you are already logged in as a <code>$USER</code>, you will need to relogin.
If you are already logged in as a <code>$USER</code>, you will need to relogin.


= Seatd and Sway =
== Configuration ==
 
seatd is the light weight solution for [[sway]] compared to [[elogind]]. To start [[sway]] manually with seatd following three things are necessary:
 
== Configuring XDG_RUNTIME_DIR ==
 
Set the variable [[XDG_RUNTIME_DIR]].
 
== Environement variables ==
Additional environement variables needs to be set properly for [[sway]] to work properly, if started manually.
 
{{Cat|~/.profile|<nowiki>
#Environment variables required for sway to work with seatd
export XDG_SESSION_TYPE=wayland
export XDG_CURRENT_DESKTOP=sway
export LIBSEAT_BACKEND=seatd
</nowiki>}}
 
If you are planning to use [[Greetd]], a light weight login manager instead of {{Pkg|gdm}} or [[SDDM]] the below section does not apply. However the above two sections are still needed.
 
== start sway+seatd manually with D-Bus ==
 
When using seatd, [[sway]] must be started with [[D-Bus]] so that [[PipeWire]] and other such [[D-Bus]] dependenant services can work without issues.
 
{{Cat|~/.profile|<nowiki>
#Start sway with DBUS (Manual method)
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
    exec dbus-run-session sway -d 2> ~/sway_error.log
fi
</nowiki>}}


Ensure that your shell reads and executes the above if condition in .profile. {{Pkg|bash}} works with the above code. For other shells, make necessary changes.  
Ensure that [[XDG_RUNTIME_DIR]] is set before starting your Wayland compositor.


== See Also ==


If you are using [[elogind]] then the above code snippets are not required.
* [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]
Line 53: Line 26:
[[Category:Desktop]]
[[Category:Desktop]]
[[Category:Seat_manager]]
[[Category:Seat_manager]]
[[Category:Sway]]
[[Category:Wayland]]
[[Category:Wayland]]

Latest revision as of 03:34, 11 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. Which means with seatd you are restricted to YES or NO rules, no AUTH_ADMIN, since agents need POLKIT_IS_SUBJECT.

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

Ensure that XDG_RUNTIME_DIR is set before starting your Wayland compositor.

See Also