Personal dotfiles for macOS — shell, editor, terminal, git, and system configs managed via a bare git repo.
Shell — Zsh with Zinit plugin manager, Starship prompt, modular setup (aliases, exports, functions)
Terminal — Ghostty config, htop, btop, bat, eza, fd, ripgrep, fzf
Git — delta diff pager, lazygit TUI, global gitignore, custom aliases
Editor — Neovim with vim-plug
macOS — Homebrew Brewfile (150+ packages, casks, Go/uv/npm tools), bootstrap scripts
Docs — full references under dotfiles/docs/:
| Doc | Covers |
|---|---|
| Setup | How the bare repo works — clone, alias, commands |
| Tools | Tracked configs by category |
| macOS Bootstrap | New Mac setup step by step |
| SSH Identities | Multi-key setup for personal + work |
git clone --bare [email protected]:guumaster/dotfiles.git ~/.dotfiles.git
alias config='git --git-dir=$HOME/.dotfiles.git --work-tree=$HOME'
config checkout
config config status.showUntrackedFiles noAdd the config alias to your .zshrc, then:
config status # see tracked files
config add <file> # track a new config
config diff # review changes
config commit -m "…"
config push# 1. Clone and check out
git clone --bare [email protected]:guumaster/dotfiles.git ~/.dotfiles.git
git --git-dir=$HOME/.dotfiles.git --work-tree=$HOME checkout
git --git-dir=$HOME/.dotfiles.git --work-tree=$HOME config status.showUntrackedFiles no
# 2. Install packages (requires Homebrew)
brew bundle --file ~/dotfiles/BrewfileSee dotfiles/docs/macos.md for the full guide, including SSH setup and post-install steps.
This repo uses a bare git clone with $HOME as the working tree. Files stay at their native OS paths — no symlinks, no wrappers. The config alias lets you run git commands against $HOME/.dotfiles.git from anywhere.
Set status.showUntrackedFiles = no so config status only shows files you've explicitly added.