Chezmoi is an open-source command-line tool for managing your personal “dotfiles” and configuration files across multiple machines.

Setup

  1. Install Chezmoi.
# windows
winget install twpayne.chezmoi

# arch
paru -S chezmoi

# ubuntu
snap install chezmoi --classic

# mac
brew install chezmoi
  1. Initialize a repository.

Import Repository

chezmoi init git@github.com:<github-username>/dotfiles.git
chezmoi -v apply

# ex. my dot files
chezmoi init git@gitea.nodusk.me:jay/dotfiles.git

Start New Repository

chezmoi init
cd ~/.local/share/chezmoi

git init
git add .
git commit -m ""
git remote add origin git@github.com:<github-username>/dotfiles.git
git push -u origin main

Usage

  • default directory: ~/.local/share/chezmoi
# chezmoi commands (reference)
chezmoi add <path> # add new directory or file
chezmoi edit <path> # edit file (or just edit some other way)
chezmoi diff # view changes
chezmoi -v apply # print log and apply changes
chezmoi -v -n apply # print log
chezmoi init <git-url> # initialize dotfiles from git
chezmoi merge <file> # merge conflicts from local and remote
chezmoi update -v # pull and apply changes from remote repo

Examples

hyprlock

hyprpanel

waybar

ewww bar

applications

pywal

sway

grub

interesting light mode

macos

qtile

fetch

Replace ls with eza

alias ls='eza -al --color=always --group-directories-first --git --icons --no-user --no-time --no-permissions' # preferred listing
alias la='eza -a --color=always --group-directories-first --git --icons --no-user --no-time --no-permissions' # all files and dirs
alias ll='eza -l --color=always --group-directories-first --git --icons --no-user --no-time --no-permissions' # long format
alias lt='eza -aT --color=always --group-directories-first --git --icons --no-user --no-time --no-permissions' # tree listing