10b88a67bc
- app: GTK System Settings (tsettings) + Software Hub (thub) + TUI - distro/: camel.toml manifest + MANIFEST.md (Arch + [tanin] repo model) - packaging/: taninux, tanin-desktop (niri metapackage), tanin-greet, tanin-libadwaita, tanin-setup - docs/, data/, LICENSE (GPL-3.0-or-later) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
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 (mirrorseww.scss)config.toml→/etc/greetd/config.toml— greetd;cage -s -- tanin-greetdev/→ preview helper + greetd mock (not packaged)
Preview (no logout, no real auth)
./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_CSSstylesheet path (default/etc/greetd/tanin-greet.css)TANIN_GREET_BGwallpaper path (default/usr/share/backgrounds/tanin/login.jpg)TANIN_GREET_SESSIONSsessions dir (default/usr/share/wayland-sessions)TANIN_GREET_BRANDtop-bar text (defaultTANINUX)
Install (on the distro)
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 fromadwaita-icon-theme.