Personal dotfiles for macOS. Clean, minimal, and optimized for productivity.
| Tool | Description |
|---|---|
| Zsh | Shell with Oh My Zsh + Powerlevel10k |
| Neovim | LazyVim setup for a modern editing experience |
| WezTerm | GPU-accelerated terminal with iTerm2-style keybindings |
| Karabiner | Caps Lock → Hyper Key (⌘⌃⌥⇧) |
| Git | Global config with sensible defaults |
| Lazygit | Terminal UI for git commands |
| Lazydocker | Terminal UI for Docker management |
| VS Code | Minimal, distraction-free UI settings |
# Clone the repo
git clone https://github.com/nicowenterodt/dotfiles.git ~/dotfiles
# Run the install script
cd ~/dotfiles && ./install.shThe install script is idempotent — safe to run multiple times without breaking your setup.
- Installs Oh My Zsh if not present
- Creates symlinks for all configuration files
- Automatically backs up existing configs to
~/.dotfiles_backup/YYYY-MM-DD_HH-MM-SS/ - Installs Homebrew packages from Brewfile
- Validates installation and reports status
- Detects script location (doesn't have to be in
~/dotfiles)
All backups are kept indefinitely - you can manually clean them up when needed.
| Shortcut | Action |
|---|---|
⌘ D |
Split pane horizontally |
⌘ ⇧ D |
Split pane vertically |
⌘ W |
Close pane |
⌘ ⌥ ←↑↓→ |
Navigate between panes |
⌘ ⌥ h/j/k/l |
or with vim motions |
Two profiles configured for different keyboard types:
| Profile | Keyboard Type | Description |
|---|---|---|
| default | ANSI | For MacBook built-in keyboard |
| external | ISO | For mechanical external keyboards |
Both profiles include:
| Shortcut | Action |
|---|---|
Caps Lock |
Hyper Key (⌘⌃⌥⇧) |
Switching profiles: Open Karabiner-Elements preferences → Select "Profiles" tab → Choose your profile
dotfiles/
├── install.sh # Symlink setup script
├── Brewfile # Homebrew packages
├── git/ # Git configuration
├── karabiner/ # Keyboard customization
├── nvim/ # Neovim (LazyVim)
├── vscode/ # VS Code settings
├── wezterm/ # Terminal configuration
└── zsh/ # Shell configuration
Managed via Brewfile:
- CLI: git, lazygit, lazydocker, neovim, powerlevel10k
- Apps: Rectangle, Karabiner Elements
- Fonts: Hack Nerd Font
- Terminal: Catppuccin Mocha
- Font: Hack Nerd Font (14pt)
- VS Code: Night Owl
-
Set up Git profile:
nvim ~/dotfiles/git/.gitconfig.localAdd your name and email:
[user] name = Your Name email = your.email@example.com
-
Select Karabiner profile:
- Open Karabiner-Elements
- Go to Profiles tab
- Select "default" for MacBook keyboard or "external" for ISO mechanical keyboard
-
Install Homebrew (if not installed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Restart your terminal to apply all changes.
The install script validates all symlinks. If you see errors, check:
ls -la ~/.zshrc
ls -la ~/.config/nvimSymlinks should point to your dotfiles directory.
All backups are stored in ~/.dotfiles_backup/ with timestamps:
ls -la ~/.dotfiles_backup/The script symlinks both settings.json and keybindings.json (if present):
- Settings:
~/Library/Application Support/Code/User/settings.json - Keybindings:
~/Library/Application Support/Code/User/keybindings.json
If VS Code is running, restart it after installation.
Safe to run multiple times! The script:
- Skips if symlinks already point to dotfiles
- Only backs up files that aren't already symlinks to dotfiles
- Won't reinstall Oh My Zsh if it exists