Weekly Journal 2 - rcm


A short post this time around. I have been experimenting with ways to manage and backup my dotfiles. In the past I have copied the files into a git repository and stored them in GitHub, but it requires me to remember to refresh those copies whenever I make changes. I have been looking for a better option that would require less manual work to keep things properly backed up.


rcm is a tool for managing dotfiles. You create a separate directory to hold your dotfiles (I called mine .dotfiles) and create a git repository in it. Then you use the rcm command mkrc to add your configuration files to the dotfiles directory. mkrc moves the files to the directory, and creates a symlink in the original locations. Once all of the configuration files have been moved to the dotfiles directory, you can add them to the git repository and push them to GitHub, or your favorite remote git hosting service.

The really neat feature is you can easily move your dotfiles to a different computer system by cloning the git repository and running the rcup command. This will automatically replace the dotfiles on the new computer with symlinks to the dotfiles in the git repository. There are additional commands and advanced configuration options to play with. Check out the GitHub site and the man pages for all the details.


Similar to direnv, rcm is made for Unix-like systems like Linux. It probably works with WSL in Windows, but I have not had a chance to try it out there yet.