karelvo

My simple, effective org mode setup

published on 2023-02-18

I have the bad habit of switching note and task listing methods every so often. One product (or rather, system) that always loomed like a shining beacon on note-taking hill was org mode for Emacs - a steep learning-curve tool that allegedly you “can live your life in” makes you “never look back”. I dare to dispute the latter, though.

After close to a year of daily & extensive usage, I am happy to share my setup with anyone who may be interested. This post is not intended to go into the what or why of org mode (plenty has been written about that), but how I use it to track my notes, tasks, and thoughts.

The beauty of org mode is that it is incredibly customizable and every user has a unique setup; this is mine.


3 files: notes, todo, and inbox


My setup uses 3 .org files, each with its specific intended purpose:


inbox.org


My working file. I jot down anything I need to do, meeting notes, learned about on the web, proverbial “shower thoughts”, etc. Also, when I am writing a text or long-form email, I’ll use this as my notepad.

At the end of every week, I clean it up. No longer relevant? Throw it out. Do I want to keep/store this somewhere? Org-refile (SPC m s r / C-c C-w) to my notes.org. Task that I need to plan out because I can’t do it in 5 minutes? Refile it to my todo.org.


notes.org


This is my main “brain”, currently at 30k lines and counting. It contains everything a typical notebook has: meeting notes worth keeping, movie lists, projects I want to work on, guides I wrote for myself, etc.

I also work with my TODO system here, albeit a lot more relaxed (i.e. very long-term goals I’ll work on when I feel like it, or just checklists). An example: a list of movies I want to see:

* TODO The Green Knight (2021)
  Looks visually stunning, 89% RT.
* DONE Star Trek IV: The Voyage Home (1986)
  CLOSED: [2022-11-23 Wed 11:07]
  I liked Scotty talking to an '80s computer.
* KILL A Quiet Place
  CLOSED: [2023-01-05 Thu 09:15]
  Red Letter Media hated it #influenced

todo.org


What’s in a name? All my short-term and recurring todos. I wanted to keep this separate from my notes file, but now I am reconsidering moving it there. There is basically no reason not to, as I add all 3 files to my agenda list.

I don’t really use tags. This can mean two things: I am not obsessed enough with categorizing everything I do and rely on my real brain too often to be an actual org mode power user, or my life is not complicated enough to work with them. Either way, it works for me. I do use priorities, however, and they help a great deal in helping me decide how to spend my time.

I always use DEADLINE, never SCHEDULED. Scheduling stuff aside from attaching a deadline just doesn’t make sense in my head. I’m sure that a solopreneur has good use for the division, I just don’t. Deadline = you work on this on that day. If it’s not feasible to start and finish it that day, chop it up into subtasks and deadline those.

On a monthly basis, I perform a todo.org “clean up”:


4 task states: TODO, WAIT, DONE, and KILL


All my files have the following, dead simple config at the start:

#-*- mode: org -*-
#+TODO: TODO(t) WAIT(w) | DONE(d) KILL(k)

Though pretty self-explanatory, here’s the thought behind it:

Plus, I like that they all have the same character length. If you use a monospace font (which you should), it’s oddly satisfying.


Framework: DOOM Emacs


I (obviously) use Emacs on my Linux workstation. Important note: as I never used it before, I did spend quite some time learning the ropes. What really helped was the amazing Doom Emacs config and accompanying evil mode (i.e. vi keybindings). That apparently also saved me from carpal tunnel syndrome.

I did not look into Spacemacs or NΛNO, which also get a lot of praise, but Doom just works for me.

I updated the config.el to how I like to work. Below are two things I’m happy to share:


org-capture that suits my needs


(after! org-capture
  (setq org-capture-templates
        '(("t" "todo" entry 
           (file+headline "~/todo.org")
           "* TODO %?")
          ("T" "todo today" entry 
           (file+headline "~/todo.org")
           "* TODO %?\nDEADLINE: %t")
          ("i" "inbox" entry 
           (file "~/inbox.org")
           "* %?")
          ("v" "clip to inbox" entry 
           (file "~/inbox.org")
           "* %x%?")
          )
        )
)
Apologies if all of these are a pain to read. Change the world, my friend, write the first ever proper elisp and org syntax highlighting.

I have key-bound org-capture to Super + C, allowing me to quickly capture any thoughts/notes. The above configuration gives me the only 4 options I need on a frequent basis:


Simpler agenda


It’s the anti-org-super-agenda! I found even the default agenda too convoluted for what I needed to do. Just give me my list of tasks so I can start working on them.

(after! org
  (setq org-agenda-deadline-leaders
          '("" "" "%2d d. ago: ")
        org-deadline-warning-days 0
        org-agenda-span 7
        org-agenda-start-day "-0d"
        org-agenda-skip-function-global 
          '(org-agenda-skip-entry-if 'todo 'done)
        org-log-done 'time)
)

I created the above setup to get the following, clean agenda:


Android: a subpar experience


When comparing my enjoyable desktop workflow to that of my Android phone and tablet, it’s painfully obvious that org-mode stems from a time before using a mobile phone to jot down quick notes became ubiquitous.

Apparently, the iOS apps beorg and Plain Org are pretty solid, by the way.

Currently, there are two “org-mode focused” Android apps out there:

Orgzly is the main one out there. It… kind of does what I would expect from an app that handles .org files, but it has a less-than-optimal user and writing experience (making subheadings forces you to create a new note - how can I ever write a text that doesn’t need fixing on desktop?). The whole thing doesn’t feel org mode to me, it’s like a different note-taking system that just happens to use the same syntax.

However, its real crux is Orgzly’s syncing capability: it is constantly out of sync because you need to sync manually. “Auto-sync” is a lie and only triggers upon note edit. I can’t keep count of the times that I had conflicting files, or - worse - that I wrote down quick notes while on the road, only to find out that it did not sync properly and got its file overwritten, leading to the loss of the note. I guess I am kind of at fault for using Syncthing, and not WebDAV?

Of course, I don’t want to rip on Orgzly too hard. It works okay, and it’s FOSS. I tip my hat to its creator.

Orgro has potential: it looks polished and feels a lot more like using Emacs. One teeny, tiny detail though: it’s only a file viewer. What?

Don’t get me wrong, the file viewer is solid. I just hope its creator plans to at one point in time add an “edit” button in there. Doesn’t need to be fancy, or overly complex like Orgzly’s.

Markor is just awesome. It’s not a 1-1 solution for the org mode user (it pushes you to use todo.txt, for example), but it gives you a polished and very user-friendly way to edit any plain text files. Given the fact that I don’t do any real “work” on my phone/on the road, I use this to quickly add things I think of to my inbox.org. Turns out it works for me.


Syncing: Syncthing


I cannot praise Syncthing enough. Syncing files between my devices became a piece of cake, and it’s a lot more private than storing it in a proprietary, not-owned-by-you Dropbox or OneDrive (or iCloud). Especially if you have a little server running as an introducer somewhere, syncing goes smoother than any cloud storage you’ve ever experienced.

Of course, I only have experience with my notes and don’t know how Syncthing holds up if you’re syncing several GBs. I just put my 3 .org files in there. That’s like 250kb. Gotta love plain text.