~kennylevinsen/greetd

A login manager daemon

3dccaa4 Use stdin as VT for current/none vt selections

10 days ago

774196f Mention that cage allows VT switching with -s

11 days ago

#greetd

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.

#List of known greetd greeters

  • agreety - The simple, text-based greeter living in this repo is a simple example.
  • gtkgreet - The flagship graphical, GTK based greeter (xdg-shell or wlr-layer-shell, to be used with something like cage)
  • dlm - Dumb Login Manager (using fbdev)
  • wlgreet - Wayland greeter (using wlr-layer-shell, to be used with something like sway)
  • tuigreet - Console UI greeter (using tui-rs)

#Installation

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.

#From packages

#Arch Linux

greetd and a few greeters are available in AUR for Arch Linux.

#Gentoo
emerge gui-libs/greetd

#Manually from source

# 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 chown -R greeter:greeter /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

#How do I write my own greeter?

All you need to do is an application that can speak the greetd IPC protocol, which is documented in greetd-ipc(7). See gtkgreet or agreety for inspiration.