git clone <this repo> ~/dotfiles
cd ~/dotfiles
./install.sh
install.sh installs Homebrew, runs brew bundle (apps, CLIs, fonts, mise),
symlinks the dotfiles into $HOME, installs the global runtimes pinned in
~/.config/mise/config.toml, installs Oh My Zsh, and enables Corepack. Then
finish the manual steps it prints.
A single tool (mise) manages Node, Ruby, and Python —
it replaces pyenv, rbenv, and nvm. It reads .nvmrc / .node-version /
.ruby-version automatically and switches versions on cd; no shims.
- Global versions live in
~/.config/mise/config.toml(Node LTS + Ruby 3.4 + Python 3.13); the file is tracked in this repo and symlinked byinstall.sh. - Per-project versions live in that project's
mise.tomlor idiomatic version files. mise installinstalls everything in scope;mise use -g node@ltspins a global;mise use node@22pins the current project.
Python note: mise is configured not to read .python-version. Manage Python per-project with a mise.toml:
[tools]
python = "3.11"
[env]
_.python.venv = { path = ".venv", create = true }cd into the repo and mise creates/activates .venv; then
pip install -r requirements.txt.
All apps, CLIs, and fonts are declared in the Brewfile.
brew bundle install --file ~/dotfiles/Brewfile # restore
brew bundle dump --describe --force --file ~/dotfiles/Brewfile # regenerate from current machine
brew bundle check --file ~/dotfiles/Brewfile # verify all present
See https://gist.github.com/kevin-smets/8568070
- iTerm2 comes from the Brewfile. Load the Solarized Dark preset: Preferences → Profiles → Colors → Load Presets.
- Set the font to MesloLGS Nerd Font (from the
font-meslo-lg-nerd-fontcask in the Brewfile) so theagnostertheme's glyphs render: Preferences → Profiles → Text → Font. zsh-autosuggestionsis loaded as an Oh My Zsh custom plugin (see.zshrc).
pgstart / pgstop aliases (in .bashrc) start/stop the service.
Turn off dark-mode bars:
defaults write com.google.Chrome NSRequiresAquaSystemAppearance -bool yes