I'll also say I really despise defaults now being the required way to change a plist. It's essentially impossible to edit keyed sub-dictionaries with Defaults, (you have to send what often ends up being a huge tree of data, weirdly formatted, to outright replace the entire dictionary)

afaik, apple's "recommended" way to adjust arrays and dictionaries is to use plistbuddy, which is included in some apple stuff even, but it is specifically NOT compatible with that cfprefs daemon madness.

The end result then is, there's NO approved (or reliable for that matter) way to edit a plist's dictionaries and arrays as of right now. I have a complex script that constructs base images from scratch, and it makes extensive adjustments to plists. For things that require buddy, it kills the prefs daemon immediately after making changes, forcing it to recache them from disk, instead of overwriting them. Works most of the time. Editing settings in open apps (like Finder) is still unreliable.


I work for the Department of Redundancy Department