Working with Preference Settings and Property Lists

Using the Domain Overview

PrefEdit uses a domain overview window to display all preference domains available in your current user session. To learn more about preference domains and domain intersections, please see the introductory chapter.

The domain overview gives you access to the macOS preferences database. PrefEdit allows only one copy of the overview window to be open at the same time. The window is automatically displayed after you have launched the application without having another document open. If you don’t see the window, you can open it by selecting the menu item Window > Show Preference Domains or by pressing ⌘ + 1.

Domain Overview Window
Domain Overview Window

The table in the window shows all preference domains currently found which are valid for your user account and the current computer. Domains which belong to a user application also show the icon of that application at the left side, and the clear text name of the program in the column Application. Note that not all domains have icons. Those particular domains may store preference settings for background services or other programs without a graphical user interface, for example, so no icon is available. A checkmark in the column Sandbox means that the respective program is protected by the macOS Application Sandbox.

A sandbox is a protection technology used to encapsulate an application, separating it strictly from other applications and critical features of the operating system. An application using this technique only “sees” a strongly limited part of files and folders on your computer and cannot break out from its playground sandbox. Even in case an application protected in such a manner has been attacked by a computer virus, so that the program was modified in a malicious way, it cannot perform any “bad” actions. PrefEdit has to handle such applications separately, because their preference settings are also encaged in the sandbox and are therefore not stored at their usual places.

The sort order can be changed any time by clicking on the respective header field of a column. A double-click on a line of the table will open all preference files for the corresponding domain which take effect for your user account.

The table can include domains whose preference files are corrupt or don’t comply by the rules in other ways. PrefEdit will analyze the related files in detail as soon as you try to open them. This emulates the typical behavior of the macOS preferences subsystem.

Software developers are capable of migrating their own applications from a sandbox-protected to an unprotected version, which can result in the creation of two independent sets of preference settings for the same program, one inside and one outside the sandbox. (This usually cannot happen in standard use situations.) In that particular case, PrefEdit will prefer to work on the sandboxed preference domain. Developers can open the unprotected settings manually, by navigating directly to the affected file.

In very rare cases, the sandbox of an application might contain private copies of preference settings of other applications, without sharing them with those programs. This is almost always an error in the sandbox handling of that application and such domains won’t be listed in the overview table of PrefEdit. You can still open such settings manually, navigating directly to the file.

Finding and inspecting domains

If your home folder has been in use for some time, there will usually be several hundred preference domains. To quickly find a specific domain, you can enter some part of its name into the search field. PrefEdit will immediately reduce the number of entries in the table and will only list domains matching the name part you entered. To quickly go to the search field, you can select the menu item Edit > Find Preference Domain, or press ⌘ + ⌥ + F.

Some applications may not follow the rules for domain names, and sometimes it may be difficult to identify the correct domain name for a given application. In this case, you can have PrefEdit find out the correct domain name for you: Just select the application in the Finder, then drag the application’s icon into the field Find domain for application of the window Preference Domains. The domain window will then automatically switch to the correct filter which will display the preference domain for the application in question. You can alternatively enter the standard name of the application into the search field if you don’t know the domain name.

Before working with the actual preference settings, you can also use an overview window, the Domain Inspector to get some preliminary information about the preference domain. Just select a domain in the table and press the button with the i label below the table. The picture below shows an example.

Domain Inspector
Domain Inspector

The following information can be found:

If a preference manifest or preference file is available for the chosen scope, you can retrieve the matching files by pressing the respective Open buttons.

Deleting domains

You can delete a preference domain which means that all preference settings for that domain will be removed from the database. The next time the application associated with this domain is being started, it will be reset to “factory defaults”, creating a new domain with “fresh” settings. You can also use this feature to clean up old, unused preference domains for applications which have been removed from your computer.

  1. Select one or more preference domains you like to delete in the table.
  2. Press the button [—] below the table or select the menu item Edit > Delete.
  3. Confirm that you really like to delete the selected domain(s).

Note: In certain cases, PrefEdit may be forced for technical reasons not to delete a domain completely, but only to “empty” it. Deleting means that all affected preference files will disappear from the system and the entry in the table Preference Domains will also be removed. Emptying means that all affected preference settings are going to be erased, but empty file entries could remain on the system. The entry in the table may also be kept. In both cases, the final effect will be the same: The content of the preference domain is erased completely and the associated application is reset to factory defaults.

The App version of PrefEdit can only delete entries from the scope current user. Removing entries from the all users scope won’t be possible, because Apple doesn’t permit any features in Apps which could have influence on the operating system or other users. This limitation does not apply to the standard edition of PrefEdit.

Searching for preference settings

If you like to check if the preference database contains an entry with a certain value, or if you want to know whether a preference setting with a certain name exists on your system, you can let PrefEdit search for all occurrences of an item in all domains. This is done with the feature Find Preference Setting.

Find Panel
Find Panel
  1. Select the menu item Edit > Find Preference Setting… or press the key combination ⌘ + ⇧ + F.
  2. Enter the text part you would like to find into the search field of the window Find Preference Setting.
  3. Select if you like to search in keys and values, in keys only, or in values only using the pop-up button. Remember that keys are the internal names used to identify a setting.
  4. Check whether the text should be compared in a case-sensitive way and set the Ignore case check mark accordingly.
  5. The pop-up button at the right of the Find panel can be used to specify if the entered text should be searched everywhere (Contains) or if the search should be restricted to keys/values that begin with this text (Starts with).
  6. Click the button Find or press the key .

The search will begin and all found entries will be listed in the lower half of the panel. There can be multiple matches per domain, and the entries can be nested, so the table will display the matches as a hierarchy. Use the disclosure triangles to navigate through the hits per domain. Note that the column Values shows all matches in textual form. This text is a description only and may not match the actual stored data type exactly. For example, the items of an array are presented as a single line, separated by spaces.

Double-clicking an entry in the table will open a new window with all preference settings for that domain. The found entry will automatically be preselected in the window.

You can cancel a running search operation any time by pressing the Find button again (now titled Stop).

It is not possible to search for entries of the types Date/Time or Binary Data because it is hardly possible to represent them using canonical textual descriptions. Boolean values can become part of a search if you specify 0 for “no” and 1 for “yes”.