Personal dotfiles managed with chezmoi.
# One-liner bootstrap
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply enzolucchesi
# Or step by step
brew install chezmoi
chezmoi init https://github.com/enzolucchesi/dotfiles.git
chezmoi diff # Preview changes
chezmoi apply # Apply changesgraph TD
Start((chezmoi apply)) --> OS{OS Type?}
OS -->|macOS| Darwin[Load darwin config]
OS -->|Linux| Linux[Load linux config]
Darwin --> DarwinPkgs[Homebrew packages<br/>broot, 1password-cli]
Darwin --> DarwinPath[PATH: /opt/homebrew]
Darwin --> DarwinSecrets[1Password secrets]
Linux --> LinuxPkgs[Linuxbrew packages<br/>keychain, 1password-cli]
Linux --> LinuxPath[PATH: /home/linuxbrew]
Linux --> LinuxSecrets[1Password secrets]
DarwinSecrets --> Shared[Shared Config]
LinuxSecrets --> Shared
Shared --> Shell[zsh + zinit + starship]
Shared --> Tools[eza, bat, ripgrep, fd<br/>fzf, zoxide, atuin]
Shared --> Editor[nvim + LazyVim]
Shared --> Terminal[tmux + catppuccin]
| Category | Tools | Platform |
|---|---|---|
| Shell | zsh, zinit, starship, atuin | Both |
| Terminal | tmux, ghostty | Both |
| Editor | nvim (LazyVim) | Both |
| CLI | eza, bat, ripgrep, fd, fzf, zoxide, delta, television | Both |
| Dev | mise, git, gh | Both |
| Utilities | btop, yazi, broot | Both |
| Secrets | 1Password CLI | Both |
dotfiles/
βββ .chezmoiroot # Points to home/
βββ .chezmoiversion # Minimum chezmoi version
βββ Makefile # Common operations
βββ .mise/tasks/ # mise task runner scripts
βββ README.md
βββ home/ # Chezmoi source directory
βββ .chezmoi.toml.tmpl # Config template
βββ .chezmoidata.yaml # Shared data
βββ .chezmoiignore # Ignored files
βββ .chezmoitemplates/ # Shared template fragments
β βββ aliases # Shell aliases
β βββ path-common # Common PATH setup
β βββ 1password-secrets # API keys from 1Password
βββ Brewfile # Homebrew packages
βββ dot_zshrc.tmpl # β ~/.zshrc
βββ dot_bashrc.tmpl # β ~/.bashrc
βββ dot_gitconfig.tmpl # β ~/.gitconfig
βββ dot_tmux.conf.tmpl # β ~/.tmux.conf
βββ dot_profile.tmpl # β ~/.profile
βββ run_once_before_* # First-run setup scripts
βββ run_onchange_* # Package update scripts
βββ dot_config/ # β ~/.config/
βββ nvim/
βββ ghostty/
βββ starship.toml
βββ ...
# Using make
make apply # Apply changes
make diff # Preview changes
make update # Pull & apply from git
make status # Show file status
# Using mise
mise run apply
mise run diff
mise run update
# Direct chezmoi
chezmoi edit ~/.zshrc # Edit a dotfile
chezmoi re-add # Re-add modified files
chezmoi cd # Go to source directoryAPI keys are stored in 1Password and injected at chezmoi apply time:
# Secrets are fetched via chezmoi template functions
# See home/.chezmoitemplates/1password-secrets
# Requires 1Password CLI to be configured:
op account add
op signinEdit ~/.config/chezmoi/chezmoi.toml for machine-specific settings:
[data]
name = "Your Name"
email = "[email protected]"
github_username = "username"Managed with chezmoi