Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Auto-sync to do lists (or any file) across machines Network
I've been trying to implement David Allen's Getting Things Done productivity system, in particular the to-do lists, for a little while. This hint isn't exclusive to that system -- it would work for any to-do list, or any document that a single user wants to edit from multiple locations, for that matter.

My main criteria for a useful to-do list were that the lists be available from any of my three computers at any time, and that they be as easy as possible to use (including drag-and-drop list ordering -- I can't stand having to set priority numbers!). For a while, I optimized on my first criteria by using an online wiki, but the editing wasn't nearly as drop-dead easy as a native Cocoa app. I considered using OmniOutliner, which has a much better interface, but keeping track of different versions of the to-do list would be more of a hassle than I wanted.

Finally I found a happy medium: an Applescript wrapper for OmniOutliner that will automatically sync to my main machine before and after I make changes.

To do this you will need: Optional (and highly recommended): Once you've put these ingredients together, create your list (let's call it kgtd.oo3) and put it in local/path/to/file/kgtd.oo3/. Then create this AppleScript (with the obvious substitutions where needed).

When the AppleScript is run, it syncs your to-do list with the version on your server (or desktop or whatever). It then opens it and waits while you make whatever edits you want. (The assumption is that the Finder will know which application to use to open it.) When you're done editing, just save and quit. The script beeps once to tell you that it's recognized the fact that the application has quit, then beeps again once it has re-synced with the server and with a backup directory (which could be on another server if you want).

Credit to Eelco Houwink for the part that waits until the program quits.
  • Currently 1.00 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (1 vote cast)

Auto-sync to do lists (or any file) across machines | 5 comments | Create New Account
Click here to return to the 'Auto-sync to do lists (or any file) across machines' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Also, try the Kinkless GTD system
Authored by: strike3 on Nov 23, '05 01:23:30PM
If you're into the Getting Things Done system, you probably want to check out the amazing "Kinkless GTD" app -- it enables GTD in OmniOutliner using some custom scripts and is in full-speed active development.

It's proving so popular that the folks at OmniGroup have specifically fixed bugs in OO just to help the KGTD system work better.

As for this hint, I use Automator applications to do pretty much the same thing, since I only "upload" my GTD doc at the end of each workday and "download" it every morning.

[ Reply to This | # ]

Auto-sync to do lists (or any file) across machines
Authored by: alblue on Nov 23, '05 01:53:48PM

I suspect that you mean 'passwordless ssh authentication' since the whole purpose of this is to enable a passwordless login, using a key.

[ Reply to This | # ]
Auto-sync to do lists (or any file) across machines
Authored by: tinker on Nov 26, '05 10:25:47AM
Oops! Yes, thanks. Was thinking "keyed" and "passwordless" and managed to jumble them.

After submitting this hint I noticed something odd. I turned the script into an application, and the application occasionally neglected to open the file, though the script always did. No idea why. But the fix is to open the file with the application rather than the Finder. It's a little uglier, as a blank document pops up and then disappears (unless you want to fix this in Prefs), but it works. To do this, replace the first part of the script,

do shell script "rsync -tru'remote/path/to/file/kgtd.oo3/' local/path/to/file/kgtd.oo3/"
tell application "Finder"
open document file "kgtd.oo3" of folder "file" of folder "to" of folder "path" of folder "local" of startup disk
end tell
set targetapp to "OmniOutliner Professional"

tell application "System Events" ...


do shell script "rsync -tru'remote/path/to/file/kgtd.oo3/' local/path/to/file/kgtd.oo3/"
set targetapp to "OmniOutliner Professional"
set the_file to "local:path:to:file:kgtd.oo3"

tell application targetapp
close document 1
open the_file
end tell

tell application "System Events" ...

Once that's done, the application version works without a hitch.

[ Reply to This | # ]
Auto-sync to do lists (or any file) across machines
Authored by: jamieph on Nov 24, '05 10:14:56AM
I thought about doing something like this, but I ended up settling on a WebDaV based solution. Spymac gives free WebDAV (100MB) with their free account. The Club account at $25 gives you 3GB online storage. I keep my GTD stuff on my Spymac Disk. With local mirroring (Club only; otherwise, use this hint to keep a local copy.) I always have my GTD lists on hand and can access them from anywhere.

[ Reply to This | # ]
Auto-sync to do lists (or any file) across machines
Authored by: EdwardW on Dec 08, '06 12:20:55PM

Great Hint. However, the "not equal to" symbol doesn't show up in the plain text file of the applescript. It reads "repeat until rr1 rr and targetapp is not in rr1" instead of "repeat until rr1 ≠ rr and targetapp is not in rr1"

[ Reply to This | # ]