Personal development environment configs. macOS primary, Linux/WSL compatible.
Managed with GNU Stow -- symlinks everything to $HOME automatically.
| Category | Tools | Config files |
|---|---|---|
| Shell | Zsh + Oh My Posh | .zshrc, .aliases, .zsh/, .wolfius.omp.json |
| Terminal | Ghostty | .config/ghostty/config |
| Editors | Neovim (LazyVim), Vim, Zed | .config/nvim/, .vimrc, .config/zed/ |
| Git | Git, GitHub CLI, lazygit | .gitconfig, .config/gh/ |
| AI | Claude Code | claude-global/.claude/ |
| Other | fastfetch, yazi, 1Password SSH | .config/fastfetch/, .config/yazi/, .config/1Password/ |
| Fonts | Hack Nerd Font, JetBrains Mono Nerd Font | .fonts/ |
- OS-aware config: macOS and Ubuntu/WSL get separate sourced files
- zoxide for smart
cd - eza for
ls - zsh-autosuggestions + zsh-syntax-highlighting
- NVM with auto
.nvmrcswitching on directory change - Machine-specific overrides via
.zshrc.local(gitignored)
- Neovim: LazyVim framework with Lazy.nvim plugin manager
- Zed: Gruvbox theme, Biome formatter for TS/TSX, JetBrains keymap
- Vim: Molokai colorscheme, legacy config
- Ghostty with Hopscotch.256 theme, 95% opacity + blur
- Oh My Posh custom prompt with git status, node version, execution time, and clock
git clone <this-repo> ~/dotfiles # or wherever you want
cd ~/dotfiles
# 1. Install prerequisites (Homebrew, Zsh, Stow, NVM, pnpm, Claude Code)
chmod +x setup.sh && ./setup.sh
# 2. Install Homebrew packages + symlink dotfiles
chmod +x install.sh && ./install.shThat's it. Restart your terminal.
setup.sh installs foundational tools:
- Homebrew (if missing)
- Zsh + sets as default shell
- GNU Stow
- NVM, pnpm, Claude Code
install.sh does the rest:
- Runs
brew bundlefrom the Brewfile (CLI tools and casks) - Runs
stowto symlink everything to$HOME
- Sign into 1Password and enable the SSH agent
- Sign into GitHub CLI:
gh auth login - Import machine-specific overrides to
.zshrc.localand.gitconfig.local
All Homebrew packages and casks are tracked in the Brewfile. To update it after installing something new:
brewsave # alias for: brew bundle dump --file=<path>/Brewfile --force- Place the file at the repo root, mirroring its
$HOMEpath (e.g.,.config/tool/config) - Run
stow --adopt -t "$HOME" .to create the symlink - If the file shouldn't be symlinked, add it to
.stow-local-ignore - If it's machine-specific, add it to
.gitignore
These files are gitignored and loaded if present:
.zshrc.local-- extra shell config (e.g., Laravel Herd paths).gitconfig.local-- local git overrides (e.g., signing keys).claude/settings.local.json-- local Claude Code settings