Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Coming from Linux, I've gotten in the habit of keeping my config files under a git repository.
Since I got a macbook however, I've made a lot of tweaks through defaults write and preferences panels, but don't really know where to look for the plist files (I presume) that store those settings.

Any idea how to get started ?

share|improve this question
i dunno if version control is the best way to track revisions to your preferences. i'd just use time machine or crashplan. – yanokwa Jan 2 '11 at 18:45
up vote 3 down vote accepted

Your personal preferences, application support files, caches, etc. are primarily stored in ~/Library. Some applications (those derived from BSD) save hidden files and directories directly in ~, other pollute ~/Documents.

You personal user settings (everything you do with defaults) are located in ~/Library/Preferences/. Some applications (SSH, bash, etc.) still store their hidden preference files directly in ~, you can usually symlink or source to others.

Many applications store support files (e.g. document databases) in ~/Library/Application Support/ -- it depends on the individual application if the files stored there have real value.

Some applications or subsystems (Safari, Mail, QuickLook addons, Printer Configuration, personal Dashboard Widgets) are stored in subdirectories of ~/Library. You should evaluate them all individually to determine whether you want to store their contents in version control. This and this might be a useful resource here.

I wouldn't recommend putting the entire ~/Library in version control. There are tons of caches, etc.

share|improve this answer

For starters, some may see Time Machine as a type of version control. Related to Time Machine is what it uses to keep track of what to back up each cycle. FSEvents was introduced in 10.4 to keep track of what to index for Spotlight, and the same is used for Time Machine. You can tap into FSEvents using fseventer to see what files are being edited when you make a change with defaults.

I can tell you that the plists you are speaking of exist in the Preferences folder of various Library folders on the filesystem. The ones I can think of off the top of my head, in order of decreasing precedence:


I'm not 100% on how /Library and /var/root/Library relate—I do know there generally isn't a lot of overlap. /Library is typically for system application settings, and /var/root/Library is typically for system user settings. For example, certain Bluetooth settings and loginwindow.plist settings for all users are stored there. You'll find that even if the same filename exists in two of these directories, only individual key/value pairs will overlap.

share|improve this answer
/Library is for computer-wide resources and settings; /var/root/Library is just the per-user library for the root user (i.e. ~/Library for the root account), and will not affect you unless you log in as root. – Gordon Davisson Dec 31 '10 at 1:10
Ah--the experience I'm going off of for that is when defining Login/LogoutHooks. These can be stored in /var/root/Library/Preferences/loginwindow.plist, yet will still run for any other user at login and logout. – NReilingh Dec 31 '10 at 1:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .