From 43FoldersWiki

Jump to: navigation, search
Platform: OS X
License: Shareware
Cost: $24.95-69.95
Download Size: 4.7-4.8MB


[edit] Description

OmniOutliner is an outliner—a hierarchical editor—from The Omni Group. It is available in Standard and Professional versions.

[edit] Testimonials

It's a smarter way to write, a more productive way to stay organized. Whatever your project, OmniOutliner has the tools you need to get the job done. --The Omni Group

[edit] Academic Pricing

OmniGroup has academic pricing that can make a difference for students, faculty, and staff at educational institutions.

[edit] Hacks

[edit] Implementing GTD workflow

I wanted some tool support for implementing GTD within an application, but I also wanted to avoid actually writing a new application, as that would be more likely to prevent me from Getting Things Done. I decided to try and build tool support for GTD using OmniOutliner 3 and some AppleScript glue instead of writing an app. Here's what I came up with.

[edit] General Outline Structure

My GTD outline is structured along the following lines:

- General Next Actions
	- NA1
	- NA2
	- ...
	- NAx

- Project 1
	- Next Action for Project 1
	- Purpose
		- Why I'm doing project 1
	- Success Looks Like
		- Something that will be true when P1 is done
		- Something else that will be true when P1 is done
	- Notes
		- Some notes about P1
	- Project Support Materials
		- Aliased files relating to P1
	- Related people
		- Email addresses/URLs of relevant people
- Project 2
- Project 3
- ...
- Project x

- Someday/Maybe
	- S/M Item 1
	- S/M Item 2

So I have one top-level item which is the parent of every non-projecct next-action, one top-level item for each project and one top-level as the parent of all my someday/maybe items. Additionally, each project has a standard structure below. Notes, Support Materials and Related People are optional. Next Action, Purpose and 'Success Looks Like' are required.

[edit] Alternative Route

I went with a bit of a different approach, using "@" Contexts as the root level, then Projects. With auto A-Z sorting turned on, this enables me to sub-divide big projects into their proper subprojects (and associated actions) without too much nesting. Viz:

  • @_inbox
  • @house
  • @computer
  • @office
    • website: make space on server
      • [next] download out-of-date files
    • website: redo front page
      • [next] read email from client
  • @stores
  • done
  • waiting

Using hoisting, and an open side drawer, I can view a single context list, or even a project's, on its own, which helps when there are dozens of actions. --RobertDaeley 00:30, 8 Apr 2005 (EDT)

I created an OmniOutliner template of my setup described here, though with more "canonical" contexts. download here --RobertDaeley 18:53, 13 Apr 2005 (EDT)

[edit] Named Styles

OmniOutliner 3 Pro allows the user to create named styles. In my technique, I commit a quite egregious abuse of the whole concept of styles. I create a number of styles whose names begin with "[Tag]" but which have no attributes of their own. Examples of the names of styles include: "[Tag] Next Action", "[Tag] Current", "[Tag] Waiting For", "[Tag] work", "[Tag] home", "[Tag] DIY", "[Tag] calls".

What this allows me to do is use styles as arbitrary tags on any row. Typically I only tag general next-actions, projects and Someday/Maybe rows.

With a little AppleScript magic, we can apply tags to rows and query which rows are tagged with a given style. It's then possible to slice and dice your data in pretty much any way you like.

[edit] AppleScript Techniques

Instead of posting the full source of a large number of scripts, I'll present here a few building blocks with which you can assemble your own scripts. Note that, here, I'm using the terms "Tag" and "Named Style" pretty much interchangeably.

[edit] Get selected rows

To get the selected rows in the front document, use code like:

tell application "OmniOutliner Professional"
	set theSelectedRows to selected rows of front document
end tell
[edit] Select tags

If you're writing a script to apply tags to rows, you'll want to display a dialog so you can choose which tags to apply:

tell front document of application "OmniOutliner Professional"
	set allTagNames to name of every named style ¬
		whose name starts with "[Tag]"
	set selectedTags to ¬
		(choose from list allTagNames with prompt ¬
			"Highlight which tags?" with multiple selections allowed)
