19

When exploring the new Launchpad feature, at first, it would seem as is it draws it's content primarily from the Programs folder.

It seems to be the case, however, that the Launchpad database is drawn from somewhere else.

For example, when installing a game through Steam, the game itself will not show up in the Programs folder, but will show up in Launchpad. In this particular case, I want it to be in Launchpad. The drawbacks, however, are that I am unable to remove the game from Launchpad and am unable to change the icon.

Where can I directly view and modify every Launchpad occurrence?

2 Answers 2

24

The Launchpad database is located at ~/Library/Application Support/Dock/*some-hex-name*.db

To edit it, you'll have to use SQLite. You can do this on the command line, or with a graphic interface.

See this Ask Different question for recommendations for a GUI app.


MacOS Sierra and newer

On macOS Sierra and newer the old launchpad database does not exists anymore. Instead every user has his personal launchpad database somewhere inside /private/var/folders.

How to find the database

The /private/var/folders directory contains lots of cryptic folder names, but you can identify the path to your user's personal folder using getconf DARWIN_USER_DIR. You may note this command returns a path inside /var/folders instead of /private/var/folders, but /var is a symlink to /private/var.

The following one-line command will return the path to the database:

 echo /private$(getconf DARWIN_USER_DIR)com.apple.dock.launchpad/db/db

After you have the path to the new database, you can continue to edit it like before (e.g. using sqlite3 command).

Thanks to Chris Perry from Jamf Nation for sharing what he found! See his post here.

3
  • Thanks, this indeed is the location of the database, although not every table is really readable. Apps seem to be primarily stored in the table apps and renaming there should probably work. Editing the icons, though, should prove to be a bit harder. Jul 25, 2011 at 6:33
  • 2
    Update for 2016: I'm running macOS Sierra 10.12 and there is only one file under my ~/Library/Application Support/Dock directory called desktop picture.db. I can't find the dock database.
    – Dai
    Dec 11, 2016 at 7:43
  • 2
    RE: macOS Sierra onwards, your find command gave me two directories, only one of which was correct. I suspect the not-in-use folder that was returned was from my previous Mac which I migrated all my data off of. Rather than using find to locate the per-user database, the current user's folder under /var/folders can be located with getconf DARWIN_USER_DIR. (/var symlinks to /private/var). A better one-liner to return the database path might be echo $(getconf DARWIN_USER_DIR)/com.apple.dock.launchpad/db/db Aug 25, 2021 at 16:45
8

Apologies for tacking this on to a 2-year old thread, but FWIW the value for some-hex-name is stored in ~/Library/Preferences/ByHost/com.apple.dock.*another-hex-name*.plist as LaunchPadDBName.

It seems like the number itself is not important, and may in fact be random; but, it may probably needs to conform to the UUID format. Changing this value for a user, then logging in, will result in a new .db being created if it does not already exist.

You can use this to set multiple accounts to use a pre-defined LaunchPad configuration, etc.

"another-hex-name" is the UUID of the computer


A simpler way to access this value is to use:

defaults -currentHost read com.apple.dock LaunchPadDBName

This makes use of the -currentHost argument of the defaults command:

Host  Optionally you can restrict changes to a specific host
      by default changes will apply to any host.
      [-host hostname]  Restrict to a remote machine.
      [-currentHost]    Restrict to the host the user is currently logged into.
1
  • In case anyone else comes across this, you can access this even easier with defaults -currentHost read com.apple.dock LaunchPadDBName May 14, 2020 at 8:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .