State of the Dotfiles, 2016
This article's version history on GitHub
Part of an on-going series of articles describing the state of my dotfiles, UNIX environment and workflow in 2016. This meta-article serves as the Table of Contents and a short overview
The articles
- Bidirectional synchronization of notmuch tags with IMAP folders and Gmail Labels
- Email is kind of a big deal. How I filter, label and work
- Yubikey management for 2FA, SSH, GPG and disk encryption
- Ghar: consistent, rapid deployment of UNIX dotfiles
- Fish, Oh-my-fish and POWERLINE ALL THE THINGS
- Tricks & tips: happy cron jobs, reusing dotfiles across OS X & Linux
In 2013 I wrote an article on my email workflow. It covered installation, configuration and usage of my email toolchain, which in 2013 was: Gmail, offlineimap, notmuch, afew and alot. Since then a lot of people have asked me a lot questions about it.
So what’s different since 2013?
Fast forward to 2016: much has changed and much has stayed the same. In the intervening years I have tried different MUAs including mutt-kz, notmuch-ruby-vim, the deprecated notmuch-vim,vanilla mutt with notmuchfs and more. I don’t use emacs, but I almost switched just for notmuch.el.
In the end I came back to using alot, despite its flaws. I also fall back on vanilla mutt combined with notmuchfs for certain tasks. If I ever take the time to finish supporting thread reconstruction then I might find this option more useful.
I no longer use afew for initial tagging. #112 was a show-stopper bug for me and it looks like the code is no longer actively maintained.
My lifestyle and work life has become more mobile. This does not jive with my 2013 toolchain that required me to SSH into a single machine to have access to a rich database of full-text email search (I’m looking at you, sup users). Bidirectionally syncing these tags with IMAP folders and Gmail Labels has allowed me to sync notmuch tags across multiple machines through IMAP.
Also part of my mobile lifestyle change was the desire to not sync all of my mail, but only the relevant bits to reduce on-disk size and the amount of time spent syncing with IMAP after a long period of dormancy. This has had a profound impact on my new toolchain.
I have also cleaned up and streamlined my dotfiles. I tried over a dozen different dotfile management frameworks (see GitHub ❤ ~/). The most UNIX-y approach of just about any of them is ghar. I started using it in 2013 and never looked back.
While living in San Francisco I also became a software hipster, started using a Macbook Pro and thus had to try Z shell and oh-my-zsh. After a couple of weeks failing to grow a moustache I reverted to Bash and the shameless copycat framework bash-it, which I used for a couple of years. I finally settled on fish and oh-my-fish which has left me in a state of unending bliss.
Of course I have continued to Solarize the heck out of everything and that aesthetic compulsion expanded to Powerline the heck out of everything.
I got serious about using a hardware security token for 2FA with YubiKey. That effort expanded to improve my SSH, GPG and disk encryption practices.
And I finally started using a proper password manager to generate, store and retrieve strong passwords for all of my services. Integrating pass into a non-interactive worflow (e.g. IMAP authentication from a cron job) has resulted in me removing cleartext passwords from all my dotfiles.
I have done the hard work for you.
Follow along with the articles linked at the top of the page and enjoy your UNIX experience even more in 2016.