Defaults (software)

From Wikipedia, the free encyclopedia

defaults is a command line utility that manipulates plist files. Introduced in 1998 OPENSTEP, defaults is found in the system's descendants macOS and GNUstep.[1][2]

The name "defaults" derives from OpenStep's name for user preferences, Defaults, or NSUserDefaults in Foundation Kit. Each application had its own defaults plist ("domain"), under ~/Defaults for the user configuration and /Defaults for the system configuration. The lookup system also supports a NSGlobalDomain.plist, where defaults written there will be seen by all applications.[2][3] In macOS, the Defaults part of the path is replaced by the more intuitive Library/Preferences. defaults accesses the plists based on the domain given.[2]

defaults is also able to read and write any plist specified with a path,[1] although Apple plans to phase out this utility in a future version.[2][4]

Compound values

Common uses of defaults:

$ defaults read DOMAIN # gets all
$ defaults read DOMAIN PROPERTY_NAME # gets
$ defaults write DOMAIN PROPERTY_NAME VALUE # sets
$ defaults delete DOMAIN PROPERTY_NAME # resets a property
$ defaults delete DOMAIN # resets preferences

DOMAIN should be replaced by the plist file name sans extension ('.plist'). plist files are named with reverse domain name notation. For example:

$ defaults read com.apple.iTunes # prints all iTunes preference values

plist files store keys and values. The PROPERTY_NAME key is the name of the property to modify. For example, to remove the search field from Safari's address bar:

$ defaults write com.apple.Safari AddressBarIncludesGoogle 0
$ # or
$ defaults write com.apple.Safari AddressBarIncludesGoogle -bool NO # case-sensitive!

Using "1", "YES", or "TRUE" instead restores this to the default of including search.

Preferences can at times corrupt applications. To reset Address Book's preferences, either the file ~/Library/Preferences/com.apple.AddressBook.plist must be removed or the following command issued:

$ defaults delete com.apple.AddressBook

defaults prints values in the OpenStep format. It allows the VALUE to be arrays and dicts, as long as they conform to old-style plist syntax.[5]

Settings

References

Related Articles

Wikiwand AI