Uses Git subtree and submodules to keep my dotfiles in one place in an elegant manner. With inspiration from xero, uses GNU Stow to symlink files one folder deep to the folder above.
This is the third generation of my dotfiles management system. It is a weird hobby of mine, but I am not alone! The others hang out at vcs-home.
Other tools to install:
- GNU Emacs: best everything
- ripgrep: best grep
- fish: best shell
- Git (and hub): best VCS
- The Fuck: best fuck-up fixer
- tmux: best terminal multiplexer
- Firefox: best browser
- Solarized: best color theme
Previously I have used freshrc to manage my dotfiles (the history of which
is in the shell subtree). It was too complicated. Then I switched to a
combination of vcsh and myrepos, which added a lot of overhead.
Specifically, I did not like that the files didn't exist in a Git repository,
which broke VCS integration with my editors. After an erroneous vcsh foreach git fetch
was auto-corrected to vcsh foreach init
and broke my local repos,
I realized I needed just one repo.
I've also swapped between both Vim and Emacs several times. If I remember correctly, I started with Vim, was convinced to try Emacs by my mentor, fell in love with Elisp, never quite liked the key-chording and went back to Vim, hated VimL, used Spacemacs for a time, and now have taken to using my own integrations of Evil (Vim-mode) with Emacs.
I still recommend Spacemacs to new users, as it's the best of both worlds. I just found the one-size-fits-all approach too clunky for me, since I heavily customize my editor anyway.