Quickly configure a fresh macOS development environment.
Use these scripts at your own risk.
These scripts will modify system configurations and overwrite existing files. Review the code and remove anything that doesn't suit your setup before running.
Clone the repository and run the installer:
git clone https://github.com/zankyr/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.shThe installer will, in order:
- Install Homebrew if not already present
- Install all packages and apps from
Brewfile - Symlink all dotfiles into
$HOMEvia GNU Stow - Trust the mise config (required because the file is a symlink outside
$HOME) - Apply macOS system defaults (
.macos) - Set zsh as the default shell
To preview what would happen without making any changes:
./install.sh --dry-runFiles are organised into Stow packages. Each directory maps directly to $HOME:
zsh/ → ~/.zshrc, ~/.zshenv, ~/.aliases, ~/.functions, ~/.hushlogin
git/ → ~/.gitconfig, ~/.gitignore_global
vim/ → ~/.vimrc, ~/.vim/
starship/ → ~/.config/starship.toml
mise/ → ~/.config/mise/config.toml
macos/ → run directly by install.sh (not symlinked)
Running stow <package> from the repo root creates the symlinks. Running stow -D <package> removes them.
- Packages and apps — edit
Brewfileand runbrew bundle - Shell config — edit files under
zsh/ - Prompt — edit
starship/.config/starship.toml - Runtime versions (Java, etc.) — managed per-project via
.mise.tomlin each project root; add global tools tomise/.config/mise/config.toml - macOS settings — edit
macos/.macos
Because Stow uses symlinks, editing a file in $HOME (e.g. ~/.aliases) is the same as editing it in the repo — no sync step needed.
- Mathias Bynens and his dotfiles repository