pldiff
This is for when you want to figure out what plists are being changed when you set preferences on your mac.
For example, this is from when I turned on three-finger-drag:
$ plist-diff ~/Library/Preferences
ByHost/.GlobalPreferences.B32EBF71-9C71-528A-A64E-8E54224F733A.plist:
-root["com.apple.mouse.tapBehavior"]: 2 (uint64)
+root["com.apple.mouse.tapBehavior"]: 1 (uint64)
-root["com.apple.trackpad.threeFingerDragGesture"]: false (bool)
+root["com.apple.trackpad.threeFingerDragGesture"]: true (bool)
com.apple.AppleMultitouchTrackpad.plist:
-root["Dragging"]: true (bool)
+root["Dragging"]: false (bool)
-root["TrackpadThreeFingerDrag"]: false (bool)
+root["TrackpadThreeFingerDrag"]: true (bool)
com.apple.driver.AppleBluetoothMultitouch.trackpad.plist:
-root["Dragging"]: true (bool)
+root["Dragging"]: false (bool)
-root["TrackpadThreeFingerDrag"]: false (bool)
+root["TrackpadThreeFingerDrag"]: true (bool)
Usage: plist-diff <watchtree> [<othertree>]
plist-diff watches a directory tree and reports changes to stdout every 2 seconds.
It will also compare two directory trees with each other if you give it a second directory tree.
On a mac, you can watch for changes to preferences with:
plist-diff ~/Library/Preferences
Arguments:
<watchtree> directory tree (or file) to watch for changes
[<othertree>] directory tree (or file) to compare instead of watching the first tree for
changes
Flags:
-h, --help Show context-sensitive help.
--timestamps include timestamp data in diffs. timestamps are ignored by default
--permissions-errors return an error when a file cannot be opened due to insufficient
permissions. these errors are ignored by default
--version output the plist-diff version and exit