Managing Your Dotfiles: Tips, Tricks, and Code Samples

Are you tired of dealing with a cluttered and unorganized system configuration? Are you tired of re-configuring every new Mac you bought on every release?

Dotfiles are hidden configuration files that are used to customize your system, and with the right tools and techniques, you can easily keep them organized and under control. Here are some tips, tricks, and code samples for managing your dotfiles:

  1. Use a version control system like Git. This allows you to track changes to your dotfiles over time and revert back to previous versions if something goes wrong. To initialize a Git repository for your dotfiles, you can use the following command:
$ git init
  1. Keep your dotfiles in a separate repository. This will keep your home directory clean and organized, and it will make it easier to manage your dotfiles with Git. To create a new directory for your dotfiles repository, you can use the following command:
$ mkdir dotfiles
  1. Use symlinks to link your dotfiles to their proper locations. This will make it easy to manage your dotfiles and keep them in sync across multiple systems. To create a symlink, you can use the ln command with the -s option. For example, to create a symlink for your .bashrc file, you can use the following command:
$ ln -s dotfiles/.bashrc .bashrc
  1. Use a tool like Stow to manage your symlinks. Stow is a command-line tool that can help you manage your symlinks. To install Stow, you can use your package manager. For example, on Ubuntu, you can use the following command:
apt-get install stow
  1. Share your dotfiles with others. If you find a configuration that works well for you, consider sharing it with others by publishing your dotfiles on a platform like GitHub. To push your dotfiles to a GitHub repository, you can use the following commands:
$ git remote add origin https://github.com/username/dotfiles.git
$ git push -u origin master

Dotfile Manager

Beyond the basic steps above, we can take the game futher using a dotfile manager. My favorite of choice is chezmoi. Chezmoi helps us to manage our dotfiles easier and securely. Chezmoi is able to scale from a simple configuration to a complex one and keeping the multiple machines in sync.

Check Chezmoi documentation to understand more about its capabilities, usages and limitations.

A great reference if one wants to see the comparison between dotfile managers.


By following these tips, you can easily manage your dotfiles and keep your system configuration organized and under control. Happy coding!