Synchronising Things using Dropbox

Important update

I no longer recommend this approach for keeping Things synchronised between two Macs. Use the guidelines for syncing multiple Macs from the official Things Wiki to relocate the database to somewhere on your Dropbox, rather than using the symlink method below.

The usual caveats apply: you still can’t run Things on more than one computer simultaneously, and if you update it on one computer you may experience issues opening the database on the older copy.

Original article

Lately, I’ve been thinking that I need to get more organised. The endless shuffle between work and life has me missing or forgetting things, and I can’t possibly be expected to remember every little thing or errand that pops up.

Despite my allergy to all things GTD (I’m of the belief that it verges on cult–ike amongst its adherents), there’s something inherently appealing about a so–called “trusted system”, where everything you might need to know or do is filed somewhere for later retrieval.

Of course, there’s always the appeal of wading through a checklist knocking things off the list. It feels productive, and that’s important for motivation.

The contenders

To the best of my knowledge, there are two main contenders in the Mac GTD camp:

I won’t go too much into the differences between them (this would be a good place to start, even if it’s a little out of date), but let’s start with a personal preference: I like Things’s “Now/Next/Someday” paradigm more than I like OmniFocus’s way of doing things. I also prefer the tag—based approach Things takes, since sometimes entries won’t be just “Mac : Home”, or ”Mac : Work”, but might just be “Mac” in general, but they’re also “Personal” or “Work”. OmniFocus seems to only exist in a single axis, whereas Things has tags. So I can add as many or as little as I like, and drill down accordingly. At work I’m ”Online” but also ”Work”. On my lunch break, I’m just “Online” (so I could continue in my quest to tag the 1000+ photos on Flickr that need them with my down time).

There’s one killer feature of OmniFocus for me, though: it can synchronise between installations (my work MacBook Pro, and my home MacBook) without an iPhone. I don’t have an iPhone. Things doesn’t synchronise without one. What’s a boy to do?

Enter Dropbox

The Things Wiki has some outlandish suggestions including Using Applescript + SVN to keep Things in sync. Certainly, a plist and launchd solution would work, but it seems slightly complicated and prone to breakage.

Carlo Zottmann first gave me the idea of using the excellent Dropbox service when he mentioned using 1Password’s new Agile Keychain in conjunction with it.

Dropox is perfect for this type of activity:

  • It’s quite secure;
  • The daemon listens for changes and uploads quietly in the background; and
  • It’s available offline, since it works as just a folder in your home directory (~/Dropbox).

A caveat

I’m not under the impression that Dropbox’s merge is anything to shake a stick at, so this technique will only work if you move from one computer to the other in sequence, and don’t have Things open in two places at the same time. Conflicts may occur in such a situation.

How do I do it?

Quite simple, actually. Cultured Code stores the database for Things in a per–user file called Database.xml, but after some fiddling I discovered that I couldn’t just symlink the file, as Things was blowing away the symlink and creating a new file each time. So some trickery was required. Make sure you shut down Things before you begin these steps, obviously.

  • First we make an appropriate folder on Dropbox (you just need to do this on your first computer, and obviously both computers need to have Dropbox installed):
    mkdir -p ~/Dropbox/Library
  • Then we hop into the folder just above where Things stores its database:
    cd ~/Library/Application\ Support/Cultured\ Code
  • We now move your existing Things database onto Dropbox (again, just on the first computer): mv Things ~/Dropbox/Library/Things, OR:
  • If you’re on the second computer (at work, for example), you need to remove the Things folder:
    rm -rf Things
  • Now we link the Things folder to Dropbox:
    ln -s ~/Dropbox/Library/Things Things

And you’re done! The symlink means that any changes made to Database.xml will be reflected on Dropbox almost immediately, and firing up each computer individually (but separately) will inherit those changes. Note that I’m using it on two computers, but you could theoretically use it on any number of computers, just as long as they’re not using Things simultaneously. That bold text is very important, pay attention please!

Consider this a feature request…

…that is, if any of the good folk from Cultured Code are listening!

Post Notes

  1. intranation posted this