Nix (non-NixOS)
Prerequisites
Section titled “Prerequisites”- Nix with flakes enabled
- Add
experimental-features = nix-command flakesto~/.config/nix/nix.conf
- Add
greetdandcageinstalled via your distro’s package manager
1. Scaffold a new project
Section titled “1. Scaffold a new project”pnpm dlx @myxogastria0808/create-tadaima my-greeter --platform nixcd my-greeterThis generates:
my-greeter/ .envrc .gitignore .oxfmtrc.json .oxlintrc.json LICENSE flake.nix package.json scripts/ build.sh types.sh src/ app.tsx global.css components/ Greeter.tsx style.scss2. Enter the dev environment
Section titled “2. Enter the dev environment”direnv allow # or: nix developSee nix-direnv for details on the direnv + Nix integration.
3. Set up dependencies and type definitions
Section titled “3. Set up dependencies and type definitions”pnpm run setupThis runs pnpm install and generates AGS type definitions (tsconfig.json, @girs/ types).
4. Customize the UI
Section titled “4. Customize the UI”Edit src/components/Greeter.tsx to design your login screen. The generated template includes a minimal login form with Catppuccin Mocha styling.
For a step-by-step guide on using the @myxogastria0808/tadaima API, see Usage.
5. Build
Section titled “5. Build”pnpm run buildThe greeter binary is at ./result/bin/greeter. Note that you cannot run the greeter — this step only checks that the build completes without errors.
6. Pin the build result
Section titled “6. Pin the build result”Prevent nix-collect-garbage from removing the store path:
sudo nix build --out-link /etc/greetd/greeter-link7. Configure greetd
Section titled “7. Configure greetd”Edit /etc/greetd/config.toml:
[terminal]vt = 1
[default_session]command = "dbus-run-session cage -s -d -- /etc/greetd/greeter-link/bin/greeter"user = "greeter"8. Create cache directory and enable greetd
Section titled “8. Create cache directory and enable greetd”sudo mkdir -p /var/cache/tadaimasudo chown greeter:greeter /var/cache/tadaimasudo systemctl enable greetdReboot and you should see your greeter on the login screen.