#The problem this solves
Every time I’ve set up a new Mac (or nuked an old one back to factory), I’ve
lost an afternoon re-discovering the same dozen defaults write commands and
re-installing the same CLI tools one at a time. This repo is the fix: a
single ./install.sh that symlinks config into place and installs
everything via Homebrew from one Brewfile.
This write-up is still a placeholder — real content (the actual repo
structure, the trickier symlink edge cases, why I picked stow over hand-rolled
symlinking) lands once I’ve cleaned the repo up enough to point people at it.
#Shape of the repo
Roughly:
dotfiles/
Brewfile
install.sh
zsh/.zshrc
git/.gitconfig
nvim/init.lua
install.sh is intentionally boring — no framework, just enough bash to be
readable in one sitting:
#!/usr/bin/env bash
set -euo pipefail
DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
brew bundle --file="$DOTFILES_DIR/Brewfile"
for pkg in zsh git nvim; do
stow --dir="$DOTFILES_DIR" --target="$HOME" "$pkg"
done
#What’s not written up yet
- The actual
.zshrc— aliases, prompt, plugin manager choice. - macOS
defaults writetweaks (Dock, Finder, keyboard repeat rate) and why each one is there. - How secrets (SSH keys,
.netrc-style tokens) are kept out of this repo on purpose.
#Why bother writing this up
Mostly so future-me stops re-deriving the same setup from memory. If it’s useful to anyone else who stumbles onto this page, that’s a nice bonus.