Editing Preference Settings or Property Lists

The main task of PrefEdit is to give users the possibility to view the full set of preference settings for a given application and to make changes to the settings when necessary. To open the settings of a preference domain, double-click the related line in the table of the preference domains window, or use the feature Find Preference Setting to double-click a line of the search results. A window displaying all current settings of the selected domain will open. If multiple scopes are available for a domain, e.g. settings for all users and settings for your user account only, the affected files will be opened in multiple windows.

The table in the lower part of the window lists all preference settings currently stored for that domain and corresponding scope in the preference database. The column Property Key displays the name of each setting, Value its current value, and Type the data type for that value. A check mark in the column Managed indicates that the respective setting is currently under control of the Managed Client feature of macOS, so it may be automatically overwritten even if you temporarily change its value.

The scope of the preference settings with regard to the aspects application, user, and computer are shown in a small text line above the table.

Preference Settings
Preference Settings

If you have permission to do so, you can change any aspect of a preference setting. Just click on key, type or value to edit the contents of those fields. Nested entries like dictionaries or arrays can be opened by clicking on the disclosure triangles displayed in front of the respective lines.

You can add and remove settings without limitation. Removing a setting is equivalent to resetting it to factory defaults. The next time the application owning this preference domain is started, it will notice that the setting is missing and will use its own predefined default value for it.

Items of the types dictionary or array can be strongly nested. It can be tedious work to click all disclosure triangles to navigate to elements deeper in the hierarchy. To simplify that task, you can select an item at an upper level in the hierarchy and open all nested child entries by a single operation. Select the menu item Edit > Fully Expand Entry to do so. The corresponding feature to collapse all entries of a hierarchy is also available. Instead of using the main menu, you can alternatively use the context menu via the right mouse button.

All changes you make to a preference domain usually take effect immediately (although this doesn’t mean that the application belonging to this domain is immediately taking notice of your changes). This is compliant with the behavior which Apple stipulates for up-to-date versions of macOS. You don’t need to care about saving data. However, it is still possible to store changes “explicitly and immediately” as you may be used to from classic applications. Select the menu item File > Save or press the key combination ⌘ + S.

When saving preference files manually, PrefEdit may sometimes show a warning message indicating that some other application has modified the settings while you were editing them, so there could be a conflict between the version you are saving and the version currently on disk. You can choose which version to keep in this case. Such a situation can occur when the application associated with the preference settings is currently running or was running in a short time frame before opening the file. As noted in the introduction, you should thus avoid making changes to preferences when the corresponding application is active at the same time.

Working with property list files

You can not only edit preference settings, but any file which is using the property list format (plist) of macOS. Just double-click the file in the Finder, or select the menu item File > Open (⌘ + O) in PrefEdit. The window to review the contents of the file will open.

In case you are opening a general property list file which is not being used as store for preference settings, the text line describing the scope above the table will be missing. Instead, you will find a remark whether the file could theoretically be used as a preference file or not.

The column Managed is always empty when working on a general property list file.

It is technically possible to extend the official property list definition, permitting values of additional data types, for example. This means a file could contain more than the eight permitted data types outlined in the introductory chapter. For a property list in text format, this can be done by introducing new XML tags. For a property list in binary format, this can be implemented by encoding data in new record types. In both cases, the resulting files are no longer compliant with the official property list definition, so only the applications that created them can fully “understand” their contents. In practice, such files may unfortunately even have the path extension .plist although they are no true property list files. When you try to open such a proprietary file with PrefEdit, you will receive a warning that the file is invalid. However, in many cases, PrefEdit will try its best to decode the contents of the file nevertheless. If a file maintains the basic structure of a property list, but uses proprietary data types, PrefEdit will open an interpreted version of this file as untitled document. In this interpreted version, all values with invalid data types are replaced by strings that contain a short, technical text description of the proprietary data. This can help you to get a first impression of the file’s contents. Because the interpreted copy is a true property list, it can also be saved as new document. However, you should keep in mind that this is just a substitute representation where unknown values have been made readable to a certain extent. The readable version cannot replace the original file.

