Organizing My Life with org-mode

November 15, 2024

Hey Internet,

I've been an Emacs user for decades now. Despite this, my knowledge of it is surprisingly shallow. For the most part, I've really mostly used it only as a text editor in the past. I knew that it was a much more powerful tool tool than what I was using it for, but frankly, I didn't have much of a reason to dig deeper into it. The only reason I switched to Emacs from vim in the first place was because I was able to automate away a bunch of obnoxious repetitive work with some custom elisp at one point. That job is now only a distant memory, but after a while Emacs was really just the editor I got used to.

Of course, I'd heard of org-mode, but I really didn't know what it was. As far as I could tell, it just seemed to be "spicy markdown". I didn't see a reason to learn a new tool to do the job of a tool I was already familiar with. Eventually though, after screwtape extolled its virtues, I decided to give org-mode a closer look. Why not?

What I found surprised me.

As it turns out, in addition to being able to create arbitrarily structured documents it also has some pretty powerful time management features. As someone with ADHD, time management has long been my Achilles' Heel. Sure, I've managed to work out a system where I can somewhat reliably do the things I'd normally need to do on a daily basis by just working them into an automatic daily routine that I don't have to think about. The second I need to make a change to that routine, or something otherwise disrupts it though, everything falls apart, and can wreak havoc on the rest of my day. Because of this, I was really terrible at doing things that weren't daily tasks, like say, cleaning the shower.

Now, this post isn't meant to be an org-mode tutorial. There are already plenty of those out there. What I would like to do is to explain generally how I use it, and how it's become an indispensable tool for me.

As I mentioned before, my previous routine was inflexible to say the least. Instead of relying on my old "muscle memory" system, I now have a git repository full of org-mode files. They're essentially just plain text documents that can be organized in any arbitrary hierarchical structure I see fit, just like Markdown. Unlike Markdown however, I can add things like schedule entries and to-do items directly into any arbitrary org-mode file. After telling Emacs which files to keep an eye on, I can then launch "agenda mode" to scan everything and present me with a breakdown of whatever currently needs my attention. Those entries can also be tagged and prioritized to help me to filter out things I'm not particularly interested in at the moment.

Now, instead of relying on my previous approach to getting things done, I just keep circling back to Emacs' agenda view. I have created to-do items for everything from paying the rent to brushing my teeth (seriously, I'd forget without a reminder). I look at the list to determine what needs my attention in that moment, do it, mark it complete, and move on to the next thing. Once there is nothing left that requires my immediate attention, I just set my watch for the next time I need to do something. When the alarm goes, I go back to agenda view and start the cycle all over again.

This new approach also lets me do things like step away from a task that I'm waiting on (e.g.: running a backup) without having to worry that I'll forget to come back to it later. I can actually multi-task somewhat effectively now, and that's been a game changer.

There's also a neat feature called org-capture that allows me to create templates and rules for things that I want to be able to insert into one of my documents so that I can add them quickly with a few keystrokes while I'm in the middle of something else. Handy for things like jotting down quick notes or making reminders for later without causing too much of a disruption to whatever I'm presently working on.

Tasks can also be set to be automatically recurring. This is very important for me. When my schedule tells me I need to clean the shower for instance, as soon as I mark the task as completed, it automatically gets rescheduled for one week later. I don't have to remember to manually add it back to the agenda, and I don't have to worry about falling behind on those pesky non-daily tasks that had formerly been the bane of my existence.

Finally, I also have the ability to "clock in" to a task when I start working on it. It automatically clocks me out of it again when I mark it as completed, or clock into something else. I can then query that data to get a breakdown of what I've spent my time on. This helps me to identify time sinks, and find more efficient ways of doing those things. Plus, I really just kind of like having those metrics available to me.

Surely, this level of structure isn't necessary (or even desirable) for everyone. For me though, it's been a lifesaver—at least for the time being, anyway. There's a lot of additional features I haven't really talked about, and I'm sure there are even more that I don't even know about yet. I mean… that's always the case with Emacs in general; it's a very deep rabbit hole. At any rate, maybe this provides some interesting insight into the chaos that is my mind. Or, if your brain is wired similarly (my condolences) maybe it gives you some ideas that might make your own life a little easier.

Have a good one.