Dot files. Oh, the dot files.
For a new Mac, try the bootstrap.
Symlinking is handled either by the Makefile in this repo or by the separate mac-bootstrap Ansible project.
git clone git@github.com:jshiell/dotfiles.git ~/dotfiles
cd ~/dotfiles
make install
make status shows the current state of all managed symlinks. make uninstall removes them.
~/.zshrc symlinks to zsh/zshrc, which resolves its own location through symlinks and then sources every *.zsh file in the same directory alphabetically. Each file is responsible for a single tool or concern:
| File | Purpose |
|---|---|
brew.zsh |
Homebrew path setup (Linux/Intel/ARM), bat and prettyping aliases |
config.zsh |
History, keybindings, completions |
editor.zsh |
Sets $EDITOR |
gpg.zsh |
Sets GPG_TTY for pinentry |
mise.zsh |
mise polyglot version manager |
rustup.zsh |
Cargo bin path |
starship.zsh |
Starship prompt init |
znap.zsh |
Znap plugin manager; loads ohmyzsh plugins and zsh-syntax-highlighting |
zoxide.zsh |
zoxide smart cd init |
Configured via starship.toml using the gruvbox_dark preset. Starship is initialised last, after the Znap/ohmyzsh stack, so it takes precedence over any ohmyzsh theme.
~/.vimrc symlinks to vim/vimrc and ~/.vim symlinks to vim/. Plugin management uses Pathogen (vendored in vim/autoload/) with plugins stored as git submodules in vim/bundle/:
vim-colors-solarized— colour schemevim-airline+vim-airline-themes— status barcommand-t— fuzzy file finder
~/.config/helix symlinks to helix/. Uses the solarized_dark theme.
~/.config/zed symlinks to zed/. Settings use the NeoSolarized theme (system-adaptive light/dark) with Monaspace Neon NF as the buffer font.
~/.config/ghostty symlinks to ghostty/. Font is Monaspace Neon NF.