Chezmoi for DotFiles
For the past 11 years I have maintained all of my dotfiles in a repository on GitHub
. In fact this was the first repository I ever created up there. The idea was that I would copy my dotfiles into a folder called
.dotfiles and then copy them to the appropriate location myself. This is a bit painful at the best of times, and I just don’t do it other times.
Recently I was looking for a better tool and after looking at dotbot I decided to use chezmoi . The reason that I decided on Chezmoi is that it’s written in Go. I know that’s not much of a reason but it really has a good feature set and it’s fast.
I installed it using
pacman (I use Arch by the way 😉) and started using it right away. First thing I did was initialize it with my existing repository:
$ chezmoi init https://github.com/<username>/DotFiles.git
Then I had to rename a bunch of my existing files. For example I used the name
.bashrc in my existing repository but Chezmoi expects that to be
dot_bashrc. Using Chesmoi is a little different than what I was used to.
As you can see here, you almost duplicate what you do in git with Chezmoi. You do
chezmoi init to start,
chezmoi add to add files and
chezmoi apply to apply changes to those files after
chezmoi edit, but then you do a
chezmoi cd to change directory to the Chezmoi directory and you do all your usual git commands (
git add .,
git commit -m and
git push) to get the files up to your Git repository.
The biggest problem that I have with it is you have to remember to
exit after a git push. I tend to just continue on my command line journey and then when I try to end the session I have to type
exit a bunch of times to get out of the virtual shells that I’m in.
Overall it’s a good solution and I’ll continue to use it and see how it goes.
Let me know what you think of Chezmoi.