Undoing changes

Any changes you have made to data in a file can be undone completely. There are two different approaches:

Small changes can be reverted in single steps by using the menu item Edit > Undo or pressing ⌘ + Z. Each new call of this function will go back one more step in the past. If you mistakenly have undone one step too much, you can also revert this by selecting Edit > Redo or pressing ⌘ + ⇧ + Z.

The possibility to undo single operations stops at the point where the file was either opened or saved explicitly. If you like to go even further in the past and the respective modifications have been made by PrefEdit, you can use the feature Versions of the operating system to restore an old, saved variant of the file. Select the menu item File > Revert To > Last Opened to restore the file to the state when you originally opened it. You can also use the menu item File > Revert to > Browse All Versions to review earlier variants of the file in a time line and search for the point in time you like to restore. The user interface will resemble the Time Machine function of the operating system.

Depending on the operating system version you are using, small details in the operation of Versions, or the designations of menu items can slightly differ. To get more information about Versions, please search for the term Document Versions in the reference manual of your operating system version. You can open the manual via the item Help > Help Center in the Finder application.

Depending on operating system, you can use additional menu items or the title bar of the window to duplicate, rename, move, or protect the file. To save a file with a different name, select File > Duplicate and enter the desired name for the duplicate.

Launching corresponding applications

After you have made changes to a domain, you might like to check whether the modifications have the effect you intended. To make this easy, PrefEdit can launch the application which is corresponding with the domain. Just press the button Launch in the tool bar of the window.

You should always prefer to start a program with changed preference settings via PrefEdit and not via the Finder, Dock, Launchpad, Spotlight, Terminal, etc. PrefEdit uses technical means to force the launching application to respect all recent changes, which is not guaranteed otherwise. The details depend on the operating system version you are using.

The Launch button won’t be available if the preference domain is not linked to an application running at the graphical user interface of macOS. The button will also be missing if you have opened a property list file which is not used as a preference file.

If the button is disabled, this will indicate that the associated application is running already. Note that PrefEdit reflects the true state of the corresponding process, not the simplified user-oriented view of the Dock. For further information, please also the notes on live preference settings in the chapter on property list files.

Showing the complete preference search path

If you opened a file containing preference settings, the window will only show the entries which match a certain scope regarding users and computers. However, when you like to see all preference settings which currently take effect for a particular application, PrefEdit can evaluate the complete search path, as mentioned in the introduction. To do so, press the button Show full preference search path at the upper left corner of the window. A gliding sheet will appear as in the example picture below.

Showing effective preference settings by evaluating the search path
Showing effective preference settings by evaluating the search path

The listed items represent a snapshot created at the moment you pressed the button. The time of the snapshot is shown at the bottom left. This means data in this sheet won’t be updated live, even if the corresponding files change in the background.

Note that the window contains data from many files which may influence each other in complex fashion. To avoid confusion and inadvertent damage of settings, you cannot change any entries in this window. The first three columns in the window have the same structure and meaning as their counterparts in the property list window. The additional column Source indicates where each effective setting comes from. If a setting in the search path comes from the file you have currently opened in the attached window, this will be indicated by bold print. For settings that come from files other than the file currently open, you can press the corresponding arrow markers to open them in PrefEdit.

In many cases, entries shown in the table come from positions further back in the preference search path. This means by copying such an entry from this window to the attached main window, the property will raise its position in the search order. If you later edit the copied entry, giving it a new value, the new value will override the default value which was set at the scope lower in the search order. You can copy an entry as follows:

  1. Select an entry in the table of effective preference settings.
  2. Press the button Transfer to preferences….
  3. Confirm the operation.
  4. You can now edit the value of the transferred entry in the main window as desired.

The table showing the preference search path supports all standard Find features. Use the button OK to close the sheet.

