So far so good but what to do with application data like your contacts in Address Book, your Things to do list, your ShoveBox notes or anything else with a database for that matter? Symlinking is the answer!
You can’t sync a folder outside of the Dropbox folder and all these application databases live, well, outside of the Dropbox folder. Most applications store their data in the Library folder (in /Library/Application Support/ or ~/Library/Application Support/). The trick is to move the databases to your Dropbox folder while the application still thinks it’s somewhere in your Mac’s Library folder.
We’ll need some command line stuff to get this done so backup your data. I’ll say this once more and still you won’t listen but, please BACKUP your data before doing this.
I’ll use the Address Book library as an example. Close Address Book first! Drag the folder with the application data (~/Library/Application Support/AddressBook) to some Dropbox folder (e.g. ~/Dropbox/ApplicationSupport/AddressBook). You can choose the name of the destination directory the way you want.
At this moment Dropbox will be syncing your Address Book data to all your computers with Dropbox installed. Great, but we still need to trick Address Book as we moved its database. Let’s create a symbolic link from the old location to the new Dropbox folder. In Terminal:cd ~/Library/Application\ Support/
You created a link from the old location to the new one. You should see the little Dropbox status icon on the folder in your ~/Library/Application Support folder. That’s good. Open Address Book and check to see if all your contacts are still there. Yes? Good, now create a similar link on your other computer (don’t forget to close Address Book). I simply removed the Address Book library on my other computer. The whole purpose is to have the same data on both computers off course but please make sure there is nothing important there.
I wouldn’t run both applications at the same time, you’ll probably screw up your data! Address Book doesn’t know it’s using a ‘shared’ library so if both applications want to write changes at the same time things will go foobar.
I see no reason why this wouldn’t work for other applications. I’m happily using this method for Address Book, Things, ShoveBox and Little Snapper.
This post is open source. Did you spot a mistake? Ideas for improvements? Contribute to this post via Github. Thank you!