Skip to content

Introduction

tadaima is a greetd greeter library for AGS / GJS.

It handles the hard parts of building a login screen:

  • Authentication — communicates with greetd via the greetd-ipc(7) protocol (JSON over Unix socket)
  • Session discovery — reads .desktop files from standard XDG directories
  • State caching — remembers the last authenticated user and session

You bring the UI — use any GTK4 widget to design your login screen.

  • No Astal Greet dependency — tadaima implements the greetd IPC protocol directly, removing the need for gi://AstalGreet
  • TypeScript first — full type safety with JSDoc documentation
  • Framework agnostic — works with AGS/Gnim JSX, but the library itself has no UI opinions
  • Distro agnostic — works on NixOS, Arch-based distributions, and any system with greetd

The greeter runs inside cage, a minimal Wayland kiosk compositor:

greetd → dbus-run-session → cage → your greeter binary
  • cage automatically fullscreens your application
  • dbus-run-session provides a D-Bus session bus for the greeter process
  • greetd manages authentication via PAM and session lifecycle