When you modify a config on your machine (e.g., Konsole settings, VS Code config), add it to chezmoi and push:
chezmoi add ~/.config/konsolerc
chezmoi cd
git add -A && git commit -m "update konsole config"
git pushchezmoi updatechezmoi diffchezmoi edit ~/.zshrc
chezmoi apply-
Edit
ansible/vars/packages.ymland add the package to the appropriate list:pacman_base— System essentialspacman_kde— KDE desktop packagespacman_nvidia— NVIDIA driverspacman_dev— Development toolsaur_packages— AUR packages (installed via yay)systemd_services— Services to enable
-
Re-run the playbook:
ansible-playbook ~/dotfiles/ansible/playbook.yml --ask-become-pass
Remove it from packages.yml and uninstall manually:
sudo pacman -Rns <package-name>Then re-run the playbook to keep state consistent.
chezmoi add ~/.config/some-app/config.tomlFor files that need machine-specific values (e.g., hostname, paths):
chezmoi add --template ~/.config/some-app/config.tomlThen edit the template to use Go template variables:
chezmoi edit ~/.config/some-app/config.tomlAvailable template variables are defined in .chezmoi.toml.tmpl.
Files with restricted permissions (mode 0600) are automatically prefixed with private_ by chezmoi.
To re-provision the entire system (e.g., after a fresh install or to ensure everything is in sync):
cd ~/dotfiles
ansible-playbook ansible/playbook.yml --ask-become-pass
chezmoi applyThe chezmoi config template (.chezmoi.toml.tmpl) defines:
- Source directory — Where chezmoi reads managed files from
- User data — Name and email used in templates
- Git settings — Auto-commit and auto-push are disabled by default
- Encryption — Commented out; uncomment and configure
agefor secret file encryption
Some KDE config files require specific ownership. Run:
chezmoi apply --forceIf that doesn't help, check file ownership:
ls -la ~/.config/kdeglobalsAUR packages are installed via yay. If yay itself isn't installed yet, the base role installs it first. If it still fails, install yay manually:
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay && makepkg -siThen re-run the playbook.
Ensure the service is enabled:
sudo systemctl enable sddm
sudo systemctl start sddm