geekery productivity

Regular readers will know that I am a big fan of Emacs and have been using it for most of my writing, coding and task-related activity for quite a while now. Emacs is famously able to handle just about any kind of function, many of which can be handled within a single mode: Org mode. However, just because you can do it in Emacs, it doesn’t mean that you necessarily should. For example, I tried out managing my personal email in Emacs using mu4e, and while I really enjoyed writing and managing email in Emacs, I found having to constantly open HTML emails in some form of browser (inside Emacs or outside) a chore. So now I have reverted back to Mailmate for my email needs and am very happy with it.

I had also been using org-roam and the related ecosystem of tools (org-roam-bibtex and org-roam-server) to handle my work notes on journal articles, books, and ideas arising from them. I absolutely loved the ease of linking between ideas, and the graph view which helped me to see what kinds of broader topics were emerging organically from my research. However, I found myself having frequent problems with the database needing to be cleared and rebuilt, and org-roam-bibtex-mode needing to be reloaded. This — I am certain — is some quirk of my own setup and configuration. I was syncing the note files via Dropbox and it is likely that this was causing issues. Whatever the cause, I couldn’t seem to fix it properly, and so I started to look around for alternatives outside of Emacs. Eventually, I settled on Obsidian.

Zettelkasten types of systems are all the rage right now, so there are lots of options. I wanted something that operated on plain-text files kept in a local folder, and that also had a graph view: that was the feature in org-roam that really made the difference between me just writing notes and seeing how they fitted together and building ideas out of them. Obsidian has both of those plus a very active community and rapid pace of development, so that was what I went with in the end.

Obsidian has a notion of a ‘Vault’ which is just a folder of Markdown-formatted notes somewhere on your system. This means that you can — if you want — keep separate vaults to keep work and personal notes separate. It is an Electron app (with the disadvantages that this brings), but I have found that it is fast and responsive. Plugins (both internally-developed ones, and now third-party plugins) help to fill some of the potential gaps. You can, for example, enable a vim mode for editing, which works pretty well and compensates for the fact that macOS native editing shortcuts don’t work. To get started, I copied my org-mode notes to a new folder, converted them to Markdown using pandoc, and pointed Obsidian to that folder as a Vault. I had a little tidying up to do, but I’ve been very happy with the way things work. Syncing via Dropbox works fine and does not seem to cause any issues.

The system is potentially quite extensible as the notes are just Markdown files in a local folder. The internal links are made using wiki-style links like [[this]], a format that is shared by other Zettelkasten applications, so if I wanted to switch at some point, the transition would probably be fairly seamless. Since the files are Markdown, I can also easily convert some back to org-mode to elaborate drafts into fuller and more polished pieces of writing (via pandoc). If you are interested in Obsidian, I found this list of Obsidian resources useful in figuring out how best to use it.

Some people use it to manage their todo lists as well, but you would have to pry my org-mode system from my clenched fists, as it is the most flexible, best-organised and least stress-inducing system I have ever used. Likewise, I have not moved all my notes over. I had a mixture of notes in org-roam before: the kinds of ‘academic’/thinking notes I have already talked about, but also ‘how to’ notes about coding, project details (reference codes, dates, titles etc.), admin information and so on. These are all things that I tend to consult frequently but they don’t really need to be linked together: all I need is rapid access by searching for relevant words. So these notes have remained in org format and I manage them using Deft, which is perfect for this. I also still keep my daily notes using org-journal in Emacs which suits me fine. Again, for me, these don’t need to be in the Zettelkasten system, though I could always link to the Markdown file in the journal if needed.

I’m pleased with this new arrangement. There is considerably less friction for me in using Obsidian, and it is helping me to gather my thoughts together on the diverse range of topics that I work on. Now that it is not needed for org-roam purposes, I have also removed all the packages that I previously used for searching and inserting citations. I realised that I can easily handle this from my reference manager, which removes a lot of complication. Some of those packages (org-ref particularly) are quite hefty, and removing them has made Emacs startup noticeably more zippy.