Org mode for todo.txt users

December 12, 2018

Most people can benefit from using to-do lists - there is too much to keep track of in our heads. Some people get away with only keeping lists at work, whereas others have lists for everything from when your dog next needs grooming to the exact tasks needed to complete a major project on which your companies success is dependent on.

There are plenty of solutions out there which lock your data to a particular piece of software. For those of us in the know as much of our data as possible is stored in plain text so we can:

There are a number of plain text task management systems. Two of particular merit are Org mode and todo.txt. Both allow you to start using them quickly and have a simple clear syntax.

I’m a big fan of Org mode. If you are a user of todo.txt I invite you to give Org mode a try. In this article I’m going to compare how you express tasks in todo.txt with Org mode. To help see whether Org mode will work for you I’ve written a command line converter to take your todo.txt files and convert them into Org mode syntax.

Comparing todo.txt and Org mode syntax

Tasks

In todo.txt each line is a different task. For example:

Take the dog for a walk
Create agenda for Tuesday's sales meeting

There is a little more to a task in Org mode:

* TODO Take the dog for a walk
* TODO Create agenda for Tuesday's sales meeting

The extra syntax used in Org mode gives you a clue as to its extra power. Firstly you can create a hierarchy of tasks, for example:

* TODO Create agenda for Tuesday's sales meeting
    ** TODO Ask heads of department for issues they want to raise
    ** TODO Get hold of latest sales figures
        *** TODO Get sales figures from Bob
        *** TODO Get sales figures from Mary
        *** TODO Get sales figures from Cara
    ** TODO Send agenda to heads of department ahead of the meeting

You can also add notes for each task:

* TODO Take the dog for a walk
Don't go to the normal dog park as there is work being done to install some new benches

Finally you can give tasks a different status:

* IN-PROGRESS Create agenda for Tuesday's sales meeting
    ** WAITING Ask heads of department for issues they want to raise

Projects

You can group tasks together in todo.txt using projects:

Ask heads of department for issues they want to raise +TuesdaySalesMeeting
Get hold of latest sales figures +TuesdaySalesMeeting
Send agenda to heads of department ahead of the meeting +TuesdaySalesMeeting

In todo.txt you can specify multiple projects for a task.

In Org mode you aren’t restricted to one level of grouping. You can nest tasks as deep as you want by using the outlining features. This allows you to plan and manage complex projects in a way which would be more difficult in todo.txt.

Contexts

If you use contexts in todo.txt then you can do the same in Org mode using tags. Here is an example in todo.txt of contexts specifying a physical location for where tasks can be done:

Buy baked beans @shopping
Change bulb in kitchen @home
Review weekly sales figures @work

The same in Org mode:

* TODO Buy baked beans :shopping:
* TODO Change bulb in kitchen :home:
* TODO Review weekly sales figures :work:

Marking tasks as done

Making tasks as complete in todo.txt is a little simpler than in Org mode. In this example the second task has been finished:

Buy baked beans @shopping
x Change bulb in kitchen @home

In Org mode you give a different state to a task. States are grouped into those that require action (e.g. TODO) and those which need no further action (e.g. DONE). I use the states TODO, IN-PROGRESS and WAITING all of which suggest further action is needed - and states DONE and CANCELLED for tasks which I’m done with. So whilst Org mode is a little more verbose here it is also more flexible:

* TODO Buy baked beans :shopping:
* DONE Change bulb in kitchen :home:

Priorities

Org mode and todo.txt approach prioritising tasks in a very similar way. Here is todo.txt

(A) Take car for annual service
(B) Clean car following service

Org mode:

* TODO [#A] Take car for annual service
* TODO [#B] Clean car following service

Software

Org mode

Org mode works best in Emacs. Emacs can be a little scary but the pay off for even mastering the basics is huge. Org mode in Emacs can do many things and is one of the big reasons people try Emacs. Much of the more verbose Org mode syntax is handled for you by an array of keyboard shortcuts and commands.

Whilst Emacs is by far and away the best place to use Org mode on the desktop other text editors also offer support - including Atom, Visual Studio Code and ViM.

On mobile devices there are a number of solutions:

Todo.txt

The main way of managing your todo.txt files on the desktop is with a shell script available on the todo.txt website. There are also other clients apps available for macOS (see TodoTxtMac), Windows (Todotxt.net) and Linux (DayTasks). The shell script does allow you to more easily integrate todo.txt with your favorite text editor than it is with Org mode.

On mobile todo.txt here are some of the apps available:

Converting from todo.txt to Org mode

A massive benefit of plain text file formats is that you can easily write your own tools to handle them. As a little carrot to encourage todo.txt users to try Org mode I’ve written a simple tool to convert your files. The tool is currently only available for macOS - however it shouldn’t take much fiddling to get this compiling on Linux. If enough people are interested I’ll try and add a simple way of installing on Linux also.

The tool is really basic, works on the command line and takes as its arguments a list of files to convert. The file extensions will be stripped and replaced with .org. Here is an example of the tool in action:

Matthews-iMac:scratch matt$ todotxt2org work.txt home.txt
Converted work.txt to work.org.
Converted home.txt to home.org.
Done.

The original files are left intact. In the above example you’ll now have work.txt, work.org, home.txt and home.org.

To install you’ll need Homebrew (the fantastic macOS package manager). Once Homebrew is setup (dead simple) then at the command line type:

brew install mgkennard/formulae/todotxt2org

This is my first attempt at a brew formulae so let me know if there are any problems.

Try the tool out with your todo.txt files and see how they look in Org mode!

Conclusion

Both Org mode and todo.txt are fantastic plain text task managers and to-do list systems. Todo.txt has the advantage of a simpler file format and one that is easier to process on the command line. Org mode is more powerful, especially when used with Emacs, and can replace more tools than just your to-do list app. If you are a todo.txt user and want to give Org mode a go then I hope this article will help you on the journey.

Download now for iPhone and iPad

Follow us on Mastodon

Privacy Policy | Press Kit