What is this tool all about?
This tool lets you manage plist files on macOS. It keeps an eye on changes in plist files and spits out PlistBuddy commands when you update preferences in macOS or apps. It's useful for turning those preference settings into a setup script, so you can have a reproducible environment.
Why the love for
PlistBuddyoverdefaults?
Unlike defaults write, PlistBuddy can handle nested preference values. But PlistBuddy is often ignored in favor of defaults write. That's why it's the "Pissed Buddy"!
How do I install the tool?
-
Make sure you're using a Mac with Apple silicon.
-
Install Homebrew.
-
Run this command in your terminal:
brew install 8ta4/plist/plist
How do I use the tool?
-
Open your terminal.
-
Run this command:
plist
That'll start the monitoring process for plist files.
-
Change some preferences in macOS, like your Dock settings.
plistwill be watching for any plist file changes and will generatePlistBuddycommands. You'll see a command like this in the tool's output:/usr/libexec/PlistBuddy -c "Delete ':autohide'" -c "Add ':autohide' bool 'true'" "$HOME/Library/Preferences/com.apple.dock.plist"
-
Copy and paste the generated
PlistBuddycommand into your setup script.
How can I monitor plist files that need root access?
To monitor plist files that need root permission (like those in /var/root), use sudo:
sudo plistCan this tool spot every preference change?
Nah, plist can't spot every preference change because some preferences are not stored in plist files. Some settings might be in databases or other formats that plist doesn't watch.