Skip to content

Configuration

Customize the bootstrap behavior with environment variables, skip flags, and local Git overrides.

Environment Variables

VariableEffect
ONLY_STOW=1Skip all installers — only symlink configs
SKIP_<STEP>=1Skip a specific step (see full list below)
APPLY_MACOS_DEFAULTS=1Opt-in to macOS system preferences automation
EXTRA_TOOLS="pkg1 pkg2"Additional apt packages to install alongside defaults
EXTRA_CONFLICT_FILES="path1"Extra files to back up before stowing
BREWFILE_PATH=/pathOverride the macOS Brewfile location
BREW_CLEANUP=1Remove unlisted Homebrew packages after install

Stow-only mode

Run ONLY_STOW=1 ./bootstrap.sh to re-link configs without re-running any installers. Useful after editing a dotfile.

SKIP Flags

Use SKIP_<STEP>=1 to disable individual bootstrap steps.

Linux / macOS

FlagSkips
SKIP_PACKAGESCore apt packages
SKIP_MACOSmacOS Homebrew bundle
SKIP_SSHSSH server setup
SKIP_OHMYZSHOh My Zsh + plugins + Powerlevel10k
SKIP_FONTSMesloLGS Nerd Font installation
SKIP_EZAeza (modern ls)
SKIP_NVMNode Version Manager
SKIP_BUNBun runtime
SKIP_NEOVIMNeovim AppImage
SKIP_ZOXIDEzoxide (smart cd)
SKIP_LAZYGITlazygit TUI
SKIP_UVuv (Python package manager)
SKIP_AZURE_CLIAzure CLI
SKIP_RUSTRust toolchain via rustup
SKIP_WSLWSL-specific setup
SKIP_DELTAgit-delta pager
SKIP_EXTRASExtra CLI tools (bat, fd, etc.)
SKIP_EXTRAS_OPSOps tools (kubectl, helm)
SKIP_MACOS_DEFAULTSmacOS system preferences
SKIP_STOWSymlink step
SKIP_GIT_SIGNING1Password SSH commit signing
SKIP_GIT_CREDENTIALSGitHub credential helper
SKIP_SHELLDefault shell change

Windows

FlagSkips
SKIP_PACKAGESwinget package installs
SKIP_GIT_TOOLSGit-related tool setup
SKIP_NVMnvm-windows
SKIP_RUSTRust toolchain
SKIP_FONTSFont installation
SKIP_EXTRASExtra tools
SKIP_PROFILEPowerShell profile linking
SKIP_LINK (or SKIP_STOW)Dotfile symlinks/junctions

WARNING

Skipping STOW / LINK means your config files won't be updated. Only skip this if you manage symlinks manually.

Git Identity

The .gitconfig includes ~/.gitconfig.local for machine-specific overrides (this file is not tracked by git).

ini
# ~/.gitconfig.local — add your own overrides here
[user]
    name = Your Name
    email = you@example.com

Automatic Git Configuration

Bootstrap auto-configures the following when the relevant tools are detected:

FeatureConditionDisable with
1Password SSH signingop-ssh-sign binary detectedSKIP_GIT_SIGNING=1
GitHub credential helpergh CLI detectedSKIP_GIT_CREDENTIALS=1
  • 1Password SSH signing — enables gpg.format=ssh for commit signing via 1Password's SSH agent
  • GitHub credential helper — sets gh auth as the HTTPS credential helper for seamless git push/pull

Adding New Config Modules

To add a new tool's configuration to the dotfiles:

  1. Create a directory that mirrors the home directory structure:
bash
mkdir -p alacritty/.config/alacritty
cp ~/.config/alacritty/alacritty.toml alacritty/.config/alacritty/alacritty.toml
  1. Add the directory name to STOW_DIRS in bootstrap.sh

  2. Restow to activate:

bash
stow -v -R -t "$HOME" -d "$(pwd)" alacritty

TIP

GNU Stow maps the directory structure inside each package to your home directory. A file at alacritty/.config/alacritty/alacritty.toml becomes a symlink at ~/.config/alacritty/alacritty.toml.

Released under the MIT License.