Converting between file formats

An mentioned in the introduction, preference files and property list files can be stored in different file formats. PrefEdit can read all common formats. When saving a file, you can choose whether the XML format or the binary format should be used to store the data. You can convert from one format to the other by performing the following steps:

  1. Open the file in PrefEdit.
  2. Select the menu item File > Duplicate.
  3. Close the file which had been opened in step (1) by closing its window.
  4. Ensure that the window opened in step (2) is currently selected and choose File > Save.
  5. In the panel Save As, select the file from step (1) and choose the desired type at File Format. Click on the Save button.

The file has now been converted. Of course you could also enter a new file name in the Save As dialog to keep copies of the file in both formats.

Sorting data

XML is a format describing data in textual form. This means a property list stored in XML format implicitly defines a specific order in which the elements of the list appear within the text. This is not the case for binary format. Elements of type dictionary don’t have any predefined order, so macOS may sort them at random to optimize processing speed, making access as efficient as possible. These differences are respected by PrefEdit.

If a file is stored in XML format, PrefEdit will ensure that the order the elements appear in the file is matching the shown order in the window (top down). By default, the pop-up button in the upper right corner of the window will display the mode Keep sort order of file.

You can re-sort the columns Property Key and Type if you like. Just click once on the header of the respective table column to get an alphabetic sorting. Another click will cause sorting in reverse order. The pop-up button in the upper right corner will automatically change to Allow sorting by columns in that case. This sorting will only change the shown order of the items, not the physical order in the file. You can go back to the file order any time by selecting Keep sort order of file.

During the time the window is in mode Keep sort order of file, you can also change the actual, physical order of the items, however. Furthermore, after selecting the top line of a dictionary, you can let PrefEdit sort the dictionary in alphabetical order of its keys by selecting the menu item Edit > Sort Dictionary by Keys (or by the matching item in the context menu).

Changing the order of elements is possible for files in binary format, too. The new order may have no lasting effect on dictionaries however, because macOS may change the order during each save operation for efficiency reasons, as already mentioned.

Opening and saving of files without write permission

After opening a property list in a file for which you don’t have write permission, you may not be able to save changes. To avoid bad surprises, PrefEdit notifies you about such a problem with the file immediately after opening it.

You can review the contents of the file without problems. In addition, PrefEdit gives you the chance to make modifications and to store them later in the protected file. At the beginning, you will receive the warning message You cannot make changes to this file. Do you like to reopen it in a mode which allows you to override permission settings as administrative user? In case you answer No, the file will only be read. If you still try to make changes, you will be asked to create a duplicate (to be saved later at a different location where you actually have write permission).

In case your response is Yes, PrefEdit will allow you to make changes to the protected file (without duplicating it first). However, the following limitations will apply:

If you like, however, you can completely disable the feature mentioned in this section. This is useful if you often like to just review system-related property list files, but prefer not to change them. The question to re-open the file with privileged administrator access will be suppressed. Perform the following steps:

  1. Select the menu item PrefEdit > Preferences… or press ⌘ + ,.
  2. In the panel Preferences, set a check mark at Don’t ask for privileged operation when opening protected file.

Search for contents in the opened file

PrefEdit will display a standard macOS Find dialog in the upper part of the window, when you select the menu item Edit > Find > Find… or press the key combination ⌘ + F. You can search for all contents of the preference domain or property list, i.e. both for keys and values, but not for type names. In addition, values of type Boolean, Date/Time and Binary Data won’t be considered during search, because no obvious representation of them can be formulated as input text. Press the button Done to close the search dialog.

Searching contents in the open file
Searching contents in the open file

PrefEdit is fully compliant with the macOS design guidelines for search operations:

By clicking on the disclosure triangle next to the magnifying glass, you can specify additional search modes, e.g. case-sensitivity, search in the whole document, search for words, or search by regular expressions.

To search for settings in all preference domains, use the feature Find in Preferences instead.