Skip to content

Bootstrapping a Machine

The high-level path for a fresh machine: install packages with Homebrew, then symlink the configs into place with GNU Stow.

All brew installs live in .config/brew/scripts/, split into category files. The wrapper iterates over every brew_<NN>_<category>.sh script in that directory, so you only run one command.

Make the wrapper executable and run it:

Terminal window
chmod +x .config/brew/scripts/brew.sh
./.config/brew/scripts/brew.sh

brew.sh is adapted from mathiasbynens’ dotfiles, modularized so each category is its own file.

After installing GNU Stow (it’s in the brew lists), create the symlinks by running the stow script:

Terminal window
./.config/stow/stow.sh

Stow creates symbolic links from this repo into your home directory, so the tracked files become your live configuration.

The .macos file applies macOS system preferences. It’s based on mathiasbynens’ .macos, adjusted to my needs. Review it before running — it changes a lot of system settings.

.profile is a generic shell config applied across bash and zsh sessions. To check your current shell:

Terminal window
echo $SHELL

To change your default shell (e.g. to zsh):

Terminal window
chsh -s /bin/zsh
  • Set up commit signing and other tooling — see Setup.
  • Regenerate or browse the editor config under Emacs.