I use an application called BibDesk to maintain my BibTeX files. I basically have only two of these files: One for my own publications and one for any reference I have ever looked at or cited. I keep these in a particular folder that is under git version control and synchronize it across the computers I use. On all these computers I use BibDesk with exactly the same settings for automatically generated cite-keys and other goodies. So far so good. That’s not the story here.
Everything was working fine until very recently: Started to notice
that the application settings that Mac OS used to store in files like
~/Library/Preferences/*.plist
seem to have no effect any longer
under Mac OS Yosemite. In my particular use case, I care about the
file ~/Library/Preferences/edu.ucsd.cs.mmccrack.bibdesk.plist
and I
synchronize that using the same approach described above across
machines.
It turns out that Yosemite no longer seems to rely on these files for saving application preferences (although it does re-generate these if you delete them). So how can you still synchronize per-application preferences in Yosemite?
The answer lies, as so often, in the command line: There is a command line tool to extract preferences and to restore them. That is what one needs to use in cases like mine. The simple work-flow is basically as follows, and it should work for any app, not just BibDesk.
To make a backup into a file BibDesk-Preferences-Backup-File
of your
current preferences for an application (BibDesk in my example), use
defaults export edu.ucsd.cs.mmccrack.bibdesk - > BibDesk-Preferences-Backup-File
To restore the preferences for the same app from this very file, use
cat BibDesk-Preferences-Backup-File | defaults import edu.ucsd.cs.mmccrack.bibdesk -
If you have a different application you care about, you need its
app-id or domain and replace the text
edu.ucsd.cs.mmccrack.bibdesk
in the above commands by this id. To
find out what this id might look like in your own case, use
defaults domains
and look for the name of your application. To learn more about the defaults
utility, type
man defaults
And that’s already it.