sessiond-greetd#
sessiond-greetd is a fork of greetd that mainly introduces two changes:
- uses hyprwire for ipc instead of raw sockets
- uses nix lang for configuration
Use a graphical greeter to launch hyprland 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, sessiond-greetd can start it. If it can be taught to speak hyprwire IPC protocol, then it can be a greeter.
See the wiki for FAQ, guides for common configurations, and troubleshooting information.
List of known sessiond-greetd greeters#
- agreety - The simple, text-based greeter living in this repo is a simple example.
Patches expanding the list welcome.
Installation#
The below will install sessiond-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#
NixOs#
TODO
Manually from source#
# Compile sessiond-greetd and agreety.
cargo build --release
# Put things into place
sudo cp target/release/{sessiond-greetd,agreety} /usr/local/bin/
sudo cp sessiond-greetd.service /etc/systemd/system/sessiond-greetd.service
install -D -m 0644 config.nix /etc/sessiond-greetd/default.nix
# Create the greeter user
sudo useradd -M -G video greeter
sudo chmod -R go+r /etc/sessiond-greetd/
# Look in the configuration file `/etc/sessiond-greetd/default.nix` and edit camelCase keys as appropriate.
# When done, enable and start sessiond-greetd
systemctl enable --now sessiond-greetd
How do I write my own greeter?#
All you need is an application that can speak the Hyprwire IPC protocol.
The protocol XML can be found at ./protocols/sessiond_greetd_core_v1.xml.
The protocols/ specifications are intended to be MIT-licensed so they can be
reused by greeters and external clients more easily, while the sessiond-greetd
project itself remains GPLv3 under the repository top-level license.