TaskPaper printing

I’m finally giving TaskPaper a fair tryout. I first got it as part of the MacHeist 2 bundle, and although it had many features I liked, I wasn’t ready to replace my LGTD TextMate bundle, which is mostly described here. Then I moved on to OmniFocus and left TaskPaper sitting in my Applications folder, unused.

Several months ago, I gave up OmniFocus and returned to my LGTD bundle. OmniFocus is a great program if you’re dedicated to using it, but it takes too much effort for casual use. That, at least, was my experience. I don’t think I’ll ever have the dedication to task planning necessary to use it well. Live and learn.

After returning to it, I made one significant improvement to the LGTD bundle: the ability to print a task list to a 5×7 index card, which I could then attack with my Circa Desk Punch

and put into the Junior-sized Rolla notebook I keep on my desk and use as a daily planner/diary.

I never blogged about the addition to the LGTD bundle, but it’s there in the GitHub repository.

What does this have to do with TaskPaper? Well, I got an email from HogBay Software, promoting its new TaskPaper app for the iPhone. I had some free money in my iTunes account from the Simplenote contest, so I decided to give it and the desktop app a try.

I really like the way it looks and the simplicity with which I can rearrange the order of projects and tasks.

Syncing with the iPhone works, which is a great advantage, but it’s not without some annoyances. Syncing is built in to the iPhone app, but you have to run a free menubar-only application, called SimpleText, to do syncing on the Mac. That just seems like a waste of memory and menubar space—SimpleText’s features should be rolled into a preference in TaskPaper itself. Another syncing annoyance is this warning pane which shows up occasionally when I try to save from the desktop app.

Despite what it says, I haven’t changed the file with another application or with the iPhone; this warning is just getting in my way. I suspect the cause of this is a coordination problem between the timestamps of the local file and the file on the server.

Update 3/17/10
I’ve learned from Jesse Grosjean of HogBay, through a combination of comments here and email, that version 2.2.1 of TaskPaper has (mostly) fixed the problem with spurious “document changed” warnings. I was getting those warnings regularly last week. The 2.2.1 update went out on Friday, and I haven’t seen the warning since.

Update 3/18/10
Version 2.2.2 came out today, which is supposed to fix the last of the spurious “document changed” warning bugs.

Printing from TaskPaper is, frankly, crappy. It has no options of its own in the Print pane, so you can’t alter the header or footer, you can’t change the margins, you can’t change to a two-column format (which would be very convenient, since most task entries are short), and you can’t print with a smaller font than your onscreen choice. This last is a particular problem for me, as I use a 14-point base font, which I need to read comfortably on the screen, but which is huge on paper. A zoom control in the application itself would be another solution to this problem.

Fortunately, TaskPaper’s file format is plain text, with signal characters to distinguish between projects and tasks. It’s format is similar to Markdown’s, and it takes just a few lines of code to transform it into the subset of Markdown I use in the LGTD bundle. From that point on, the printing problem is basically solved by the LGTD code, which I copied out of the bundle and put into its own GitHub repository, called “tp-planner.”

The repository consists of a set of scripts for converting the TaskPaper file into a nicely-formatted PDF for printing onto 5×7 index cards. The main script is an AppleScript called Planner Print.scpt, which, when installed in your ~/Library/Application Support/TaskPaper/Scripts folder, shows up in TaskPaper’s Script menu. Calling the Planner Print item opens Preview with a view of what’s going to be printed. (Preview shows it on an 8½×11 sheet, but when I feed a 5×7 index card into the printer, it prints out perfectly.) Here’s what it looks like printed out and inserted into my planner notebook.

You can click on the image to see it larger.

This is how I keep track of my day when I’m not in front of the computer. In addition to showing my to-do list, the big index card also acts as a “Today” bookmark—it’s thicker stock makes it easy to open the notebook to that page.1 I punch the holes so it goes on the left side of the planner; I write phone messages and activities on the right side. Items checked off the paper list get checked off in TaskPaper at the end of the day. I get two days’ use out of each index card by flipping it over top-to-bottom.

Update 3/18/10
Forgot to mention that the Archived project—the one at the bottom of the file that gets filled with @done tasks—is filtered out before printing. I saw no reason to clutter up my to-do list with a done list.

This almost took longer to explain than it did to create. The hard stuff—the customization of html2ps to display open squares at every task item and the setting of fonts and margins—had already been done for the LGTD bundle. As you’ll see in the repository’s README, in addition to the scripts in the repository, you’ll need a Markdown processor and the ps2pdf utility included in the Ghostscript distribution. You may also need to customize two of the scripts to set the paths to these utilities correctly.

Now I have the best of both worlds: TaskPaper’s clean onscreen look and syncing with the iPhone, and LGTD’s nice printouts for my planner.


  1. All the other sheets are my planner pages printed on regular paper.