My Notetaking System

Posted 2020-12-23

Here’s what my notetaking system currently looks like:

Network visualization of my notes, via Org-roam-server

And here’s how I got there. In my 10+ years as a graduate student, at three different institutions, I’ve tried so many notetaking systems. I started on paper, with the Cornell Note methodology.. Then, once I got a laptop, I moved to web-based utilities, like Evernote. After one of these, Springpad, bit the dust as a company, I realized I needed my own solution for notes that didn’t rely on an external web service. I quickly fell in love with Tomboy Notes, which is like a superpowered Sticky Note system. The best feature of Tomboy, along with its later clone, Gnote, was that if you were writing one note, and happened to type the name of another note, it would automatically link to that other note. This meant you could have small, stickynote-sized notes and have them all relate to each other.

This was amazingly empowering, because the notes I was taking were really all interconnected. Especially as a student of early 20th Century British literature: so many of the canonical figures of the field knew each other, published each other, and influenced each other. But Tomboy had its limitations, and really started to choke with a larger amount of notes, edits, and syncs with its server. Here again, I was in a similar situation as before: I had developed a huge note database in software that wasn’t totally reliable.

So I switched to plain-text notes. There’s not much that can go wrong when you’re just editing a plain text file with a text editor. At that same time, I was also learning Vim, the modal text editor, and suddenly writing in any other program felt clunky and inefficient in comparison. So I moved all my notes into plain text. Then I discovered vim-notes, the wonderful Tomboy-like system. But vim-notes used its own brand of markup, which wasn’t quite Markdown, and wasn’t quite any other format, either, which made export and compatibility with external programs a little unweildy. Around that time, I heard about Org-mode.

I say this without exaggeration: org-mode is the best organizational software. It’s a personal information manager, notetaking system, calendar, time tracker, and much more. There’s really nothing like it. If you’ve never heard of it, I’d recommend watching one of the many introductory videos out there. Org-mode was the reason I switched from Vim to Emacs (although I got to keep my familiar keybindings, via Spacemacs and eventually Doom Emacs).

Soon, I discovered that there are a lot of extensions to Org, and some of them help with academic notetaking. One of them, org-roam, emulates Zettelkasten-style notetaking programs like Roam Research. In short, it extends org-mode, by adding backlinks, tags, and search functionality to one’s collection of org notes. It’s a killer app, when considered as part of the greater Emacs ecosystem. The emacs package Org-ref handles bibliographic management. Org-noter handles annotating PDFs and ePUBs, and Org-roam-bibtex brings it all together. Then, Org-roam-server generates a graph, visualizing the links between the notes.

With this system, I’m able to get this workflow:

  1. Find a paper I want to annotate, somewhere online. Copy its DOI or Arxiv id.
  2. Run org-ref’s doi-insert-bibtex to automatically grab its bibtex and insert it into my bibliography. Or run arxiv-get-pdf-add-bibtex-entry to add its bibtex and get its PDF all in one step.
  3. Run org-ref-open-bibtex-notes to automatically generate a new note file from the bibtex entry.
  4. Open the associated PDF, now downloaded and renamed in my papers directory, with org-noter.
  5. Cite the paper in formal writing, using helm-bibtex. This then automatically adds it to the bibliography of the paper I’m writing.

See also part II in this series: Notetaking in Semantic Triples.

I welcome your comments and annotations in the sidebar to the right. →