Personal dotfiles managed with chezmoi, featuring Starship prompt and LazyVim.
macOS (Homebrew):
- Terminal:
wezterm,starship,tmux,neovim,fzf - DevOps:
awscli,argocd,kubernetes-cli,kubectx,kustomize,kubeseal,stern,docker-desktop - Infrastructure:
checkov,tfsort,terraform(via mise) - Tools:
gh,chezmoi,mise,pre-commit,gnupg,1password-cli - Apps:
1password,brave-browser,slack,notion,amethyst,grammarly-desktop,keybase
Linux (apt/snap):
- Similar toolset adapted for Linux package managers
- Shell:
zshwith Starship prompt, aliases, and completions - Editor: LazyVim (Neovim) with custom configs
- Git: Global gitconfig with GPG signing
- Terminal: WezTerm configuration
- Window Manager: Amethyst (macOS tiling)
- Version Manager: mise for runtime versions (Node, Python, Ruby, Go, Terraform, etc.)
Applies sensible defaults including:
- Dark mode, keyboard settings, trackpad configuration
- Finder preferences (show extensions, hidden files)
- Dock settings (autohide, icon size)
- Security settings (firewall, screen lock)
- And 400+ other tweaks
- macOS (primary) or Linux (Ubuntu/Debian)
- Admin/sudo access
- Internet connection
# Install Homebrew (macOS)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install essentials
brew install gh chezmoi
# Authenticate with GitHub
gh auth login# Clone and initialize dotfiles
chezmoi init git@github.com:benniemosher/dotfiles-2024.git
# Preview what will be changed (optional but recommended)
chezmoi diff
# Apply dotfiles
chezmoi apply- Open 1Password app
- Go to 1Password Menu > Settings > Developer
- Enable:
- "Use the SSH agent"
- "Integrate with 1Password CLI"
- Sign in to CLI:
op signin
# Re-apply to pick up 1Password-managed secrets
chezmoi apply
# Restart your terminal (or start WezTerm)If you use Keybase for GPG keys, create ~/.profile.local:
export KEYBASE_USERNAME="your-username"
export KEYBASE_PAPERKEY="your-paperkey"
export KEYBASE_KEY_ID="your-key-id"Then run chezmoi apply again.
The repo is cloned to ~/.local/share/chezmoi. A symlink is automatically created at ~/Code/dotfiles.
# Pull latest changes and apply
chezmoi update
# See what would change
chezmoi diff
# Apply changes
chezmoi apply
# Edit a managed file
chezmoi edit ~/.zshrc
# Add a new file to management
chezmoi add ~/.some-config
# Go to the source directory
chezmoi cdEdit .chezmoidata/packages.yaml:
packages:
darwin:
brews:
- "new-package"
casks:
- "new-app"Then run chezmoi apply.
Ensure you have admin access and try with sudo where appropriate.
- Verify 1Password settings (Developer > SSH agent enabled)
- Check
~/.config/1Password/ssh/agent.tomlexists - Restart 1Password and terminal
- Ensure GPG agent is running:
gpgconf --launch gpg-agent - Verify key is available:
gpg --list-secret-keys
brew update && brew upgrade
brew doctor.
├── .chezmoidata/ # Data files (packages, settings)
├── dot_config/ # ~/.config files
├── dot_zshrc.tmpl # Shell configuration
├── dot_gitconfig.tmpl # Git configuration
├── dot_wezterm.lua # Terminal configuration
├── private_dot_ssh/ # SSH configuration
├── private_dot_gnupg/ # GPG configuration
└── run_onchange_*.sh.tmpl # Install/setup scripts
Personal dotfiles - feel free to use as inspiration for your own setup.