Tell me more ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Many Mac apps have "hidden" configurable options that can be modified in Terminal by using the defaults write ... command. This is straightforward to do if you know the name of the option that you want to configure ahead of time.

Is a list of values that each application actually uses tucked away somewhere in a master config file?

How do people discover these options without a list of all configurable options for a given Application?

share|improve this question
1  
Do you mind if I reword this. You are asking about the tool that writes messages and not about how to reverse engineer the program that reads the messages. By default, the program ignores anything you put in defaults that it wasn't expecting to see. You could embed shakespeare in the finder prefs and it would happily do nothing as long as it was valid plist XML once written to the file. – bmike Aug 16 '11 at 22:18
@bmike I realize this. What I was interested in was the list of values that the application actually utilizes. I thought there might be a complete listing tucked away somewhere in a master config file inside Apps. – awesomo Aug 17 '11 at 16:26
The list of values only exists in the source code for the program - once it gets compiled, the packaging encodes the strings (keys) in the binary and it's all mixed up with the other strings. There's nothing preventing the author of a Program from including a list as it could easily be added to the Contents/Resources folder that exists in any given Application. In practice, this isn't widely done. – bmike Aug 17 '11 at 18:43
You can also diff the output of defaults read to find the keys for normal preferences or use the CFPreferencesCopyValue method in gdb. See How to explore more defaults write tweaks on OS X? - Super User. – Lauri Ranta Aug 26 '12 at 19:28

4 Answers

up vote 4 down vote accepted

This is not a trivial task, if I recall correctly people run the strings utility at the command-line against an Application, and look for things that match a structure similar to com.domain.FeatureName. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda, etc.)

The likely easiest way to manage these overrides is by a System Preferences Pane by the name of Secrets. Using this installs a Preference Pane into System Preferences, and gives you an interface into choosing an application and changing their settings to your particular preference.

share|improve this answer
I'd love it if you answered this over there as well - apple.stackexchange.com/questions/19899/… - strings is the most friendly way to attempt this reverse engineering of keys for end users. – bmike Aug 17 '11 at 17:43

Most people here want to do everything via the command line, but I have a more practical suggestion.

These two programs described below list a great deal of the known command-line customizable features of Mac OS X applications, sorted by application or function. The advantage is the list of functions is provided for you; you don't have to go searching Google to find out what the functions are and the command-line sequences needed to modify each one.

There are several freeware or commercial applications that provide a graphical user interface listing most all of the customization options that can be modified via the Terminal. To activate any of these features, using these progams I'm describing, you do it within the application's GUI and you have no need to use the command line at all. You don't need to know anything about defaults write or .plist files.

Two of these apps are:

TinkerTool

which is free, and

MacPilot

which has just been updated with new Lion features, and costs US $20.00.

These are programs that I own and use.

Download the free TinkerTool and the trial version of MacPilot and and click through all the tabs to see all the myriad features you can customize. There are too many to list here.

enter image description here

enter image description here

share|improve this answer
Thanks for the recommendations. I appreciate the alternative approach. – awesomo Aug 17 '11 at 16:29
You should really accept this/Wheat's answer. It's light years ahead of mine. – Jason Salaz Aug 17 '11 at 19:08

Found a website dedicated to these Mac OS X defaults write commands, some handy commands for Mac OS X Lion & Mountain Lion.

http://www.defaults-write.com

share|improve this answer

I am a command line guy all the way, but since the gui is higher level, follow Mr Williams advice, grab a gui, then open up Console.app and you'll see the behind the scenes stuff.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.