Keeping a todo list has always been a struggle for me. I have a notebook, I have some stuff in Google Keep, I’ve tried Google Tasks, Any.do, Remember the Milk, and Wunderlist. I’ve tried apps with goal setting, apps with reminders, and apps with synced web and phone apps.
My main problem is that it’s just another window to have open at any given point. I run a minimal desktop and dock – I don’t like windows all over the place with a dock that needs two monitors to show everything.
Robert Talbert tweeted about todo.txt the other day and I fell in love. Instantly.
I work in code and the command line a lot. I usually have the Mac Terminal open along with Atom. I hop between projects and use key commands because it’s faster than moving my hands to and from the trackpad. Todo.txt is a command-line script which manages a text file called (wait for it) todo.txt. It also has a done.txt file to hold things that are finished.
I won’t go into the syntax here, but essentially, each item has a priority, a title, and a tag or two. Putting one task per line in the text file creates one new entry on your list.
The command line just makes it faster to work with because it gives built-in commands, much like the Git architecture, to create, edit, or mark tasks as done. For example, using
todo add “(A) filter schools by content areas +curriculum” creates an item in the text file. Opening the file shows a single line. But, using the command line, it shows a sorted list of items based on priority.
Marking items is easy, too. Put an “x” in front of the task and – hey presto! – it’s marked as finished. Using the command line,
todo do and the item number marks it as done and moves it to your
Putting the notes in your Dropbox is tiny and updates instantly. Any computer I use is synced to Dropbox, hence my list is synced. Pull up the Terminal, and I’m ready to go.
Then I found GeekTool.
Getting rid of window clutter even more, GeekTool takes scripts (called “geeklets”) and lays them on your desktop in modules you customize. You can set the refresh rate as well as define groups of geeklets for different setups. For instance, I have a geeklet set to use when I’m on my laptop and one for when I’m hooked to an external monitor.
Part of my GeekTool setup is displaying my task list right on my desktop. Having a color coded list right there, all the time, is really helpful. And I’m not promoting an unhealthy work/life ratio because I can turn the geeklet off whenever I want (namely, on the weekend).
In the end, I’m really happy with this system because I control it. The setup isn’t as easy as downloading an app, but I know where my data is and I know how it’s being used. It’s a little thing, but some of the best things in life are the little things.
All images in the post are mine. There are a lot of great tutorials online for todo.txt as well as GeekTool.