Reverting Project Behavior in OmniFocus

I recently updated OmniFocus on my MacBook Pro to version 1.8, the latest version, and noticed something that was—to me, at least—quite disturbing. Projects that had no child actions were now displaying in my Contexts view! Besides running counter-intuitive to my (albeit limited) understanding of Getting Things Done (GTD), this new behavior just didn’t make sense to me.

A quick Google search turned up a forum discussion on the matter. Feelings were apparently running very strong about this matter, as individuals squared off on each side. Some people felt that having projects with no child actions appear in the Contexts view was perfectly natural. Their explanation was that completing child actions brought you ever closer to completing the project, and thus when all the child actions were complete you could then “complete” the project “action”. Others, like myself, felt that projects shouldn’t be included because you don’t “do” a project, and putting a project in the list of things you “do” didn’t make sense. After all, projects aren’t actions and actions aren’t projects.

Fortunately, there appears to be a fix. A hidden preference setting can be changed to prevent childless projects from appearing in Contexts view. The change is implemented as a URL, like this:

omnifocus:///change-setting?ContextModeShowsParents=false

This URL would then change it back:

omnifocus:///change-setting?ContextModeShowsParents=true

I searched for a way to change this setting using the more traditional defaults write technique, but couldn’t find any settings in the OmniFocus preferences file that changed when I issued these commands. I tried converting them to XML format using plutil and comparing them with diff, but that didn’t show any differences either. Searching the files using grep didn’t reveal any potential candidates either, so it appears that the only way to change this setting is to use the URL above. That implies to me that this setting is embedded inside the OmniFocus database, not in the preferences for the application.

In any case, if you’re using OmniFocus 1.8 and don’t want projects to show up in your Contexts view, you can change the behavior using the URL above.

UPDATE: It turns out that OmniFocus does have a menu command, on the View menu, to toggle this behavior. The Show/Hide Parent Items in Context View is the command you need. Thanks for all who pointed that out to me!

Tags: ,

  1. Ken Case’s avatar

    Hi Scott,

    That setting is also available in the View menu as “Hide Parent Items in Context Mode”. (If there’s anywhere else we could mention this that would make it easier to find, I’d welcome your suggestions! It’s currently documented in both the Help and the 1.8 Release Notes.)

    Note that the “Context” mode isn’t actually just for looking at actionable context lists: it’s also the best way to looking at items which are coming due (the “Due” built-in perspective), which have been recently completed (the “Completed” perspective), and so on. One big advantage to this change in 1.8 is that due projects with no actions in them will actually show up on your due lists, rather than just running right past their due dates without any warning.

    Since projects won’t be available until their children are checked off, you might try just setting your View->Availability Filter to “Available”, which is how I usually look at my context lists. In that case, you’ll only see projects show up once all of their actions have been completed, which is probably an appropriate time to either check them off as complete or add more actions that need to be done to move them forward.

    But, again, if you simply want to make them disappear, there’s always that “Hide Parent Items in Context Mode” setting in the View menu (which is identical to the ContextModeShowsParents setting URL you note above).

    Hope this helps!

  2. Xavier’s avatar

    Thank you for the post!! I couldn’t find any of this on OMNI’s forum.