feat: first-run initialization routine #34

Merged
rootiest merged 7 commits from feat/first-run-init into main 2026-06-07 03:14:14 +00:00
Owner

Summary

  • Adds conf.d/first_run.fish — runs exactly once on the first interactive fish session, guarded by the universal variable __fish_config_first_run_complete
  • Prints a one-time welcome message with hints for config-help and fish-deps
  • Automatically bootstraps Fisher + all plugins from fish_plugins (silent, no prompt)
  • Applies the Catppuccin Mocha theme on first run
  • Removes the old interactive Fisher prompt from config.fish (the read -l -P "Install Fisher?" block)
  • Error handling distinguishes Fisher install failure from plugin sync failure, both reporting to stderr
  • Reset mechanism: set -Ue __fish_config_first_run_complete + new shell re-triggers everything
  • Updates docs/fish-config.md and README.md to document the new behavior

Manual Verification

  • Clone the repo fresh (or set -Ue __fish_config_first_run_complete) and open a new interactive shell — confirm the welcome message appears, Fisher installs, and the Catppuccin Mocha theme is applied
  • Open a second shell immediately after — confirm no welcome message and no Fisher output (idempotency)
  • Run fish -c "echo hello" — confirm no welcome message appears (non-interactive guard)
  • Verify set -q __fish_config_first_run_complete returns true after first-run completes
  • Check config-help and fish-deps commands are accessible after first-run (plugins loaded correctly)
## Summary - Adds `conf.d/first_run.fish` — runs exactly once on the first interactive fish session, guarded by the universal variable `__fish_config_first_run_complete` - Prints a one-time welcome message with hints for `config-help` and `fish-deps` - Automatically bootstraps Fisher + all plugins from `fish_plugins` (silent, no prompt) - Applies the Catppuccin Mocha theme on first run - Removes the old interactive Fisher prompt from `config.fish` (the `read -l -P "Install Fisher?"` block) - Error handling distinguishes Fisher install failure from plugin sync failure, both reporting to stderr - Reset mechanism: `set -Ue __fish_config_first_run_complete` + new shell re-triggers everything - Updates `docs/fish-config.md` and `README.md` to document the new behavior ## Manual Verification - [x] Clone the repo fresh (or `set -Ue __fish_config_first_run_complete`) and open a new interactive shell — confirm the welcome message appears, Fisher installs, and the Catppuccin Mocha theme is applied - [x] Open a second shell immediately after — confirm no welcome message and no Fisher output (idempotency) - [x] Run `fish -c "echo hello"` — confirm no welcome message appears (non-interactive guard) - [x] Verify `set -q __fish_config_first_run_complete` returns true after first-run completes - [x] Check `config-help` and `fish-deps` commands are accessible after first-run (plugins loaded correctly)
rootiest added 7 commits 2026-06-07 03:13:03 +00:00
rootiest merged commit 9959bd4dc6 into main 2026-06-07 03:14:14 +00:00
rootiest deleted branch feat/first-run-init 2026-06-07 03:14:14 +00:00
Sign in to join this conversation.