Rofi Org-mode Todos

Rofi Org-mode TODOs is a simple script for use with the Rofi dmenu replacement to hotkey and then directly enter emacs org-mode TODOs and dispatch and append them to an inbox file. It’s simple, very fast, and designed to help you stay in flow while having ubiquitous collection of your TODOs for your GTD flow.

This first release in Python simply takes the text and tags from your input, formats the TODO in the proper format for emacs org-mode with a proper :DESCRIPTION: drawer with creation date, and appends in the proper format to your inbox file. Future versions will parse for notes, deadlines, or scheduled items, but this first version is functional and works right now. You can grab it here on Github

One of the most counterintuitive things about moving back over to Linux as a daily driver has been that it’s actually made me more productive by allowing me to better craft a workflow environment which minimizes distractions, focuses on what needs to get done, is largely keyboard driven, and also allows me to code glue that makes me more efficient (ok, admittedly after getting over the initial hurdle of getting everything I want installed and testing out old and new programs that are simply not in the OSX ecosystem.). Basically, I have the ability to customize and hand-craft my environment in ways that are either not easy, require commercial software or web services, or are much more difficult to code in both the commercial operating systems.

Keyboard driven spend and customization end up being important. While on OSX I used Alfred as a launcher, finder, calc, and dispatcher for number of workflows, I was super happy to find out (which I would have never have done if I had not looked at i3 as a window manager and desktop environment) about Rofi which has effectively replaced and even improved upon (with plugin programs and scripting) the pre-eminent place Alfred had in my workflows and minimization of microtasks on OSX. Basically, rofi allows you to select from options or input information and then have a script or preset group of programs already included with rofi to process and then output from it. It’s an amazing swiss-army knife of a program that has broad application across a wide range of tasks.

For me, the majority of my GTD workflows and note taking (as well as general writing) take place in emacs. Admittedly, for its amazing org-mode which is effectively a form of enhanced markdown on steroids but also knows (when configured) about certain keywords on headings, which makes them agenda-aware: org-mode TODOs. You can scatter them across files and have agenda pick them up for you and organize them in various useful manners, but all this takes place in emacs. While there are easy ways to get those into a GTD inbox when you’re actually in the middle of an emacs session, when you’re in another program or doing something else, the context switching and inevitable brake in flow before you get back to what you’re doing is sub-optimal.

This script makes it effortless to capture interrupts or stray thoughts that involve needing to get something out of your head and into your GTD system in a single keystroke and typing of the TODO body text. The rofi script takes care of the rest. Hotkey, type, Enter and get back to what you were originally doing secure in the thought that you’re not dropping items or having to write them down on post-its or similar hacks. Hitting your preferred hotkey yields a pop up looking like this:

Rofi Org TODOs

(dependent on your Rofi theming, of course).

Installation and configuration are trivial if you have a working python install and are on i3, pop, or any other desktop environment with easily configurable shortcut keys.

You can grab Rofi Org TODO here on Github.

Please let me know how you find it and if you have ideas for features, please feel free to raise feature requests in the Issues in the Github repo. More than anything I hope this makes your workflow more efficient and helps you get what you want to get done more easily. Feel free to ping me on twitter @awws or via email at