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:
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.
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
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.
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:
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:
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
* TODO [#A] Take car for annual service * TODO [#B] Clean car following service
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.
On mobile devices there are a number of solutions:
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:
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!
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.