Mac OS X Prefs Editor - A GUI for the 'defaults' command
(a.k.a. the Registry Editor for macOS)
Go directly to the Download button.
Quick Introduction
Prefs Editor can edit application and system preferences in a simple, tabular format.
First, choose which preferences domain you want to edit:
If the list is long, enter part of the app's name into the Filter field to limit the list to matching names. Alternatively, you can drag and drop the plist file from the Preferences folder or the Application into this window or onto the Dock icon.
(Note: You can also open the user's globals domain from the File menu. Hold down the option (⌥) key to open the globals-host).
Once you have opened a preference, you'll see a list of key-value pairs, like this:
You can now click on the values in the rightmost column to edit them, add new values by clicking on the [+] button at the bottom-left (or by pressing the Return key) or delete one or more items by selecting them and using the [-] button. You can also Copy & Paste. You can Undo (cmd+Z) all modifications as well.
Of course, you should know what you're doing, or at least be instructed, as messing with the wrong values can cause the app that owns these preference to malfunction. If you messed it up, first try to Undo your changes using the Edit / Undo menu command. If that doesn't help, you can also delete them all (type cmd+A, then the Delete key), then restart the related app to have it reset all its prefs to its defaults as if it was just launched for the first time.
Some apps play along nicely and will notice changes to their preferences immediately. Other apps will need to be restarted manually for changes to take effect - the latter may also reset your changes if they're running while you're making changes. If in doubt, quit the app before using Prefs Editor on their preferences.
Examples
Click here to see instructions on adding a Quit menu to Finder as an example of using this tool.
Alternatives
- PrefEdit is an alternative, offering similar capabilities.
- Preferee lets you edit the preferences as text in either the classic plist and in JSON text format.
Further reading
Mail Archiver X author Beatrix Willius explains Pref Editor's features from another person's point of view.
Tech blogger Howard Oakley explains the Mac preferences system in more detail, showing how to view and edit them with and without Prefs Editor.
Background Information (Technical)
Mac OS X 10.8 introduced a caching system for app preferences ("cfprefsd"). While this probably increases performances for apps, it makes it harder for developers to manipulate preference values quickly for testing, because making changes directly to the plist files in the ~/Library/Preferences folder does not work any more with editors such as "Property List Editor.app" and the similar editor in Xcode. As of now (Dec 14, 2013), the only way to edit such preferences is by using the "defaults" command, which is rather difficult to use once it comes to editing dict or array entries.
Therefore, I've written a tool that works like the plist editor in Xcode but uses the CFPreferences functions to modify the values instead of editing the plist files directly.
If you've worked with "Property List Editor" or Xcode, you should find yourself right at home with my tool. It even supports Copy & Paste in the same way.
It even has one feature that Xcode's editor doesn't: You can delete all entries at once with Select All, then delete.
Also note that due to the use of the CFPreferences API, any changes you make are immediately committed to the preferences as seen by other apps, just like when you use the "defaults" command. For the same reason, changes made to the prefs by other apps (or with the "defaults" tool) will be seen in this tool after a modification, by re-activating the app or by using the "Sync" command from the menu. Hence, there is no Save command - updates are instant.
If you are an app developer and want to make your app more responsive to changes with Prefs Editor, please consider invoking CFPreferencesAppSynchronize or [NSUserDefaults.standardUserDefaults synchronize] whenever your app gets reactivated (i.e. in the NSApplicationDelegate's applicationWillBecomeActive: handler). This ensures that any changes to your prefs will be loaded back into your app's defaults cache.
Download
Current version: 1.4.1, requires Mac OS X 10.10 or later (Release Notes)
Using OS X 10.6, 10.7, 10.8 or 10.9? Download version 1.2.4 for Mac OS 10.6 - 10.9.
You may also download the Xojo source code (outdated): Download version 1.1.4 with project file
Known Issues & Limitations:
- Can only edit actual application preferences, not general plist files (to edit plist files use Xcode, PrefEdit or BBEdit).
- Dragging rows to move or copy them is not supported. Use Cut & Paste as a work-around.
Acknowledgements
Editing sandboxed prefs was made possible with help from @_karsten_
This project uses quite a lot of Xojo code written by Charles Yeomans, the UndoToolkit by Scott Forbes and some MBS plugins.
Alexandre Colucci from Elgato Systems made a few good suggestions that went into 1.0.3.
Steve from Irradiated Software encouraged and helped me releasing version 1.2.