Complete installation and configuration guide for this dotfiles setup.
- Git
- curl
- sudo access
- macOS or Linux (Arch, Ubuntu, Fedora, Debian)
Before starting, you may want to review:
- ARCHITECTURE.md - How the system works
- PROFILES.md - Work vs personal profiles
- PACKAGES.md - What gets installed
sh -c "$(curl -fsLS get.chezmoi.io)"git clone https://github.com/YOUR-USERNAME/dotfiles.git ~/.local/share/chezmoi
cd ~/.local/share/chezmoimake diffmake apply -vAnswer prompts:
- Machine type (work/personal)
- Git name
- Git email
- Git signing key
- Codex base URL (work only)
make installThis will:
- Install Homebrew (if not present)
- Install 108+ packages and tools
- Install npm global packages
- Set up Oh My Zsh + Powerlevel10k
- Generate SSH keys
exec zshsh -c "$(curl -fsLS get.chezmoi.io)"chezmoi init https://github.com/YOUR-USERNAME/dotfiles.gitAnswer the same prompts as above.
chezmoi diffchezmoi apply -vAuto-runs:
- Directory creation
- Package installation
- Oh My Zsh setup
- SSH key generation
exec zshThe Makefile provides 30+ commands for managing your dotfiles:
make help # Show all available commands
make diff # Preview changes
make apply # Apply dotfiles
make test # Dry-run (safe testing)
make install # Install all dependencies
make check # Verify without applyingmake git-status # Check git status
make git-log # View recent commits
make commit # Commit changes (prompts for message)
make push # Push to remote
make pull # Pull from remote
make update # Pull and apply in one commandmake edit # Edit a dotfile (prompts for filename)
make add # Add a file to chezmoi (prompts for path)
make remove # Remove a file from chezmoimake packages-darwin # Install macOS packages only
make packages-linux # Install Linux packages only
make setup-ohmyzsh # Install Oh My Zsh
make setup-ssh # Generate SSH keysmake backup # Backup current config
make clean # Clean chezmoi cache
make doctor # Diagnose issues
make verify # Verify all files
make lint # Lint shell scripts
make version # Show tool versionsmake data # Show template data
make execute-template # Test template expressions
make cd # Open source directory
make docs # View documentation# Pull latest and apply
make update
# Or step by step
make pull
make apply# Pull latest
chezmoi update
# Or manually
cd ~/.local/share/chezmoi
git pull
chezmoi applymake apply-force
# Or with chezmoi:
chezmoi init --apply --force# Check variables
make data
# Test specific template
make execute-template
# Then enter: {{ .machine.type }}
# View file before apply
chezmoi cat ~/.zshrc# With chezmoi directly
chezmoi apply --exclude scriptsmake status
make verify
make doctormake diff # See all changes
make git-log # Recent commitsAuto-detects:
- OS: macOS/Linux
- Distribution: Arch/Ubuntu/Fedora
- GUI: X11/Wayland/macOS
- Machine type: Hostname contains "work"/"corp"/"talview"
Override in ~/.config/chezmoi/chezmoi.toml:
[data.machine]
type = "work" # or "personal"
hasGui = trueThe setup installs:
- macOS: 108+ Homebrew formulas + casks
- Linux: Core development tools via pacman/apt/dnf
- npm: 16+ global packages
- Fonts: 3 Nerd Fonts
Packages only install when:
- First time applying
- Package list changes (via
run_onchange_)
| Task | Makefile | Direct chezmoi |
|---|---|---|
| Apply changes | make apply |
chezmoi apply |
| Show diff | make diff |
chezmoi diff |
| Update | make update |
chezmoi update |
| Commit | make commit |
cd ~/.local/share/chezmoi && git commit |
| Install packages | make install |
chezmoi apply --include scripts |
| Edit file | make edit |
chezmoi edit ~/.zshrc |
| Test | make test |
chezmoi apply --dry-run |
Recommendation: Use Makefile for consistency and additional features like backup, linting, and integrated git workflow.
-
Customize for your needs:
make edit # Modify dotfiles make commit make push -
Install on another machine:
make init # On new machine make apply -
Keep updated:
make update # Regularly pull changes -
Explore commands:
make help # See all available commands
After setup, explore these docs:
| Document | Description |
|---|---|
| SHELL.md | Shell configuration and aliases |
| GIT.md | Git settings and GPG signing |
| NEOVIM.md | Editor configuration |
| TOOLS.md | Tool configurations |
| TEMPLATES.md | Chezmoi templating |
| SCRIPTS.md | Setup scripts |
| MAKEFILE.md | All Makefile commands |
| ../testing/README.md | Testing infrastructure |