Your to-do list is the hub of your personal productivity, so it makes sense that we're attracted to to-do apps filled with bells, whistles, and tassels. Then you realize you're spending more time fiddling with your app than getting things done. If you're tired of clicking around internet-needy webapps or getting locked into a specific to-do list service, it's time to switch to something simpler. Here's why a simple text file will make your to-do lists fast, easy to manage, and seamlessly integrate with everything else you use.
Why Plain Text?
I've gone through more to-do apps than I can count, and I couldn't stand any of them. It felt like it took a million clicks to navigate to the app or web site and add or edit a task, and accessing my to-dos in other contexts—like displaying it on my desktop or on my phone as a widget—was very difficult since it wasn't compatible with other programs. In essence, I spent more time fiddling with the apps than I actually did doing things.
Plain text files—most commonly files you create with the .txt extension—are like the universal language of desktop computers. It's the most basic file type around, stripped of all formatting and other complexities. And, unlike binary files (which only computers can understand), plain text files are readable by both humans and computer programs. It is, like the name implies, plain text.
In fact, what makes plain text so great is that you can pump a text file into nearly any program, on any platform or device. Everything and everyone can read plain text (both humans and computers). Often, programs—including many desktop to-do apps—have their own special binary files they use for storing data, making them incompatible (or hard to translate) for other apps.
Say you have a plain text file on your hard drive called todo.txt. You can manage it on any platform, with any text editor, and sync it with nearly any file-syncing service (like Dropbox). You can display your to-dos on your desktop with any program that can read text files, edit it with any number of programs that can handle plain text (these range from text editors like Notepad to more complex text-friendly to-do apps), and make it as simple or as complicated as you want it to be—whether that means a simple list of tasks or complex to-dos that include priorities, categories, and tags on each of them.
While you can manage that to-do list from the text file yourself, editing your to-do list in a flat text file using an editor like Notepad.exe or TextEdit isn't the fastest or most ideal way to do so. As such, a number of excellent to-do programs have cropped up that work with plain text to-do files, including (but not limited to) TaskPaper/TodoPaper, Org-Mode, and our very own Gina Trapani's Todo.txt. Today, we'll show you how to get started with Todo.txt (our favorite plain-text to-do program) and show you all the things you can do with the resulting text file—like display it on your desktop, add it as a widget to your phone, and even synced to all my other computers via Dropbox.
Note that Todo.txt is truly a geek's to-do list. You manage it from the command line and have to deal with editing config files to get it all set up. However, while there is a bit more work up front, it does actually make it faster and easier to manage your tasks if all you need to do is type a quick command and hit enter—there's no clicking, dragging, opening files, other other nonsense. However, if you prefer the mouse and want something with a GUI, you can use the same system with previously mentioned Todotxt.net, which is a bit more graphics-driven (but still takes advantage of all that plain text has to offer). And, no matter what system you're using, any plain text file can take advantage of our other plain text tricks, so take a gander at the last section of this article either way.
How to Set Up Todo.txt
Todo.txt manages your plain text file from the command line for extra speed and ease of use. If you're on a Mac, the process is pretty simple, and you can just use OS X's regular Terminal app (or one of the many great Terminal replacements out there). Windows users will have to download and install the Cygwin terminal to use it. For more info on Cygwin, check out our introduction to the Cygwin command line.
Once you've got your terminal program ready, head over to Todo.txt's home page and download the latest version. You should get a ZIP archive with two files in it: todo.sh and todo.cfg. Unzip these wherever you want. If you have a dedicated folder for scripts and the like, go ahead and unzip them there, or you can just put them in your home folder if you prefer. Just make sure both todo.sh and todo.cfg are in the same folder. These to files manage the to-do list; your actual to-do list is stored elsewhere in .txt format.
Next, open up todo.cfg with your favorite text editor and edit the export TODO_DIR
line at the top (not the one that says /users/gina/documents/dodo
; that's just an example). This line is what determines where your Todo.txt file is stored. I put it in my Dropbox's Scripts folder along with todo.sh and todo.cfg, so that line in my config file reads:
export TODO_DIR=`dirname "/cygdrive/c/Users/Whitson Gordon/Dropbox/Scripts/todo.txt"`
Where /cygdrive/c/
is Cygwin's way of saying C:\
. If you're on a Mac, the line will look more like this:
export TODO_DIR=`dirname "/Users/whitsongordon/Dropbox/Scripts/todo.txt"`
Obviously, edit the paths to match where you want to save your particular Todo.txt file. Save the config file and open up your terminal. cd
to the folder containing todo.sh, and make it executable with chmod
, like so:
cd ~/Dropbox/Scripts/
chmod +x todo.sh
This command assumes you've put todo.sh
in a folder called Scripts in your Dropbox. Again, change the path to match wherever you've put it (the sh
file, not the txt
file). Lastly, we'll make an alias for our script to make adding tasks quick and easy. To do this, you'll need to edit your bash profile. On Windows, that means opening up C:\cygwin\home\Whitson Gordon\.bashrc in your favorite text editor and adding the following line anywhere you want:
alias t='"cygdrive/c/cygwin/home/Whitson Gordon/Dropbox/Scripts/todo.sh"'
On a Mac, you'll instead want to open up the hidden .bash_profile
file in your home folder, or, if you've never used it before, create a new text file named .bash_profile in your home folder. Note that this folder will be hidden, so if you want to edit it again after you create it, you'll have to show hidden files first. Once you've got it open, add the following line anywhere you want:
alias t='"/Users/whitsongordon/Dropbox/Scripts/todo.sh"'
Restart your terminal app and run the following:
t ls
If you get an output saying TODO: 0 of 0 tasks shown
, you've successfully set up Todo.txt. If not, run through the instructions again and make sure you didn't miss anything. Then, continue on below to find out how to use it.
How to Use Todo.txt
Adding and editing tasks through the command line is super easy. To add a new task, just type something like:
t add "Do Laundry"
And, after adding a few more tasks, such as:
t add "Pay Bills"
t add "Install Skyrim"
You can view all your tasks in a list by typing
t ls
You'll get an output that looks something like this:
1 Do Laundry
2 Pay Bills
3 Install Skyrim
--
TODO: 3 of 3 tasks shown
To edit or complete items, you can just refer to them by the number shown on this list. So, say you've decided Skyrim is more important than paying bills and doing laundry. You can give it a higher priority by typing:
t pri 3 A
t
invokes the Todo.txt program, pri
tells it you're assigning a priority, 3
is the task you're editing (Installing Skyrim), and A
is thie priority you're assigning it.
To edit a task, you can use the replace
, append
, or prepend
commands. For example, if you wanted to specify that you need to pay the water bill rather than just "bills", you could replace that task with:
t replace 2 "Pay Water Bill"
Similarly, if you wanted to add something to the end of the line instead of replacing it entirely, you could run:
t append 2 "Online"
Which would change the task to "Pay Water Bill Online". To complete that task, you can just run:
t do 2
That's it! Todo.txt can do a few other advanced things, but we won't talk about them here. For more info, you can check out our original post on Todo.txt.
Other Useful Things You Can Do with Your todo.txt File
Now that you've got your todo.txt file up and running, there are some nice tricks you can do with it to make it even more useful. Here are some of my favorites.
Display Your todo.txt File on the Desktop: I'm one of those people that needs my to-do list up in my face, all the time, or I'll never get anything done. I never open it up manually just to see what I have to do. As such, I like displaying my to-do list on my desktop. With services like Remember the Milk or Google Tasks, this involves a lot of work, but with Todo.txt, it's incredibly simple.
If you're a Windows user, you can display your to-do list on your desktop with Rainmeter. Assuming you already have Rainmeter set up, all you need to do is grab a "Notes" skin, as they often display a text file. What skin you use will differ depending on what suite your Rainmeter setup uses, but in general, all it involves is finding the config file for your Notes skin and giving it the path to your todo.txt file. Some suites, like Enigma, will ask for this file in their main configuration, instead of the Notes skins' config file, so check both if you're unsure.
If you're on a Mac, you can use GeekTool to display your to-do list instead. Assuming you have GeekTool set up, all you need to do is open up GeekTool, drag a new "File" Geeklet to your desktop, click on it, and navigate to your todo.txt file under "File".
Sync Your todo.txt File with Simplenote: Occasionally, you may want to edit your to-do list manually, but searching out the file on your hard drive and doing it with Notepad is no fun. I constantly keep a Simplenote client open at all times, whether it's ResophNotes on Windows or Notational Velocity on the Mac. What's great is that both these clients allow saving your notes as plain text files, meaning you can place your todo.txt file in its folder and have it show up in Simplenote with all your other notes.
To do this in ResophNotes, just open up its settings and go to the Storage tab. Click the Plain Text File radio button, and give it a directory to save your files in. In Notational Velocity, go to Preferences > Notes > Storage, choose Plain Text Files from the dropdown, and choose your desired folder at the top of the window.
Note that this folder is also where your todo.txt file will be saved, so make sure it's a good location for both. Then, just drag your current todo.txt file into that folder with your other notes, and be sure to edit your todo.cfg file to represent its new location. You may want to create a separate folder outside of your ResophNotes folder for your "done.txt", "report.txt", and temp file—and you can edit all this in your todo.cfg as well. Mine looks like this:
export TODO_DIR="/cygdrive/f/Users/Whitson Gordon/Dropbox/Scripts/ResophNotes"
# Your todo/done/report.txt locations
export TODO_FILE="$TODO_DIR/todo.txt"
export DONE_FILE="/cygdrive/f/Users/Whitson Gordon/Dropbox/Scripts/todo/done.txt"
export REPORT_FILE="/cygdrive/f/Users/Whitson Gordon/Dropbox/Scripts/todo/report.txt"
export TMP_FILE="/cygdrive/f/Users/Whitson Gordon/Dropbox/Scripts/todo/todo.tmp"
Turn Your todo.txt File into an Android Widget: As I said before, I need my to-do list in my face if I'm ever going to get anything done. While there is a Todo.txt app for Android, it doesn't yet have a widget, so displaying my to-dos on my home screen is something I had to put together myself. However, since it's just plain text, it was remarkably simple. There are probably a number of ways to do this, but I put my todo.txt in Simplenote (as described above), then just used my Simplenote widget (via Flick Note) to display the "todo" note on my home screen. It's as simple as that.
These are just a few examples of what you can do with your todo.txt file, but you're starting to see why plain text is awesome—you can really do anything with it. You don't have to deal with complicated scripts, APIs or other nonsense to sync your data back and forth—it's just a matter of finding a program that can read plain text and putting it to good use. Got any of your own clever tricks for a todo.txt file? Be sure to let us know about them in the comments.