Seatd: Difference between revisions
WhyNotHugo (talk | contribs) (mention elogind) |
Prabuanand (talk | contribs) m (removed sway as a category) |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Seatd is a seat | 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. | |||
= Installation = | |||
{{Cmd|apk add {{Pkg|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 <code>$USER</code>, you will need to relogin. | |||
= Seatd and Sway = | |||
seatd is the light weight solution for [[sway]] compared to [[elogind]]. To manually start [[sway]] with seatd following three steps are mandatory: | |||
== Configuring XDG_RUNTIME_DIR == | |||
Set the variable [[XDG_RUNTIME_DIR]]. | |||
== Environement variables == | |||
Additional environement variables that needs to be set for [[sway]] to work properly with seatd. | |||
{{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" ] && [ "$(tty)" = "/dev/tty1" ]; 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. | |||
If you are using [[elogind]] then the above code snippets are not required. | |||
* [https://man.sr.ht/~kennylevinsen/seatd/ seatd documentation] | |||
* [https://github.com/swaywm/sway/wiki/Setting-environmental-variables sway wiki] | |||
[[Category:Desktop]] | |||
[[Category:Seat_manager]] | |||
[[Category:Wayland]] | |||
Latest revision as of 09:03, 20 August 2024
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.
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.
Seatd and Sway
seatd is the light weight solution for sway compared to elogind. To manually start sway with seatd following three steps are mandatory:
Configuring XDG_RUNTIME_DIR
Set the variable XDG_RUNTIME_DIR.
Environement variables
Additional environement variables that needs to be set for sway to work properly with seatd.
Contents of ~/.profile
If you are planning to use Greetd, a light weight login manager instead of 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.
Contents of ~/.profile
Ensure that your shell reads and executes the above if condition in .profile. bash works with the above code. For other shells, make necessary changes.
If you are using elogind then the above code snippets are not required.