I’ve been using The Omni Group’s OmniFocus personal task manager
for a decade or so now. Every few years I get the sense that
I’ve strayed too far from principles and rebuild my system from scratch; 2019
has been one of those years for me. As a result I’ve been spending a lot of time
with Tim Stringer’s Learn OmniFocus site, and in particular looking at how
other people tailor this very flexible software to their particular needs.
A recent Learn OmniFocus workflows interview with Jason Atwood
reminded me that one of the coolest features of the Mac version of OmniFocus is
the ability to select a subset of the folders and projects in your database and
focus in on them: if you do this, you can apply various perspectives to just
those selected areas as if the others didn’t exist. I used to do this, but over
time I ended up with too many folders for it to be practical. It’s an
error-prone pain to select several items and then the focus action. I could
reorganise my database so that I only have a couple of top-level folders, but I
don’t have a perfectly hierarchical life. I want to be able to slice things up
in several different ways.
Pain leads to automation, and one recent evolution of OmniFocus is towards a
cross-platform automation system based on JavaScript. With a
bit of help from Sal in the Omni Group Slack’s
#automation
channel, it turned out to be pretty easy to make plugins to select
arbitrary groups of projects and folders and focus them. I’ve pushed a
repository to GitHub if you’re interested in the code.
Here’s what my Automation
menu looks like in OmniFocus now:

So, it’s pretty easy to focus in on specific clients, or on “Work” in general,
or on “Home” (defined as “not Work”).
I could bind each of those actions to a different shortcut key using the system
keyboard preferences (as you can see I’ve done with the “Promote/demote”
action). I have a problem remembering lots of bindings, though, so I turned to
Keyboard Maestro. This is another piece of Mac software I’ve been using to
some extent for ages but to which I’ve been reintroducing myself this year
through David Sparks’ “field guide”. Amongst other things, David
taught me about conflict palettes.
Here’s my OmniFocus group in Keyboard Maestro:

You can see that I have a number of macros, each bound to the same Control+F
shortcut key (the group is also set to be active only when OmniFocus is the
current application). Each of those macros simply invokes the appropriate menu
item in OmniFocus. This is what pops up if you use a conflicted binding like
Control+F:

Pressing one of the highlighted letters (‘D’, ‘H’, or ‘W’ in this example)
after Control+F dismisses the conflict palette and invokes the identified
macro, which in turn invokes the relevant plugin.
I find using a couple of keystrokes like this really smooth, by comparison with
manually selecting multiple items with the mouse or even selecting a menu
item. I often find that moving complexity out of the user interface into
automation means I’ll actually use something, where it was previously too much
hassle to bother with. I feel more focused already.