¿Dónde almacena la información de la carpeta Launchpad? (base de datos, etc.?)

Así que he estado buscando y tratando de resolver esto, pero parece que no puedo.

Sé que el Launchpad SQLite db está almacenado en ~/Library/Application Support/Dock/some-uuid.db( ref ), pero lo mejor que puedo decir es que no parece incluir ninguna información sobre las carpetas creadas en el Launchpad.

¿Alguien sabe dónde se almacena esta información y en qué formato?

Editar: Encontré la ubicación, detalles en mi respuesta a continuación. Los únicos bits que no puedo entender ahora son:

  • Cómo crear programáticamente una nueva carpeta y mover aplicaciones a ella (usando esta base de datos)
  • Para qué se utilizan los archivos db-shmy .db-wal
  • Si ~/Library/Application Support/Dock/some-uuid.dbya se usa o si solo quedó de una actualización de osx.

Respuestas (1)

Vale, creo que lo he encontrado. Resulta que (al menos bajo El Capitán) las cosas son un poco diferentes.

Esta respuesta de AskDifferent de Greg Hacke me indicó la dirección correcta.

Parece que las bases de datos están almacenadas en $TMPDIR/../0/com.apple.dock.launchpad/db/, con el nombre principal de sqlite db db.

(Después de leer la respuesta AskDifferent de Geoff Hackworth , parece que una mejor manera de obtener la ruta sería en lugar de )getconf DARWIN_USER_DIR$TMPDIR/../0/

La edición de esto con una GUI de sqlite mostró que la groupstabla almacena las carpetas, manteniendo titleel nombre de la carpeta.

Después de realizar los cambios deseados y volver a escribirlos en la base de datos, todavía tenemos que hacer killall Dockpara actualizar la pantalla de la plataforma de lanzamiento.

Algunas observaciones:

  • Hay una serie de grupos que no tienen un title(establecido en nulo), por lo que no estoy seguro de para qué sirven.
  • Parece que simplemente crear una nueva entrada no hace que aparezca un grupo (¿tal vez porque sería una 'carpeta vacía'?).
    • En este caso, ¿cómo podemos crear una nueva carpeta y mover aplicaciones desde la base de datos?
  • Al editar el titlecampo en la appstabla, podemos cambiar el nombre para mostrar de la aplicación.