end tell

This leaves you with an AppleScript list of the names of all the tags the user selected in a list.

[edit] Acquire a named style

Once you've selected tags by names, as in #2 above, you probably need to get the named style object itself:

set theStyle to ¬
	(first named style of front document whose name is "[Tag] Next Action")
[edit] Apply a style to a row

If you have a style reference and a row reference, apply a style to a row with code like:

add theStyle to end of named styles of style of theRow
[edit] Check for applied style

This is slightly funky, but say you wanted to have the user select a tag and then find all rows to which that tag applies:

tell front document of application "OmniOutliner Professional"
set selectedTags to (choose from list allTagNames with prompt ¬
	"Highlight which tags?" with multiple selections allowed)

repeat with tag in selectedTags
	set tagStyle to id of (first named style whose name is tag)
	set theAffectedRows to  ¬
		(every row whose ¬
			(tagStyle is in (id of named styles of style of it))) ¬
		to selected rows
	end repeat
end repeat

end tell

The key here is to acquire the the id attribute of the style and then use "(id of named styles of style of it)".

[edit] Tickle.scpt

(could be run from cron, or on wakeup, or everyday at a specified time)

A tickler file automatically adds items to your in box on given days. They stay out of sight until you need them.

This bit of code (with some modifications for your set up) will so it for you. It has a few requirements:

  • you have a document called "GTD"
  • it has a top-level topic called "Tickler", and one called "IN"
  • you have a column of type 'date' directly after the topic column
tell application "OmniOutliner Professional"
	set theDocument to document "GTD"
	set t to make new row at the end of children of theDocument
	set text of fourth cell of t to "today"
	set today to text of fourth cell of t
	delete t
	set tickler to first child of theDocument whose topic is "Tickler"
	set inbox to first child of theDocument whose topic is "IN"
	duplicate (rows of tickler whose text of the third cell is today) ¬		to the end of the children of inbox
	delete (rows of tickler whose text of the third cell is today)
end tell

This is very easily modified for your particular set up.

[edit] MoveToDone.scpt

(assigned a shortcut key and placed in the OOP scripts folder for quick Done Filing)

In case you are interested, I also have a script that takes the currently selected, marks them as done, sets today's date to the date column, and moves them to the top level "DONE" box. Again this requires a datefield (easy to remove) and your document must be called "GTD"

tell application "OmniOutliner Professional"
	set theDocument to document "GTD"
end tell

tell the front document of application "OmniOutliner Professional"
	set doneBox to the first child of theDocument whose topic is "DONE"
	repeat with theRow in the selected rows
		set state of theRow to checked
		set the text of the fourth cell of theRow to "today"
		set workaround to make new row at end of children of theRow
		set abug to the parent of workaround
		delete the last child of abug
		duplicate abug to the end of the children of doneBox
		delete abug
	end repeat
end tell

This script in particular can be easily modified to make quick filing to any folder. And it does a little work around that lets you duplicate selected rows, and delete them. OmniGroup has acknowledged and is attempting to fix these bugs. Don't ask me how I found the work around: Seth

[edit] Styling Tips

This section is reserved for examples of the different OmniOutliner style templates users have come up with. Perhaps we could also make these templates available for download here.

[edit] Terminal Style

I find it much more pleasant working in a terminal-like interface, with Andale Mono font and green on black background. Fixed-width fonts are much easier to work with, I think, because they more conducive to ease of editing than proportional fonts, because the cursor moverment with proportional fonts is erratic and irregular in comparison. Green fonts against a dark background also seem to focus the mind more on the words than black fonts against white, which—for me at least—make my eyes wander about more.

Here is the OmniOutliner style I use (click to enlarge):

It's easy to set up. Just click the "Whole document" chit in the list of named styles, then choose Andalo Mono as your font, black as your background color, green as your text color, and dark green or gray as your gutter color.

The only drawback is that you can't see the cursor against the black background. I've emailed OmniGroup and asked them to make the cursor color customizable.

[edit] See Also

Personal tools