Key commands are an excellent means of getting around a program, and Keyboard Maestro brings key commands to the general Mac OS.
Most of the custom perspectives I’ve designed in OmniFocus are assigned a key command. However, the key commands only work when OmniFocus is the front-running program.
Using Keyboard Maestro, I have macros created to immediately call my most commonly requested perspectives, opening OmniFocus when needed, regardless of my present active application.
As an example, I like to view my “laptop core” tasks easily. Usually, I would have to navigate to OmniFocus before calling the perspective with Control-Command-l. In the cases when OmniFocus is not already open, I would then need to open it before going to the perspective.
Now I just type Control-command-l wherever I am and the requested perspective appears. If this sounds appealing to you, read on.
* In creating key commands with Keyboard Maestro, one needs to be wary of creating hotkeys that may interfere with the hotkeys of Mac OS or other applications.
** Keyboard Maestro seems to be one of those programs that really rewards experimentation. I’m still experimenting, so follow along if you dare …
Creating the Folder
When OmniFocus is running, a path to call up a perspective by key command already exists. Rather than risk confusing the system, we need to tell Keyboard Maestro that it is not needed when OmniFocus is the front-running application. To do so, we can create a folder group in Keyboard Maestro with this specific command for all macros listed inside:
- Create a Group in Keyboard Maestro by selecting the plus sign in the bottom left corner:
- Title it something like, “OmniFocus Perspectives”.
We’ll now create a set of parameters for the folder.
- In the editing pane, select “Available in all applications”:
- Choose “Available except in the following applications:”:
- Select OmniFocus:
- Leave “Always Activated” as is.
We now have a folder in which we can create our perspectives:
Creating a Perspective Command
To create a new command by which we’ll call up a perspective:
- Select the plus sign on the bottom:
- Title it the name of the perspective you’d like to call.
Here, I’ll do “Laptop Core Perspective” under which I have only Flagged and Due items in contexts available for the laptop:
- Select “New Trigger” and choose “Hot Key Trigger”:
- Type the same key command assigned to the perspective in OmniFocus:
Now, we assign actions. We’ll need to open OmniFocus and select the perspective.
- Select the area that says “No Action”:
- The actions choices appear on the left:
- Type the desired command in the left search pane. Here, we’ll use “Open”.
- Double click “Open a File, Folder, or Application”:
- Select “Unknown” and choose the application “OmniFocus” from your applications.
- Again, select “New Action”: (If it does not appear, then it is likely that the actions menus are already open. Skip this step.)
- Search for and double-click “Select a Menu Item”:
In the resulting fields,
- Type the Menu Title as “Perspectives” and the Menu Item as the exact name of your perspective. In this case, I have written “Laptop Core”:
- Select “Current Application” and choose the OmniFocus application:
The completed list appears as:
- Select the Edit button on the bottom to close the editing process:
Inserting a Pause (an optional step)
This may be particular to my own system, but adding a pause here allows Keyboard Maestro to open a perspective more reliably. Otherwise, when Omnifocus is closed before executing the macro, the program opens, but the requested perspective does not, (possibly because OmniFocus is still opening when the perspective request is made).
- Open the editing process by selecting the editing button on the bottom again.
- Select “New action”
- Search for and double-click “Pause”:
- Drag and drop the Pause between the opening of the application and the selection of the menu:
I find that 0.5 seconds is plenty of time:
Now, when using another application, you can call up the perspective you want without opening or moving to OmniFocus first.
If desired, you can also add the action “Hide Other Applications”. This might be useful with a customized Inbox perspective, for example, where you may want to hide everything from view while entering thoughts.
You can create additional perspective macros easily by duplicating the one already made with Command-D and making the necessary adjustments. A bonus is that since it is already in the dedicated “OmniFocus Perspectives” folder that we first created, the new perspective macro will inherit the same properties.
For further study …
If you really want to start getting into Keyboard Maestro, then consider:
Somewhat related: I tweeted this OmniFocus tip: 1) Create “Search” perspective showing all remaining items; 2) Assign to ⌘⇧F (always open in new window); 3) Search away!
Now I use Keyboard Maestro to open that Search perspective, then type ⌘⌥F. (This activates the search field so I can start searching right away.)
That’s a neat idea, Dan! I’ll have to give that a run.
There’s also a neat script to get to your projects by Launchbar courtesy of Rob Trew.
You may already be doing this, but one thing to consider is putting them all into Keyboard Maestro under the same keyboard shortcut. This gives you a menu of all of your perspectives. They show up alphabetically sorted (or you can add numbers in the name) and from there you just choose the number (hit three on the keyboard to choose the third perspective). It will suck up a lot less of your keyboard shortcuts. Or you can always hybrid it and give your primary perspectives their own command and batch all of your occasional ones.
Total hat tip to Gabe on this: http://www.macdrifter.com/2011/09/too-many-triggers/
Mike, I haven’t done that, actually, though I can totally see that as a very useful means of compiling perspectives. I’ll give it a shot and see how it goes.
Don’t forget to read the comments in Gabe’s article. It’s actually even better to create a macro palette shortcut and then assign custom shortcuts to the specific macros. The macro shortcuts will be only active inside the macro palette and can also be something else than numeric values.
I would also suggest that you get rid of the activate application step and just select the menu item in OmniFocus (available via the menu, instead of current application). You can still activate OmniFocus after selecting the menu item if you want to bring the application to the front. This should work more reliably and don’t need a delay.
With a macro palette you also don’t have to exclude OmniFocus as the application. I’ve set a global palette to ⌃P and then I just press i for Inbox, c for Contexts etc.
Rafael – yeah – Mike was making a similar suggestion. I plan to try that for a subset of macros, but the major ones will likely get their own key combinations.
The problem with removing the activation of OmniFocus, is that I would like to be able to open the program when it is closed, too.