Skip to content

Latest commit

Β 

History

History
41 lines (30 loc) Β· 2.02 KB

File metadata and controls

41 lines (30 loc) Β· 2.02 KB

Dotfiles

Simple dotfiles for macOS on Apple Silicon. Managed by make.

Target platform

  • macOS only β€” no Linux/Windows support needed. Bash-isms, macOS-specific tools (defaults, scutil, pbcopy, hdiutil), and Homebrew paths are all intentional.
  • Apple Silicon only β€” Homebrew is assumed at /opt/homebrew. Intel Mac compatibility is not a goal.

Structure

Flat layout β€” config files at the root or in small topic directories, symlinked to ~/ via make link.

Key files

  • Makefile β€” Installer. Run make for full install, or individual targets (make link, make brew, etc.)
  • zshrc β€” All shell config in one file (PATH, env, options, prompt, aliases, functions)
  • Brewfile β€” All Homebrew packages and casks
  • vim/vimrc β€” Vim configuration
  • native-installs.sh β€” Native shell installers for tools not managed by Homebrew (e.g., Claude Code)
  • macos/defaults.sh β€” macOS system preferences

Symlinks

make link creates these:

  • zshrc β†’ ~/.zshrc
  • git/gitconfig β†’ ~/.gitconfig
  • git/gitignore β†’ ~/.gitignore
  • git/gitmessage β†’ ~/.gitmessage
  • vim/vimrc β†’ ~/.vimrc
  • vim/vimrc.bundles β†’ ~/.vimrc.bundles
  • macos/hushlogin β†’ ~/.hushlogin

Rules

  • Keep secrets out of the repo. Use ~/.localrc for private env vars.
  • git/gitconfig.local is gitignored and holds user-specific git identity. Create via make gitsetup.
  • When adding or removing a setting from macos/defaults.sh, always update macos/audit.sh to match.
  • When adding a new tool, check the vendor's recommended installation method. If the vendor recommends a native installer over Homebrew, add it to native-installs.sh. Otherwise, add it to Brewfile.
  • When adding or modifying Makefile targets, verify the all target order respects dependencies (e.g., brew before targets that use Homebrew-installed tools, link before anything that reads symlinked config).
  • When making structural changes (new files, new Makefile targets, new symlinks), update README.md to match.