How to keep settings consistent between Macs

automatorsettings

I use multiple Macs (OS X Lion). There are a lot of settings, apps, and files I'd like to keep synced up between them. Files are the easiest of the lot — Dropbox + symlinks, Mercurial repositories, and standalone Puppet manifests are all well-understood and simplish tools. Apps are slightly more difficult, but I'm experimenting with Puppet + PackageMaker + Dropbox to meet this goal.

That brings us to settings. These are also the most obnoxious since I set some small thing on my iMac, promptly forget, then rediscover the annoyance on my MacBook a couple weeks later and have to comb through Google to figure out what I did to fix it the first time.

I discovered the 'defaults' command today and have been exploring it, but I was wondering how everyone else solves this?


By "settings" I mean OS-level configurations like changing the number of Spaces you have, setting hot corners, modifying mouse behavior, etc. App-level configuration would be great, too, but I'm assuming a lot of different apps do this different ways. Oh, how I miss real Unix and its flat configuration files…

Best Answer

There really isn't a one size fits all answer, but I can think of four ways to accomplish your task if you care to spend some time setting this up.


Macs are Unix, so simply check in your ~/Library/Preferences and /Library/Preferences into some sort of code control system. You can then do diffs and most plists are text or easily converted into text (using PlistBuddy) so you can isolate exactly what you have changed.

There are numerous tutorials available - Penn's wiki on Manipulating Plist files is particularly nice and directed to people with unix skills.


There are plenty of Managed System software like Apple Remote Desktop or others like Casper if you wish to get software designed explicitly to manage user preferences.


Server accounts would be easy to set up for minimal cost if you have a spare machine (or virtual machine). Again - some work, but mobile accounts do work well for many people.


Lastly, don't overlook simply migrating the user account from the mac that is correct to the other mac periodically and just making a system where you are disciplined about how you record the times you change a setting.