About a month back, I started investing some time into tracking my dotfiles with git. I try to leave a small digital footprint so reinstalling Ubuntu after something gets borked isn’t too difficult. However, after moving my desktop to the oft-elusive i3wm full-time, I realized I really ought to formally version and automate my system setup.
I initially spent quite a bit of time researching elegant frameworks, others’ ad hoc approaches, and even how to use bare git repos to get the job done. Nevertheless, I eventually settled on the boring, but straightforward approach of symlinks.
To get started, I now just clone my dotfiles repo from GitHub and run the custom bash installer I wrote. The installer then guides me through backing up existing dotfiles, installing the dotfiles from my personal repo, and installing other software with APT.
git clone https://github.com/benjcunningham/dotfiles ~/dotfiles cd ~/dotfiles ./install.sh -i
All considered, it’s at least a functional way of getting up and running with my configurations on a fresh machine. It takes a bit of effort to maintain, but it gets the job done with minimal software and human dependencies.