Keyboard Maestro as OmniFocus's Little Helper

January 05, 2013

Keyboard Maestro as OmniFocus's Little Helper → via @_patrickwelker

OmniFocus to me still is the task manager on the Mac. Even if I’m increasingly having trouble finding an intended purpose for contexts, just like Gabe Weatherhead from Macdrifter who has recently started a series were he is looking for a worthy alternative to OmniFocus.

Although, I moved a good part of my task out of OmniFocus into TaskPaper, I’m not a hundred percent there yet and OmniFocus is still functioning as main brain for my custom GTD system.

Since I use it daily I thought it would be appropriate to enhance it with a little bit of Keyboard Maestro’s magic. Here is my tool belt for making the marriage between these two work:

1. The Perspective Switcher


What you are looking at here is a typical Keyboard Maestro palette1 which I trigger via one of my rather rare global working hotkeys (here: ctrl-opt-`). It allows me to choose an OmniFocus perspective of my choice and directly switch to it no matter what application I’m currently in. So let us start.

For the palette hotkey open Keyboard Maestro and choose “add group” from the leftmost column. Use the following settings:


The structure of the individual macros is as simple as could be. As an example here’s what my “Now perspective” looks like:

  1. Triggers are all zeros on my keyboard (= also those on the number pad).
  2. If OmniFocus isn’t open then it will be opened by the macro, followed by a small 0.5 second breather before the last step of the macro.
  3. The menu entry from the chosen perspective gets selected and activated.

This is what my perspective palette looks like:


Those of you who don’t want to do the handwork don’t worry – I got you covered and put my macros on GitHub. You still need to change the names to fit your own perspectives and choose a shortcut that makes sense to you.

2. The Tool Belt

The so-called tool belt is also a palette; in this one are all the AppleScripts which I need to access most of the time when operating inside of OmniFocus – be it the daily or weekly review, organizing tasks or exporting lists.

Since I only need those scripts inside OmniFocus, the settings of the palette look like this:


After the call (here ctrl-`) this hud opens:


For simplicities sake I uploaded the collection of scripts also on my GitHub. But since I didn’t came up with all those brilliant ideas by myself you’ll find a list of references to the sources here where you can find the original scripts.2


Move to Top/Bottom

Script by The Omni Group Forums member ptone: go to this thread and download it.

Postponing Tasks

Dan Byler has a great OmniFocus AppleScript collection – everything one could wish for:

  • “Clear dates” removes the start and due dates from selected tasks.
  • “Defer” your selected tasks. The start and due date will changed by a chosen amount of days.
  • “Snooze” is not only my favorite in the morning when I’m dealing with my alarm clock, but also in OmniFocus. It postpones start dates from selected tasks by the amount of days you choose. There you are!
  • “Today” sets the start date to today.
  • “Tomorrow” sets the start date to tomorrow
  • “This Weekend” sets the start date to the weekend.

For a detailed description visit Dan’s site. All of his scripts are easy to customize for instance if you like due dates better than start dates, Dan’s got you covered.

Clear All Flags

Curt Clifton has put this nifty script on his GitHub page… and there is more.

Stagger Tasks

The website of Ryan Davis is also full of useful scripts, I only use these two:

  • “Stagger dates”

Stagger Dates takes the selected tasks and redistributes them one weekday at a time. For example, if it is Monday and you select 5 tasks and hit Stagger Dates, you’ll have one task on each day of the week. If it is Tuesday, then you’ll have 4 for this week and 1 on next Monday.

  • “Stagger times”

Stagger Times does the same thing as Stagger Dates, but for a single day. It takes the selected tasks and reschedules each task to start at the end of the previous task based on the previous due time and the estimated time of the task.

This lets me throw everything to a single day (which will use the default due time) and then spread them out throughout the day. If the tasks go too late, I know I’ve bit off more than I can chew for that day.

Send Tasks Via Email

Copy Tasks as Plain Text

Copy a Task URL

A pretty useful script for getting a link to an OmniFocus task. If the task is relevant I use the URL in my some of my nvALT, TaskPaper and Evernote notes. I found it via a famous search engine on a japanese blog.

Send Tasks to DueApp

Sean Korzdorfer has provided this script - and it is one of my absolute favorites since Due syncs to iOS and I get bothered every minute with an alarm if I choose to ignore it (which is often times my default mode).

Go to his GitHub page and download the version that works best for you there.

Export as OPML

To be completely honest. I don’t exactly know where I got this script from, but the handwriting screams RobTrew to me. So what I’m going to do is give you this link and let you search the forums by yourself – it’s a goldmine anyway.

  1. The best explanation for how to make these palettes is available here at Macdrifter – also read the comment section where other alternatives are pointed out.

  2. Considering OmniFocus 2 is soon to be released there is a good chance that some of the scripts won’t work properly after you’ve upgraded. In that case just visit the sources. Probably the popular ones will already be updated.

comments powered by Disqus

Related Posts