2

Apple’s own web page indicates how to Edit property lists in Terminal on Mac. However is there a way to guess/find out an attribute or a process that I would like to modify but I don’t know the existence of?

In the case of the Dock position, I would have had to:

  1. Figure out that such a plist file exists (in this case com.apple.Dock.plist),
  2. Then I would have had to find the correct key (in this case orientation),
  3. Finally I would have had to find out the possible values (in this case left but right and down would also have been possible).

Then the whole command would have been (or is, in this case): defaults write com.apple.dock orientation left (then in terminal type killall Dock in order for the change to take place).

My questions:

  • If I would not have known that the dock position on the screen could be modified with the Terminal command defaults write com.apple.dock orientation left, would I have been able to figure it somehow out?
  • Is there a way to find a plist attribute or process by searching say for keywords?
  • If yes, how/with what tool?
  • Is there (or could we figure out) some kind of a step-by-step procedure to do that (preferably in Terminal)?

2 Answers 2

1

Each application can choose what to store in their plist files. The names of the keys and the different possible values are determined by the application, which can be developed by Apple or by any third party, and there is no standard.

To find different combination of keys/values usable in a plist file, you can do the following:

  1. Read the documentation. But often Apple doesn't provide full documentation.

  2. Find existing plist file and modifiy them, by deducing and trying different keys/values.

  3. Run the command strings on the executable to dump out all text. (Thanks to mmmmmm for this).

  4. Look at the source code if the application is open source, reverse engineer it otherwise.

2
  • 1
    Or a simple one that might work run strings on the executable to dump out all text
    – mmmmmm
    Oct 17, 2020 at 21:15
  • 1
    @mmmmmm, RE "Or a simple one that might work run strings on the executable to dump out all text" -- In this use case, this can be hit to miss and probably more likely a miss. For example, doing that on the executable for the Dock application yields nothing of value to determine the settings used in its PLIST file. Oct 17, 2020 at 23:32
0
  1. First, install the plist tool from https://github.com/8ta4/plist.
  2. Run the plist tool by typing plist in your terminal. It will start watching for changes in .plist files.
  3. Make changes in your System Preferences or specific apps to generate commands for.
  4. The plist tool will output the corresponding PlistBuddy commands that can be used to reproduce the changes you made.

For example, if you hide the Dock through your System Preferences, the plist tool will output a command like this:

/usr/libexec/PlistBuddy -c "Set ':autohide' 'true'" "$HOME/Library/Preferences/com.apple.dock.plist"

Check out this video to see the plist tool in action!

Before I made the plist tool, finding the Dock position was trial and error. The bottom position worked, but the top position didn't, nor did missionary.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .