Just one more note: You can update the database in your app, but that will have no effect as the Dock will not know about it (you change it behind its back). exit (note the leading period!) and hit enter (CTRL+C will not work). Just one tip: You exit the sqlite client by typing. Of course you can link your App against the SQLite library and do all that with library calls, but how to use SQLite and the SQL syntax for queries and updating data are, of course, way beyond the scope of this answer. as every display can have an own background image), UID2 is optional (sometimes it is missing, which probably means all spaces of that display) and it is the UID of a space (every display on OS X can have multiple spaces and every space can have an own background iamge) and is the path to the picture (for this specific space on this specific display). the display of your MacBook, an external display, etc. JOIN spaces ON pictures.space_id=spaces.ROWID
JOIN displays ON pictures.display_id=displays.ROWID JOIN pictures ON preferences.picture_id=pictures.ROWID JOIN data ON preferences.data_id=data.ROWID
You can open this file in Terminal like this sqlite3 "/Application Support/Dock/desktoppicture.db"Īnd then run the following SELECT: SELECT display_uuid,space_uuid,value
Starting with Mavericks, Apple writes the Desktop images to /Users//Application Support/Dock/desktoppicture.db