Browser

Sync application preferences with Dropbox

Not only is the Dropbox file-synchronization tool handy for backups, it can also be used to keep application preferences synced between different computers. Vincent Danen highlights some of the apps with which it works the best.

Not only is the Dropbox file-synchronization tool handy for backups, it can also be used to keep application preferences synced between different computers. Vincent Danen highlights some of the apps with which it works the best.

---------------------------------------------------------------------------------------

A previous post discussed the Dropbox file-synchronization tool. While Dropbox is great for backups, as was previously discussed, it also makes it very easy to sync application preferences and data amongst different computers. This is a welcome side-effect of Dropbox; instead of configuring the same tool separately on two systems, you can configure it on one and have the data propagate to the other system transparently.

For some applications, this is easy enough to do. For others, there are caveats that need to be kept in mind, like making sure that the application isn't open on both systems at the same time. Some applications cache data and write it periodically, or at exit, which means if the same data is being used on one system with unsaved changes, then opened on the other system and manipulated, at best there would be loss of unsaved data -- at worst there could be full data corruption.

Some applications have been updated or redesigned to work with Dropbox. One such application is the fantastic 1Password application. 1Password allows you to store passwords, account information, secure notes, software serial numbers and more in an encrypted keychain-like file. In 1Password's General preferences, you can select the full path to the Agile Keychain (its data storage file), which you can set to your Dropbox folder (i.e., ~/Dropbox/keychain/1Password.agilekeychain). This saves the data file to the Dropbox and you can make use of 1Password, with the same data set, on multiple systems.

With Typinator, a text expansion program, snippets can be saved in your Dropbox. By opening the Typinator window and going into Preferences, change the "Sets folder" to something like ~/Dropbox/Typinator/. At that point the snippets and defined sets will be stored in the Dropbox and can be used by every other system. Change the snippets in one, and the changes will replicate to the other systems.

The Hit List is another application that can sync with Dropbox. It, however, is not as smart as Typinator or 1Password, so be sure to have it only open on one system at a time. It does not save its data to the data file until it closes, which means if you have had it open a few days on a desktop system, then open it on your laptop, you'll find tasks you had marked as completed are still present and any new tasks created are not saved.

If working on the terminal is not scary, you can also sync certain preference files or data sets by moving them to the Dropbox and replacing the originals with symbolic links. For instance, to move your Firefox profile, use the following in Terminal:

$ cd ~/Library/Application\ Support/Firefox/Profiles
$ mkdir ~/DropBox/Firefox
$ mv 5wxowx6x.default ~/DropBox/Firefox/
$ ln -s ~/DropBox/Firefox/5wxowx6x.default .

The above would be performed on the computer with the Firefox profile you want to share with the other systems. On the other systems, do the following:

$ cd ~/Library/Application\ Support/Firefox/Profiles
$ ln -s ~/DropBox/Firefox/5wxowx6x.default .
$ vim ../profiles.ini

In the profiles.ini file, copy and paste the existing Profile0 entry to Profile1 and change the Path to the symlink you just placed:

 [Profile1]
Name=dropboxed
IsRelative=1
Path=Profiles/5wxowx6x.default

And then start Firefox with the profile manager:

$ open -a firefox --args -p

Here, you can choose whether or not to have the profile manager open and prompt for which profile to use every time, which could be useful if you want to be able to maintain local and "shared" profiles as separate. If you only want the shared profile, make it default and delete the other. This same procedure should work with Thunderbird as well. What's more, it can also work with Firefox on Windows and Linux as well.

If you maintain a large cache, it would make sense to move it from the profile directory to its own directory on the local system. This can be done by creating a ~/tmp directory (tmp folder in the home folder, using Finder or Terminal) and then launching the "dropboxed" profile and typing "about:config" in the address bar. Type in the word "cache" and see if the entry "browser.cache.disk.parent_directory" exists; if not, right click in the window and create it (of type "string"). Then give it a value of "/Users/username/tmp/firefox_cache/" and restart Firefox. Now all the profile data should be stored in Dropbox, while the cached data will be stored on the local system.

Firefox is a bit of an extreme example, and The Hit List works (although it could certainly be made to work better), but applications like 1Password and Typinator work with Dropbox perfectly. I suspect that as this kind of "cloud storage" becomes more prevalent, developers will make their applications play nice with this kind of cheap/fast/easy synchronization, and we'll see more applications like these with full support for Dropbox and the like.

About

Vincent Danen works on the Red Hat Security Response Team and lives in Canada. He has been writing about and developing on Linux for over 10 years and is a veteran Mac user.

1 comments
jeb.hoge
jeb.hoge

I use Dropbox to store my own password database using KeePass. Works brilliantly, although on occasion I have to prod Dropbox to "catch up" on syncing. It's also nice for some file sharing using the Public folder.

Editor's Picks