greetd
greetd is a minimal and flexible login manager daemon that makes no assumptions about what you want to launch. It is recommended to read the greetd wiki first.
Installation
greetd needs to be combined with a greeter. You can find a list of available greeters here: greetd-*. This page shows the graphical greeter gtkgreet which is packaged as greetd-gtkgreet. Install the main package and the greeter:
# apk add greetd greetd-gtkgreet
Install a lightweight wayland compositor to be used with greetd login session.(If using Sway, no need for cage).
# apk add cage
Configuration
Graphical greeters like gtkgreet require either seatd or elogind.
If using cage, the config file appears as follows:
Contents of /etc/greetd/config.toml
Instead of cage, sway or any other wayland compositor can be used by setting the greetd config file:
Contents of /etc/greetd/config.toml
When seatd is used, following additional configuration is required.
- For graphical greeters like gtkgreet, the user greetd needs the
seatd
group:# adduser greetd seat
- Append
rc_need=seatd
in the following file:Contents of /etc/conf.d/greetd
... rc_need=seatd - User greetd also needs [Wayland#XDG_RUNTIME_DIR|XDG_RUNTIME_DIR]]. If mkrundir is used, a simple wrapper script named
sway-greeted
can be created as follows:Contents of /usr/local/bin/sway-greetd
#!/bin/sh export XDG_RUNTIME_DIR=$(mkrundir) exec sway $@ - Make it executable using
# chmod +x /usr/local/bin/sway-greetd
and replacesway
bysway-greetd
in the greetd config file:Contents of /etc/greetd/config.toml
[default_session] command = "sway-greetd --config /etc/greetd/sway-config" user = "greetd"
Create a dedicated sway config file that runs the greeter and terminates when it dies:
Contents of /etc/greetd/sway-config
Edit/create the list of login environments for gtkgreet, which is by default read from /etc/greetd/environments. Instead of listing sway
a wrapper script like sway-run
can be used.
Contents of /etc/greetd/environments
Once you have completed the above configuration, Enable and start greetd:
# rc-update add greetd # rc-service greetd start
For text based greeters you want to make sure that vt
is set in:
Contents of /etc/greetd/config.toml