There is a bug (already reported) when setting keyboard shortcuts for the “Show in Projects” and “Show in Contexts” menu items. The keyboard shortcut does not work until I open the View menu, displaying the command that I want to invoke.
My attempts to interact with the menus in OmniFocus using anything just shy of GUI scripting have had similarly strange results. So, new plan: I would like to re-create the “Show in Projects” and “Show in Contexts” menu actions via Applescript.
The expected behavior:
One task or project is selected in the current window. I trigger the “Show in Projects” script. The perspective changes to “Projects” and that same task or project is selected.
tell application "OmniFocus"
tell front document
tell (first document window whose index is 1)
set selected_task_id to (id of (selected trees of content)) as string
set this_task to first flattened task whose id is selected_task_id
end tell
set perspective name of document window 1 to "Projects"
-- We can interact with this_task now, for example by setting flagged to true we can flag it.
-- However, it OmniFocus does not display or select the flagged task.
-- So, how to display the task? How to select it?
end tell
end tell
Note: Perhaps an explanation of tasks/projects vs. trees vs. flattened things would help.
EDIT: Possibly related:
What is «event OTREisal»
? As in «event OTREisal» every item of {selectedItem}
from the OF1 script reveal.scpt
(by Alex Brown, from Curt Clifton’s collection of deprecated OF scripts)?
Edit 2: Some success. The command set (selected trees of content) to this_task
has the intended effect (not well tested) but I have no idea what this line actually means. Insights?