feat(welcome): show "What's installed?" summary on first boot

New nomarchy-installed-summary script renders a markdown table via
gum format with the install shape the user should verify before they
start customising:

  - theme / font / panel position    (~/.config/nomarchy/state.json)
  - timezone / DNS / hybrid GPU      (/etc/nixos/state.json)
  - form factor                      (BAT* sysfs presence)
  - software profiles                (presence of marker packages)
  - FDE                              (any crypt entry in lsblk)
  - drives                           (lsblk filtered to disk/part/crypt)

nomarchy-welcome calls it as Step 0 — before the theme/font/panel
pickers — and gates progression on a gum input prompt so the user has
to acknowledge before customisation rewrites anything. The script is
also callable standalone from any terminal: `nomarchy-installed-summary`.

Self-contained — no installer-side changes. Software profiles are
detected heuristically (the installer bakes the user's pick into the
generated home.nix as concrete home.packages rather than persisting a
profile list), which is good enough for verification but won't catch
manually-removed profile packages. gum is in the existing categoryDeps
so no new tools are needed; falls back to plain markdown when gum
isn't on PATH (recovery contexts).

Closes the "Installer: What's installed? summary on first boot"
Now-column item from Pillar 4.
This commit is contained in:
Bernardo Magri
2026-05-22 17:45:24 +01:00
parent 802acfdc86
commit 0f22c48c45
3 changed files with 112 additions and 5 deletions

View File

@@ -26,6 +26,14 @@ gum style \
echo "Welcome! Let's personalize your new system."
echo ""
# 0. Show what the installer actually wrote so the user can verify the
# install shape (theme, font, profiles, drives, FDE, form factor) before
# diving into customisation. Available standalone via the same command.
nomarchy-installed-summary
echo ""
gum input --placeholder "Press Enter to continue with customisation…" >/dev/null || true
echo ""
# 1. Select initial theme
echo "Step 1: Choose your starting theme"
SELECTED_THEME="$(nomarchy-theme-list | gum filter --placeholder 'Select a theme...')"