A minimal, carefully maintained collection of dotfiles for macOS. My philosophy is to delete unnecessary configurations as often as possible to keep things simple and maintainable.
These dotfiles help configure:
- zsh with plugins (via oh-my-zsh)
- git configuration
- Homebrew packages and applications
- macOS preferences
- vim, SSH, Docker, and other development tools
- iTerm2 and Cursor editor settings
- direnv for environment management
- 1Password SSH agent integration for SSH and git commit signing
- Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - Oh My Zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" - Oh My Zsh plugins:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestionsgit clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone [email protected]:reidlevesque/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap.shThe installation process:
- Creates symlinks for all
*.symlinkfiles into your home directory - Installs Homebrew packages defined in the Brewfile
- Runs topic-specific installers for additional setup
The repository follows a modular approach:
bootstrap.sh: Main entry point that runsinstall.shwithcaffeinateto prevent sleepinstall.sh: Creates symlinks and runs all topic-specific installersBrewfile: Defines all Homebrew packages, casks, and fonts to installtopic/: Directories for each tool or area of configurationtopic/*.zsh: Files loaded into your zsh environmenttopic/path.zsh: Loaded first to set up $PATHtopic/completion.zsh: Loaded last to set up autocompletiontopic/*.symlink: Files that get symlinked to your $HOME (e.g.,zsh/zshrc.symlink→~/.zshrc)topic/install.sh: Topic-specific installation scripts
bin/: Executables that are added to your $PATH
- SSH agent configuration uses the 1Password SSH agent for secure key management
- Git commit signing is configured to use 1Password's SSH signing capabilities
- Multiple git identities can be managed with the
git-assumefunction
For detailed documentation on the Git identity management system, see git/README.md.
To add your own configurations:
- Create a new directory for your topic
- Add
.zshfiles for zsh configuration - Add
.symlinkfiles that should be linked to your home directory - Create an
install.shscript if additional setup is needed
cd ~/.dotfiles
git pull
./bootstrap.sh- Add install.sh to sleepwatcher
- Add install.sh to iterm
- Add install.sh to KeyBindings
- Review lox's git setup
- Add hermit folder from lox's dotfiles