People have sang to me the praises of Org-mode for years and years and years. But every time I’ve sat down to try to learn enough Emacs to be able to use Org-mode I’ve nearly had to go see a doctor for the pain in my left hand. I just can’t use the ctrl key that much.
Recently, however, I’ve been working with my shrink on a lot of things, and one of the things she asked about is if I’d tried any task management tools. That opened a whole can of worms and we talked a lot about it, but the long story short of it is that I went home that evening, bought Things for all of the platforms I use, and promptly stopped using it.
The reason I stopped using it was not because I abandoned the idea or because the software is bad or anything. I’m sure it’s great software, and I’ve been doing *plenty* of task management. The reason I stopped using it is because the very same day I grabbed Emacs for Mac OS X and tried to put the hand pain behind me. I haven’t stopped since.
Of course, the story doesn’t just end there. I’m not using stock Emacs, I’m not even using the default-literally-painful keybindings. I got into work the next day, asked a coworker who is a die-hard Emacs user “what do” and he pointed me at Spacemacs. Spacemacs is an Emacs “distribution” (of sorts) which includes a large number of packages and configuration so as to create a consistent and user friendly Emacs platform. It also happens to be targeted at users of “evil-mode” (Emacs VI Layer), which aims to make a very vim-like experience within Emacs. Their tag line is even “The best editor is neither Emacs nor Vim, it’s Emacs and Vim!”. After a month and change, I think I agree with this.
Org-mode is at its simplest definition, an outlining system. You have headings, subheadings, sub-subheadings, ordered lists, unordered lists, etc. Folks familiar with Markdown are already quite familiar with this sort of thing, though Markdown and Org are actually 2 distinct formats.
But that’s barely even doing Org justice. The real power of Org lies in the functionality that Org adds to the top of it. You can reorganize these headings and subheadings. You can mark things as TODO, DONE, WAITING, or any arbitrary DONE-ness you’d like. You can make checkboxes that you can check off by hitting a couple of keystrokes. You can query the files semantically to extract things like “what’s on my agenda for today” and “what are the TODO items in my backlog” or “how am I doing on keeping up with that new habit I’m trying to form”.
You can also do really amazing things like embed code snippets that are *executable* and even embed multiple of such snippets and have them extracted out as a file in that language for later execution. This in particular is very popular in the Emacs world where people share their configs readily, and folks will write their main Emacs config file as an Org document, publish the document, and extract the actual config out of the document.
My first month
After a few days of flailing about getting familiar with Emacs, with some peculiarities of Spacemacs, upgrading Spacemacs multiple times (the latest official published release when I started using it was over 2 years old, the
master branch was several months behind, so everyone seems to just use
develop), and tuning my config to my preferences, I started calling myself an Emacs user and started using it full time for nearly any text editing task (ironically, this post is actually *not* being written in Emacs, despite there being an org2blog plugin, but I haven’t quite gotten that far in my journey yet). After years of poking fun at Emacs whenever it was brought up, I now find myself singing its praises. I still poke plenty of fun at it, the default keybindings really do make my hand (and brain, especially as a long time vim user) hurt, but it’s always been all in good fun and now half of the joke is that I’m making fun of myself since I, too, am an Emacs user.
At first I started putting everything I could possibly think of into Org. I have read numerous task management books and whatnot and revisited Getting Things Done and started implementing a “trusted system” in Org. Mostly, I was just trying to get things out of my head. Organize things, try to accomplish things, but even just writing it down would be plenty useful. And it was. I started using Org-habit to track habits like scooping the litter box, making the bed, taking my medicine, and have slowly added things to it, spotted when I was falling behind on a habit(s). I started compiling a list of many of the books I’m interested in reading in the future. I put together a whole directory of the owners in my HOA and used Org to organize a project which required us to get keys to everyone’s units, so involved chasing people down, tracking which board member had whose keys, etc. I’m using it to keep track of all of the documents I need to collect and give to my accountant for my 2019 tax return. I’m using it for general HOA organizational tasks, though that’s only temporary until I find something better that I can share with the rest of our community.
I’m also using Org-journal to try to keep a diary. I’ve been pretty faithful with it, sometimes writing very little, other times writing very long winded entries. I spent the afternoon of Jan 1, 2020 writing up a bit of a “what I want to get out of 2020” and some “resolutions” for good measure. And I’m using org-habit to make sure I review that document periodically.
I’m also starting to really figure out what I want to use it for at work. We already use Jira, so using it as a general task management tool is probably not super great. And since I don’t have shared storage between my work computer and my personal computer, it’s hard to really have a unified Agenda between them. But what I’ve started doing is keeping a running log of what I’m doing for a certain task, ticket, or in the case of this week, I’m secondary on-call, so I get to deal with business hours questions in slack and also triaging (and trying to keep up with) new toil-like work that comes in via our ticketing mechansim. I plan to publish these logs (in Org format) to share them with my team and also for oncall weeks as a type of handoff document. I’m also using these to track follow-up work within a project, such as updating provisioning documentation when provisioning a new thing, or scheduling work that’s related to the ticket but should be done later such as deleting backups after a certain period of a time for a decommissioned service.
I actually had a whole other post partially written that was probably 10x longer than this already and went into great detail about each individual thing. Part of why it’s taken me so long to write this is because I wanted to pare that down a bit before publishing it since there was just too much detail. I may write up individual posts about some of those things in the future, but it was too much to put all in one place.
What’s amazing though is just how much using Org has transformed how I do things. I wake up in the morning, I consult Org. I check off my morning routine tasks, I check to see if there’s anything I need to do during the day from my personal list, go to work, pick up Org there and do more things, etc. It is slowly starting to consume my computer time, and that’s not a bad thing. In fact, if it has the effects I want it to have (feeling more organized, more confident, able to get more things done), then by all means, consume away 🙂
There are a few things I would like to focus on next.
Primarily, I now have way too much stuff in Org. Or at least, way too much stuff in Org to be able to really reason about it all at once. I’ve kinda shoved everything from my brain into a big pile in Org, loosely arranged some of it, and now I have just a big mess again. It’s at least not in my brain, but part of the benefit of not having it in my brain is trusting that I’ll be able to “remember” it later by looking through my Org (this is one of the core components of the GTD “trusted system”). But I’m starting to fall back on old habits. Not consulting Org for “what’s next” sort of stuff. Primarily because it’s just a jumble of mess right now and hard to reason about. Not checking in with Org in the morning as much, primarily because the morning routine habits I wanted to form using Org have mostly formed, so I get up, make my bed, take my medicine, scoop the litter box, etc, and I don’t have to consult Org to remind me to do those things. I just do them. So getting my Org more organized and usable is definitely high up on the list. A lot of this I think is just going to be “reducing work in progress” and axing projects and such, but I want to put them somewhere such that they’ll naturally surface again at some point and not just because I thought about it one day and then feel bad that I “forgot”. I *think* this is the function of the “tickler file” in GTD? But I haven’t gotten back around to that part on this read through.
Now that I’m more comfortable with Emacs and Spacemacs, I kinda want to look into alternatives. I’m subscribed to several Emacs subreddits, and one of the things that keeps coming up is Doom Emacs which is also a vim-oriented Emacs distribution and seems to be pretty popular. Spacemacs is great, but I find it to be rather buggy at times and have run into some issues. So I’m not exactly married to it. But also maybe I’ll just like how Doom Emacs feels better than Spacemacs? I dunno. It doesn’t necessarily have to be one is better than another, just more my style. I may even try to roll my own thing from a stock Emacs config, just to learn some of the building blocks like
use-package, which might make it easier for me to hack on Spacemacs or whatever combination of things I end up using.
I also want to learn more about Emacs Lisp in general. I sorta understand Lisp, but right now a lot of it is just cargo culting and I really have no idea what I’m doing. It might also make it easier for me to use one of these larger distributions if I am better able to understand the code I’m reading or how all the parts fit together.
Part of wanting to learn more about Emacs Lisp and hacking on this stuff is so I can do some ham radio things with Emacs. I feel like Org-mode seems like a great place to put things like radiograms, perhaps a winlink client (or, more likely, an api client for pat), maybe some Org functionality for net control stations, I dunno! Could be fun.
Mostly, though, I just want to keep finding more things I can use Emacs and Org-mode for and do those things! Hopefully my “A year of Org-mode” blog post will have been composed entirely within Emacs, somehow or another.