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.

Privacy Policy Settings of your Mac

Background Information

As of version 10.14 of the operating system, Apple has added a new level of system protection: Nearly all applications are now running in a sandboxed environment (different from the application sandbox that was mentioned above), which means that each and every request an application sends to the operating system is monitored and checked before it will be executed. Not only Apps from the Mac App Store, but all other software as well, including some of Apple’s own applications, are no longer free in executing any command that would otherwise be authorized by user permissions. Access to data that could affect system security or a user’s privacy needs explicit approval by an administrator of the Mac first. This approval is granted per program. For example, the administrator could say “program A has permission to access a user’s Photos database”. Such a privacy definition will then become valid for the entire computer and any user account, for all copies of program A. If program A is running while its privacy settings are changed, the program must be restarted before the new policy takes effect.

The settings for privacy policy are a powerful tool to prevent applications from accessing critical data behind the user’s back, no matter whether intentionally or unintentionally. This is especially true for unwanted applications such as adware, computer viruses, Trojan Horses, or other types of malware. However, this additional protection comes with additional work for administrators. After new software has been installed, it should be checked whether the application needs access to protected parts of the Mac in order to fulfill its duties. If the necessary approval is not granted, the affected application cannot execute specific operations. Such operations may either silently fail, or they are stopped with an error message. The necessary approval must be given by an administrator and the application must be restarted.

Privacy Settings affecting PrefEdit

PrefEdit is designed to work with a user’s preference settings. This may include settings critical to a user’s privacy, for example her preferences for Safari. Such files are protected by macOS. Without prior approval, PrefEdit cannot “see” these files, nor their contents. This means the overview window may not show all domains, but omit those which are privacy-protected by macOS.

PrefEdit will give you a warning in red in the domain overview window if it detects that it may not see all files. The warning is shown right after startup, so you have the chance to fix this issue before you start working with preference settings.

In order not to risk that PrefEdit may omit important files, the following privacy approval must be granted:

Changing the privacy settings

If you like to approve full disk access for PrefEdit, perform the following steps:

Steps for macOS 13 Ventura:
  1. Launch System Settings.
  2. Open the pane Privacy & Security.
  3. Select the item Full Disk Access.
  4. Check if an entry for PrefEdit is in the table. If yes, set its switch to the on position. If no, click the button + below the list of apps and add PrefEdit to the table.
  5. Relaunch PrefEdit.
Steps for older versions of macOS:
  1. Launch System Preferences.
  2. Open the pane Security & Privacy.
  3. Go the tab item Privacy.
  4. Click the lock and identify yourself as user with administrative permissions.
  5. Select the item Full Disk Access.
  6. Check if an entry for PrefEdit is in the table. If yes, set a check mark next to it. If no, click the button + below the list of apps and add PrefEdit to the table.
  7. Relaunch PrefEdit.

This complex procedure has been under a lot of criticism by third-party software companies, but Apple was not willing to change or simplify it.

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 click 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:

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. Click 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 clicking 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”.