Minimal, sleek greetd based greeter written in Go with Bubble Tea.
It's simple, it's dumb, it just works.
Configuration is done via command-line flags:
| Flag | Default | Description |
|---|---|---|
-cmd |
none | Command to run for user session |
-color |
f5f5f5 |
Accent color as hex without # |
-preauth |
false |
Start the auth loop immediately |
-user |
none | Force a specific username |
-width |
8 |
Width of the input fields |
yet another twui greetner
Initially built for a single-user NixOS + Hyprland setup with a few specific requirements:
- Force username - No need to type it every boot (since I don't want any state like last logged in user)
- Instant fingerprint auth - Start the PAM loop immediately with
-preauth, no extra keypresses - Simple - Just a TUI and a few flags
If you have a laptop with a fingerprint reader and want seamless auth without the "type username -> press enter -> now you can use fingerprint" dance, this is for you.
Multi-monitor scaling is broken - that's just how TTYs work. For example, I have a 4k display and a 1080p display. The greeter renders correctly on the 1080p, but it's tiny on the 4k one. This affects all TUI greeters. The only workaround is launching a graphical environment (Cage + terminal), but that defeats the simplicity goal. sysc-greet takes that approach if it bothers you too much.
Add to your flake inputs:
{
inputs.yawn.url = "github:xhos/yawn";
}Then configure greetd:
services.greetd = {
enable = true;
settings.default_session.command = "${inputs.yawn.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/yawn -cmd Hyprland";
};/etc/greetd/config.toml:
[terminal]
vt = 1
[default_session]
command = "yawn -user xhos -cmd Hyprland -preauth"
user = "greeter"Refer to greetd's docs for more details.
Launch a VM with greetd and yawn preconfigured:
nix run .#test-vmTo adjust args, edit the test-vm app in flake.nix.
For quick UI iteration without spawning a full VM, use the stub greetd server:
nix develop # if you don't use devenv
stub -- -cmd Hyprland -user testThe stub uses test/test as credentials.
Other greeters worth checking out, these are the ones I tried before making yawn:
PRs and issues are welcome. Packaging for other distros is especially appreciated since I only use NixOS. word pass