# nomarchy-first-boot — one-shot "you're set" toast on the first session. # Marker is settings.firstBootShown in the flake's theme-state.json # (in-checkout state; never ~/.local/state). notify-send and # nomarchy-theme-sync come from PATH so the VM check can shim them. # Live ISO already has its own welcome (hosts/live.nix); skip there so # users aren't double-toasted and the live seed doesn't get a sticky # firstBootShown write every boot. # uname -n is coreutils; avoid depending on a separate hostname package. hn=$(uname -n 2>/dev/null || true) if [ "$hn" = nomarchy-live ]; then exit 0 fi # Already shown → silent. Missing key / no checkout → treat as not shown # (theme-sync get exits non-zero when the key is absent). shown=$(nomarchy-theme-sync get settings.firstBootShown 2>/dev/null || true) case "$shown" in true|1|yes) exit 0 ;; esac # Dismissible sheet, not a wizard. Body lines match SUPER+? mnemonics. notify-send -a Nomarchy -u normal -t 0 \ "You're set" \ "SUPER+M menu · SUPER+T themes · SUPER+? keys Wi‑Fi: System › Network (or the bar tray) Anything off? System › Doctor" # Persist in the checkout so re-login is silent. --no-switch: marker only. if ! nomarchy-theme-sync --quiet set settings.firstBootShown true --no-switch; then # No writable flake checkout (or tool missing) — still showed the toast; # without a marker it may reappear next login. Don't fail the unit. exit 0 fi