greetd is a minimal and flexible login manager daemon that makes no assumptions about what you want to launch.
Use gtkgreet to launch sway if you want a fully graphical session, or use agreety
to launch a shell if you want a drop-in replacement for agetty(8)
and login(1)
.
If you can run it from your shell in a TTY, greetd can start it. If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.
See the wiki for FAQ, guides for common configurations, and troubleshooting information.
sway
)sway
)sway
)sway
)river
and sway
)Patches expanding the list welcome.
The below will install greetd, agreety and the default configuration. This looks just like agetty(8)
and login(1)
. See the manpages and the wiki for information on how to do more interesting things.
greetd and a few greeters are available in AUR for Arch Linux.
emerge gui-libs/greetd
# Compile greetd and agreety.
cargo build --release
# Put things into place
sudo cp target/release/{greetd,agreety} /usr/local/bin/
sudo cp greetd.service /etc/systemd/system/greetd.service
mkdir /etc/greetd
cp config.toml /etc/greetd/config.toml
# Create the greeter user
sudo useradd -M -G video greeter
sudo chmod -R go+r /etc/greetd/
# Look in the configuration file `/etc/greetd/config.toml` and edit as appropriate.
# When done, enable and start greetd
systemctl enable --now greetd
All you need is an application that can speak the greetd IPC protocol, which is documented in greetd-ipc(7)
. See gtkgreet or agreety for inspiration.
Go to #kennylevinsen @ irc.libera.chat to discuss, or use ~kennylevinsen/greetd-devel@lists.sr.ht.