# tanin-greet TANINUX's custom **GTK4 greeter** for greetd. Built because ReGreet's layout is fixed — this gives full control to match the design: - a **black top bar** like the eww topbar (`TANINUX` · clock · power) - a **wallpaper** background under a dark scrim - **user + password** centered as pills (Fuji violet focus ring, Enter submits) - the **session selector** tucked tiny in the **bottom-right corner** It speaks the greetd IPC directly (create_session → auth → start_session) and is hosted by `cage`. ## Files - `tanin-greet` → `/usr/bin/tanin-greet` — the GTK4 app (PyGObject) - `tanin-greet.css` → `/etc/greetd/tanin-greet.css` — the look (mirrors `eww.scss`) - `config.toml` → `/etc/greetd/config.toml` — greetd; `cage -s -- tanin-greet` - `dev/` → preview helper + greetd mock (not packaged) ## Preview (no logout, no real auth) ```sh ./dev/preview.sh # uses your current wallpaper path ./dev/preview.sh /path/to/wall.jpg # screenshot lands at /tmp/tanin-greet.png ; override output with GREET_OUTPUT=HDMI-A-1 ``` The greeter renders even without greetd; `dev/mockgreetd.py` provides a fake socket so the password prompt and login flow work for a full dry-run. ## Env overrides (used by the preview) - `TANIN_GREET_CSS` stylesheet path (default `/etc/greetd/tanin-greet.css`) - `TANIN_GREET_BG` wallpaper path (default `/usr/share/backgrounds/tanin/login.jpg`) - `TANIN_GREET_SESSIONS` sessions dir (default `/usr/share/wayland-sessions`) - `TANIN_GREET_BRAND` top-bar text (default `TANINUX`) ## Install (on the distro) ```sh makepkg -si sudo systemctl enable greetd # disable any other DM first ``` Drop a login wallpaper at `/usr/share/backgrounds/tanin/login.jpg` (or ship a `tanin-backgrounds` package). Without one, the greeter shows a dark scrim. ## Notes - Sessions are read from `/usr/share/wayland-sessions/*.desktop`; Niri is the default selection. Users are read from `/etc/passwd` (uid 1000–65533, real shell). - Icons (`avatar-default-symbolic`, `system-shutdown-symbolic`) come from `adwaita-icon-theme`.