#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:

text
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:

bash
#!/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 write tweaks (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.