Reconfigure later
Two ways to change your wizard answers after first install — the --reconfigure flag or a hand-edit of local.env — and which install modules to re-run for which flag change.
The first-run wizard only fires once. After that, ./install.sh loads ~/.config/dotfiles/local.env silently and goes straight to the module picker. There are two supported ways to change your answers later — pick whichever fits the size of the change.
Option 1 — ./install.sh --reconfigure
Re-asks every question, with your current values pre-filled as defaults. Press Enter on any prompt to keep what you had; type a new value to change it.
./install.sh --reconfigure Use this when:
- You’re flipping multiple flags at once (e.g., turning the NAS on for the first time on a machine that previously had
HAS_NAS=false). - You want validation — the wizard re-validates positive integers, y/n booleans, etc.
- You’re not 100% sure which key controls which feature and want the prompts to guide you.
Behind the scenes this re-writes ~/.config/dotfiles/local.env (and, if you provided git identity, ~/.gitconfig.local). It does not automatically re-run the gated install modules — see After flipping a flag below.
Option 2 — Edit local.env by hand
For a single-key change, opening the file in your editor is faster:
$EDITOR ~/.config/dotfiles/local.env Use this when:
- You know exactly which key you’re changing.
- You want a surgical edit (e.g., bump
ARCHIVE_AFTER_MONTHSfrom1to3, or changeNAS_HOSTbecause you swapped your NAS). - The change doesn’t toggle a feature on/off — just tweaks an existing value.
The file is mode 0600, plain bash-sourceable. The format and every supported key are documented at Configuration and Every question, in full.
After flipping a flag
Whichever path you used, the install modules don’t auto-re-fire. The wizard updates local.env, but if you’ve just turned a feature on (or off) you need to re-run the modules that read that flag so the symlinks and LaunchAgents catch up.
The full module-to-flag mapping lives in Configuration; the short version:
| Flag you flipped | Re-run |
|---|---|
HAS_NAS |
|
HAS_TIMEMACHINE_NAS or TM_SCHEDULE_MONTHLY | ./install.sh --only=symlinks,launchd |
ENABLE_SORT_DOWNLOADS or SORT_DOWNLOADS_BACKGROUND | ./install.sh --only=symlinks,launchd |
ENABLE_ARCHIVE_PROJECT | ./install.sh --only=symlinks |
CODE_DIR, NAS_HOST, NAS_USER, NAS_SHARE_*, NAS_MOUNT_* | ./install.sh --only=symlinks (re-renders the .inetloc with the new values) |
GIT_USER_NAME / GIT_USER_EMAIL (hand-edit only) | Also hand-edit |
ARCHIVE_AFTER_MONTHS | Nothing — archive-project reads the value at runtime each invocation. |
Example flows
Turning on NAS auto-sort after a year of HAS_NAS=false
./install.sh --reconfigure # answer y to HAS_NAS, fill in details, y to sort-downloads
./install.sh --only=symlinks,launchd # picks up the new flags
Just changing your NAS IP after a network re-jig
$EDITOR ~/.config/dotfiles/local.env # edit NAS_HOST="…"
./install.sh --only=symlinks # re-renders the .inetloc Login Item
Then sign out / sign back in (or trigger the Login Item by hand) so the new mount kicks in.
Bumping the archive threshold
$EDITOR ~/.config/dotfiles/local.env # ARCHIVE_AFTER_MONTHS=3
# Nothing else to do — archive-project reads the value fresh on every run.
Where to go next
- Every question, in full — the verbatim prompts and what each key does.
- Configuration — the full key table, plus how the install modules wire into each flag.
- NAS workflow · Backup — the features behind the flags.