Getting organized with Org mode

Like many an Emacs user, I am enamored with Org-Mode. Every great coding session begins with organizing your thoughts, and Org-Mode is an excellent tool for the job. If you’re tracking New Year’s resolutions, it’s great for that too. Since Org-Mode already has an excellent compact guide, I’ll focus on my voice bindings and finish with a bonus section on how I like to structure my personal to do lists.

Org-Mode comes with a bunch of built-in commands that you will want to make use of. But if you blindly map the commonly used keyboard commands to voice commands, it will be slow to work with. The first problem is that several of the commands are designed to be chained together rapidly. This is easy enough to work around; we just need to consider what the most likely combos are and create specific commands for them. The second problem is that some of the commands cycle through several options and rely on visual feedback to select the right one. This doesn’t play well with the slow feedback loop of voice input. Fortunately some of the commands let you specify prefixes to jump to a specific option. Here is the short list of commands that I’ve come up with:

emacs_org_action_map = {
    "new heading above": Key("c-a, a-enter"),
    "new heading": Key("c-e, a-enter"),
    "subheading": Key("c-e, a-enter, a-right"),
    "new to do above": Key("c-a, as-enter"),
    "new to do": Key("c-e, as-enter"),
    "sub to do": Key("c-e, as-enter, a-right"),
    "toggle heading": Key("c-c, asterisk"),
    "to do": Key("c-1, c-c, c-t"),
    "done": Key("c-2, c-c, c-t"),
    "clear to do": Key("c-3, c-c, c-t"),
    "indent tree": Key("as-right"),
    "indent": Key("a-right"),
    "dedent tree": Key("as-left"),
    "dedent": Key("a-left"),
    "move tree down": Key("as-down"),
    "move tree up": Key("as-up"),
    "open org link": Key("c-c, c-o"),
    "show to do's": Key("c-c, slash, t"),
    "archive": Key("c-c, c-x, c-a"),
    "org (West|white)": Key("c-c, c, c-a"),
}

Not shown is my pre-existing “tab” command, which cycles through different levels of collapsing. Unfortunately, Org-Mode doesn’t provide a prefix option to specify a particular result. I looked briefly into writing my own command for this, but the implementation would have to be tied to Org-Mode internals, so I decided it wasn’t worth the effort.

The “org (West|white)” command runs some custom lisp which goes to the beginning of the line, skipping after stuff like asterisks and to do’s. Here’s the code for that:

(defun my-org-beginning-of-line ()
  (interactive)
  (let ((org-special-ctrl-a/e t))
    (org-beginning-of-line)))

That’s it! I’m sure that hard-core Org-Mode users would want a lot more bindings, but this is enough for my purposes right now and ought to be enough for a beginner to get started. If I’m missing out on some awesome functionality, please let me know in the comments!

Bonus: a fun way to structure your personal to do lists

Once you get familiar with Org-Mode you will want to use it for everything. I use it to track my personal to do list, which is full of everything from boring chores to exciting new things I want to try. In the past I’ve had trouble prioritizing stuff in this list, because it’s hard to compare something necessary and mundane with something I’m excited about. What I realized a few months ago is that I don’t have to. At different times of the week I have different motivations. Sometimes I just want to relax, sometimes I want to take care of business, and other times I want to do something good for the world. So I simply structure my list around my motivations and situations. Here is a sampling of top-level headings in my to do list:

  • Reminders: Habits that I want to create or break.
  • Time sensitive: I need to do this soon.
  • Practical: I need to do this at some point.
  • Fun: When I just want to have a good time.
  • Outside: When I feel like getting out of the house.
  • Chill: When I just want to relax.
  • Good: When I want to do good for the world.
  • Intellectual: When I want to learn something new.
  • Professional: When I want to build my resume.
  • Health: When I want to improve my health and well-being.
  • Social: When I feel like spending time with others.

I also have categories for close friends containing stuff I want to do with them or tell them about.

With this kind of organization, I find it’s much easier to prioritize within a category. If I’m having trouble categorizing something, that’s often a sign that I’m not really motivated to do it all and it doesn’t belong in the list to begin with. Later, when I am looking for stuff to do, I can easily focus in on what I feel like doing and not get distracted.

What do you like to use Org-Mode for? Let me know in the comments!

One thought on “Getting organized with Org mode”

  1. Also, something I forgot to mention in my post: if you want to view/edit Org-Mode files on the go, there are mobile apps to help with that. My preferred option for iPhone is Writebox, because it interfaces with Google Drive (it doesn’t provide any Org-Mode specific functionality, though). There is also an official Org-Mode app for iOS and Android, MobileOrg, which works with Dropbox.

Leave a Reply

Your email address will not be published. Required fields are marked *

Markdown is supported. Make sure raw < and > are wrapped in code blocks. You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>