dotfiles & config management#
My collection of my dotfiles used across multiple systems and managed by chezmoi.
Core Prerequisite#
To get started, you primarily need a shell environment with curl or wget to download and execute the chezmoi installation script.
Quick Start#
The following command will download and install chezmoi (if not already present), initialize it with this dotfiles repository, and apply the configuration. This process will also install and configure other necessary tools such as Homebrew, Zsh, oh-my-zsh, oh-my-posh, and the 1Password CLI.
sh -c "$(curl -fsSL get.chezmoi.io)" -- init --apply mauvehed
Edit config for machine type#
After the first run of the install script, we'll need to manually edit the chezmoi config in order to set the machine type. This will enable to full package installation.
chezmoi edit-config
Set personal = true or work = true depending on the needs.
Once this is done, re-run chezmoi to force the rest of the install.
chezmoi --force apply
1Password Integration#
Personal secrets are stored in 1Password. The chezmoi setup will install the 1Password CLI.
- After the initial
chezmoi applycompletes, you must sign in to the 1Password CLI:eval $(op signin) - Re-apply
chezmoi(if needed): If the initialchezmoi applycould not fully provision all configurations due to 1Password not being authenticated, run the apply command again after signing in:chezmoi apply
Tools Managed by These Dotfiles#
These dotfiles, through chezmoi, will install and manage the following tools and configurations on your system:
| Name | Description | Managed |
|---|---|---|
| Terminal | iTerm2 (macOS) | Optional |
| Package manager | Homebrew | Yes |
| Shell | Zsh | Yes |
| Shell Framework | oh-my-zsh | Yes |
| Shell Prompt Customizer | oh-my-posh | Yes |
| Dotfiles manager | chezmoi | Yes |
| Password Manager CLI | 1Password CLI | Yes |
Command Reference#
To add new files to chezmoi control:
chezmoi add <file>
To edit a file under chezmoi control:
chezmoi edit <file>
To preview changes before applying:
chezmoi diff
To apply changes from .local/share/chezmoi/ to ~/ use:
chezmoi apply
To both git pull and chezmoi apply use update
chezmoi update
To force a refresh the downloaded archives (from .chezmoiexternal.toml), use the --refresh-externals (-R) flag to chezmoi apply:
chezmoi -R apply
To test chezmoi template files (.tmpl):
chezmoi execute-template < dot_gitconfig.tmpl
Chezmoi and Git#
To execute git commands within the chezmoi source director you can append them to the chezmoi command
Git pull:
chezmoi git pull
Git push:
chezmoi git push
Git status:
chezmoi git status