Put New Actions at Top of Project?

Is there some way to put new actions at the top of a project? When I select a project and type command+N, the new action gets put at the bottom of the project list. Is there some way to have new actions go to the top of the list? I can’t find a setting to enable this. I know many people want to just “throw” stuff in a project but it seems to me that more recent actions are in most cases more important than older actions and should come first.

I’ve seen this question asked at least twice in the last three years but I’m wondering if there is a new solution. I’ve found that I’ve stopped using OmniFocus because I get tired of having to manually reorder actions every time I add a new one.

Thanks.

2 Likes

If the first task inside a project is selected, hit Shift+Return to create a new task above that task, at the top of the project list.

1 Like

I made a script that creates tasks at the top of the selected project until you cancel. Maybe it helps.

Code:

-- UNLOCKED2412
-- Create tasks at the top of selected project (content or sidebar)

on run
	set refProject to GetSelectedProject()
	if refProject ≠ false then
		try
			repeat
				set nameTask to text returned of (display dialog "¿What's the action name?" default answer "" buttons {"Cancel", "Add More"} default button 2 cancel button 1)
				CreateTask(refProject, nameTask)
			end repeat
		end try
	else
		display dialog "Select a project, please."
	end if
end run

on GetSelectedProject()
	tell application "OmniFocus"
		tell document window 1 of document 1
			set listProjects to value of (selected trees of content whose (class of its value = project))
			if listProjects = {} then
				set listProjects to value of (selected trees of sidebar whose (class of its value = project))
			end if
			if listProjects ≠ {} then
				return item 1 of listProjects
			else
				return false
			end if
		end tell
	end tell
end GetSelectedProject
on CreateTask(refProject, str)
	tell application "OmniFocus"
		tell front document
			make new task with properties {name:str} at beginning of every task of refProject
		end tell
	end tell
end CreateTask

Thanks but that’s not what I had in mind. It requires selecting that first task which requires an extra step making the process of adding a new task even longer.

I’d like to try this out. How do you use this code? Do you have to put it in a particular file somewhere in the OmniFocus library directory? Thanks.

You’re welcome.
You have a lot of options:

  • Paste this code in Script Editor app and run it.
  • Paste this code in Script Editor app, save it and run from OmniFocus toolbar.
  • Assign a keyboard shortcut to a Keyboard Maestro macro. It needs the action Execute Applescript.
  • And there are many more…

Which one do you prefer?
Tell me if you have any more doubts.

This is one of the chief usability failures of OmniFocus (which is still a fine program). The answers here show several workarounds for the computer, but in iOS there is none, which is really annoying.

1 Like

I did try “Shift+Return” with IOS and it put a ‘new project’ above the selected ‘action’

An enhancement request that I’d like to see is a preference as such:
“When adding new actions to single-actions lists, add them:”
___ to the top;
___ to the bottom

I think its single action lists that this really affects, perhaps this could help! @SupportHumans

2 Likes

Hey there! I’ve filed this as a request in our development database for the OmniFocus team to review and consider. If you have any more feedback for us, please send us an email at support@omnigroup.com to ensure that no suggestion gets missed here in the forums - thanks!

1 Like