So i've been searching around and trying to figure this out but can't seem to.
I know that the launchpad SQLite db is stored at ~/Library/Application Support/Dock/some-uuid.db
(ref), but as best I can tell it doesn't seem to include any information about folders created in launchpad.
Does anyone know where this information is stored, and in what format?
Edit: Found the location, details in my answer below. The only bits I can't figure out now are:
- How to programatically create a new folder and move apps into it (using this db)
What thedb-shm
anddb-wal
files are used for.- SQLite temp files (write ahead log & shared memory files)
- Whether
~/Library/Application Support/Dock/some-uuid.db
is used at all anymore, or if it was just leftover from an osx upgrade.
Best Answer
Ok, I think i've found it. Turns out that (at least under El Capitan) things are a little different.
This AskDifferent answer by Greg Hacke pointed me in the right direction.
It seems the databases are stored in
$TMPDIR/../0/com.apple.dock.launchpad/db/
, with the main sqlite db being aptly nameddb
.(After reading Geoff Hackworth's AskDifferent response, it seems a better way to get the path would be
getconf DARWIN_USER_DIR
rather than$TMPDIR/../0/
)Editing this with a sqlite GUI showed that the
groups
table stores the folders, withtitle
holding the folder name.After making any desired changes, and writing them back to the db, we still need to do a
killall Dock
to refresh the launchpad screen.Some observations:
title
(set to null), so not really sure what they are for.title
field in theapps
table we can change the display name of the app.