These are the files or folders that live your home directory that configure your applications. Some examples are: .bashrc .config/, .zshrc, etc. Because these are typically “plain text” files they can easily be stored in a git repository you can easily copy them between your different machines.

You can find my dotfiles at: HeyItsGilbert/dotfiles

Value of Dotfiles

Maintaing a dotfiles repository provides the following:

  1. Maintain a PDE.
  2. Automatically configure GitHub codespaces.
  3. Sync your environment across machines.
  4. Share your configs with others.

Managing Dotfiles

Most management is done by a set of tools that either copy or symlink your dotfiles.

Chezmoi

I was first introduced chezmoi by Jaykul. Chezmoi works by creating a clone of your dotfile in the AppData directory. Then a chezmoi command sync what’s in your home directory to that repo. It also supports doing other things like running scripts as part of the sync process.

GNU Stow

This is a “symlink farm manager”. Not available on Windows.