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
PlistBuddy
overdefaults
?
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. plist
will be watching for any plist file changes and will generate PlistBuddy
commands. 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 PlistBuddy
command 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 plist
Can 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.