Personal dotfiles for a minimal, reproducible macOS development environment.
- Brewfile — Homebrew package and cask list
- install.sh — Installer script that creates symlinks and provisions Homebrew
- gitconfig — Git config
- zprofile — Login shell profile (Homebrew shellenv)
- zshrc — Interactive shell config (rbenv, direnv, starship)
- config/starship.toml — Starship prompt configuration
This repo provides a small set of dotfiles and an installer to:
- Symlink configuration files into your $HOME
- Install Homebrew (if missing)
- Run
brew bundleusing the provided Brewfile
Run the installer from the repo root:
bash ./install.shThe installer script install.sh sets up a runtime variable DOTFILES_DIR and uses the helper function link() to create symlinks and back up existing files.
What gets linked by default:
- zprofile -> ~/.zprofile
- zshrc -> ~/.zshrc
- gitconfig -> ~/.gitconfig
- config/starship.toml -> ~/.config/starship.toml
The script will install Homebrew if it is not present, then run:
brew updatebrew bundle --file "$DOTFILES_DIR/Brewfile"(uses Brewfile)brew upgrade --caskbrew cleanup
- Existing destination files are moved to a timestamped backup:
file -> file.bak.<epoch> - Symlinks are created with
ln -sso the source repo remains authoritative. - See the implementation of
link()for exact behavior.
- Edit config/starship.toml to change prompt appearance.
- Modify Brewfile to change installed packages and casks.
- Update gitconfig, zprofile, and zshrc as desired.
To revert changes made by the installer:
- Remove the symlinks created in your home directory (e.g.,
~/.zshrc,~/.gitconfig, etc.). - Restore backups
*.bak.*which the installer created. - Optionally uninstall Homebrew packages via
brew uninstall/brew bundle --file Brewfile --no-upgradeas needed.
- The prompt relies on starship and its config at config/starship.toml.
- zshrc initializes
rbenv,direnv, andstarship.