Keyboard shortcut to turn selected project or task group parent to sequential?

I’d love to be able to select the parent of a task group, or any project in the sidebar, etc., and push a hotkey to turn it into a sequential project (or parallel or single action).

It’s not a crisis or anything, but I have a lot of dependencies throughout my projects that I solve by creating task groups and switching only those groups to sequential projects when needed. I know there are other plugins out there that do super fancy dependency stuff, but I don’t quite need that level of customization. Anyway, I digress…

My google-fu is returning zero results 🤣 and I’m beginning to suspect this might only be possible with a plugin since it doesn’t seem to be something built-in.

Any ideas?

This should get you started. Paste the following code in a text file (with .omnifocusjs extension). Then, in OmniFocus, go to Automation > Configure... and assign a a keyboard shortcut.

/*{
	"type": "action",
	"author": "unlocked2412",
	"version": "0.1",
	"description": "Change project type to sequential.",
}*/
// Twitter: @unlocked2412
(() =>
    Object.assign(
        new PlugIn.Action(selection => {
            // OMNI JS CODE ---------------------------------------
            const omniJSContext = () => {
                // main :: ()
                const main = () => {
                    const
                        ps = selection.projects;
                    return (
                        ps.forEach(x => (
                            x.containsSingletonActions = false,
                            x.sequential = true
                        )),
                        `Changed the project type of ${
                            ps.length
                        } projects.` 
                    )

                }

                return main()
            };

            return omniJSContext()
        }), {
            validate: selection => 
                selection.projects.length > 0
        })
)();

Wow, thanks for writing that up!

Unfortunately, it’s not working for me. I created the .omnifocusjs file


and loaded it into OmniFocus, but it’s greyed out when I have any project or task group selected.

Any ideas?

I can’t reproduce your issue, but we can surely solve it. What’s your OF version ? Did you copy the code till the end ?

{
            validate: selection => 
                selection.projects.length > 0
        })
)();