Wo wird die Launchpad-Datenbank gespeichert und gibt es eine Möglichkeit, sie direkt zu bearbeiten?

Beim Erkunden der neuen Launchpad-Funktion scheint es zunächst so, als würde sie ihren Inhalt hauptsächlich aus dem Ordner "Programme" beziehen.

Es scheint jedoch so zu sein, dass die Launchpad-Datenbank von woanders gezogen wird.

Wenn Sie beispielsweise ein Spiel über Steam installieren, wird das Spiel selbst nicht im Ordner „Programme“ angezeigt, sondern im Launchpad. In diesem speziellen Fall möchte ich, dass es sich im Launchpad befindet. Die Nachteile sind jedoch, dass ich das Spiel nicht vom Launchpad entfernen und das Symbol nicht ändern kann.

Wo kann ich jedes Launchpad-Vorkommen direkt anzeigen und ändern ?

Antworten (2)

Die Launchpad-Datenbank befindet sich unter~/Library/Application Support/Dock/*some-hex-name*.db

Um es zu bearbeiten, müssen Sie SQLite verwenden. Sie können dies in der Befehlszeile oder mit einer grafischen Oberfläche tun.

In dieser Ask Different-Frage finden Sie Empfehlungen für eine GUI-App.


MacOS Sierra und neuer

Unter macOS Sierra und neuer existiert die alte Launchpad-Datenbank nicht mehr. Stattdessen hat jeder Benutzer irgendwo im Inneren seine persönliche Launchpad-Datenbank /private/var/folders.

So finden Sie die Datenbank

Das /private/var/foldersVerzeichnis enthält viele kryptische Ordnernamen, aber Sie können den Pfad zum persönlichen Ordner Ihres Benutzers mit identifizieren getconf DARWIN_USER_DIR. Sie werden vielleicht bemerken, dass dieser Befehl einen Pfad innerhalb /var/foldersstatt zurückgibt /private/var/folders, aber /varein symbolischer Link zu ist /private/var.

Der folgende einzeilige Befehl gibt den Pfad zur Datenbank zurück:

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

Nachdem Sie den Pfad zur neuen Datenbank haben, können Sie ihn wie zuvor weiter bearbeiten (z. B. mit sqlite3Befehl).

Vielen Dank an Chris Perry von Jamf Nation für das Teilen seiner Erkenntnisse! Siehe seinen Beitrag hier .

Danke, das ist in der Tat der Ort der Datenbank, obwohl nicht jede Tabelle wirklich lesbar ist. Apps scheinen primär in der Tabelle gespeichert zu sein appsund das Umbenennen dort sollte wohl funktionieren. Das Bearbeiten der Symbole sollte sich jedoch als etwas schwieriger erweisen.
Update für 2016: Ich verwende macOS Sierra 10.12 und es gibt nur eine Datei in meinem ~/Library/Application Support/DockVerzeichnis namens desktop picture.db. Ich kann die Dock-Datenbank nicht finden.
RE: Ab macOS Sierra findgab mir Ihr Befehl zwei Verzeichnisse, von denen nur eines richtig war. Ich vermute, dass der nicht verwendete Ordner, der zurückgegeben wurde, von meinem vorherigen Mac stammte, von dem ich alle meine Daten migriert habe. Anstatt mit find, um die Datenbank pro Benutzer zu finden, kann der Ordner des aktuellen Benutzers unter /var/folders mit gefunden werden getconf DARWIN_USER_DIR. (/var symbolische Links zu /private/var). Ein besserer Einzeiler zur Rückgabe des Datenbankpfads könnte seinecho $(getconf DARWIN_USER_DIR)/com.apple.dock.launchpad/db/db

Entschuldigen Sie, dass Sie dies an einen 2 Jahre alten Thread angeheftet haben, aber FWIW, der Wert für some-hex-name~/Library/Preferences/ByHost/com.apple.dock.*another-hex-name*.plist wird in als gespeichert LaunchPadDBName.

Es scheint, als ob die Zahl selbst nicht wichtig ist und tatsächlich zufällig sein kann; aber es muss wahrscheinlich dem UUID-Format entsprechen. Wenn Sie diesen Wert für einen Benutzer ändern und sich dann anmelden, wird ein neuer .dberstellt, wenn er noch nicht vorhanden ist.

Sie können dies verwenden, um mehrere Konten so einzustellen, dass sie eine vordefinierte LaunchPad-Konfiguration usw. verwenden.

other-hex-name “ ist die UUID des Computers


Eine einfachere Möglichkeit, auf diesen Wert zuzugreifen, ist die Verwendung von:

defaults -currentHost read com.apple.dock LaunchPadDBName

Dies nutzt das -currentHostArgument des defaultsBefehls:

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.
Falls jemand anderes darauf stößt, können Sie mit noch einfacher darauf zugreifendefaults -currentHost read com.apple.dock LaunchPadDBName