Le Mie Tech Guides
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Launchpad Config

# Configurazione manuale del Launchpad di macOS

File di configurazione

/var/folders/q3/0/com.apple.dock.launchpad/db/db

Tabelle

  • dbinfo: informazioni generali sul database

    • id speciali delle varie pagine di root, holding page, dashboard (deprecata da macOS 10.15 Catalina)
    • flags utilizzate nei trigger
  • apps: tabella delle informazioni delle apps

    • item_id.INT: identificativo app
    • nome.CHAR
    • bundleid.CHAR
    • category_id.INT
    • moddate.INT
    • bookmark.BLOB (non si è capito cosa sia)
  • categories: elenco categorie (sembra non essere molto usato, forse con app del Mac App Store e in spotlight per indicizzare)

  • downloading_apps: tabella delle app in fase di download

  • app_sources: tabella dei tipi di uuid per fsevent

    • rowid.INT
    • uuid.VARCHAR
    • flags.INT
    • bookmark.BLOB
    • last_fsevent_id.INT
    • fsevent_uuid.VARCHAR
  • image_cache: tabella thumbnail applicazioni

    • item_id.INT: id applicazione
    • size_big.INT
    • size_mini.INT
    • image_data.BLOB: thumbnail della app in una pagina del launchpad
    • image_data_mini.BLOB: thumbnail quando è in una cartella
  • groups: tabella dei gruppi (pagine o cartelle)

    • item_id_INT: id componente (per identificarlo fra gli items)
    • category_id.INT
    • title.VARCHAR: nome della cartella (if any)

    Per ogni cartella/pagina vengono creati due record, uno con il titolo, che determina la posizione della cartella nel launchpad, e uno con id successivo che rappresenta la prima pagina della cartella (il relativo item dovrà puntare all’id principale della cartella)

  • items: tabella generale che raccoglie tutti gli elementi che vanno disposti dentro il launchpad

    • rowid.INT: id dell’elemento (app/gruppo)
    • uuid.VARCHAR: uuid dell’elemento per il file system
    • flags.INT: scopo sconosciuto, numeri senza riscontro in altre tabelle
    • type.INT: definisce il tipo di elemento (1-root, 2-folder root, 3-pagina/cartella, 4-app, 5-download, 6-widget)
    • parent_id:INT: elemento genitore che raccoglie la app (pagina o cartella)
    • ordering.INT: Posizione elemento all’interno del raccoglitore parent_id

    Per questa tabella sono specificati anche dei trigger per riordinare in fase di INSERT,UPDATE,DELETE

Ipotesi funzionamento del Launchpad

  1. Aggiunta di una app Quando viene installata una nuova applicazione, questa finisce direttamente nella pagina principale: viene creato il record in items con rowid pari all’id della app e parent_id della pagina libera (le pagine avranno come parent 1, corrispondente alla ROOTPAGE). Viene scatenato il trigger insert_item e viene corretto l’ordering delle app
  2. Spostamento di una app nella griglia del Launchpad Se una app viene spostata nella griglia, il suo ordinamento dovrà essere corretto di conseguenza, perciò si scatena il trigger update_items_order o update_items_order_backwards a seconda del movimento
  3. Una app viene spostata in un’altra pagina Spostando la app in un’altra pagina viene cambiato il parent_id della app, che viene aggiornato dal trigger update_item_parent
  4. Viene creata una cartella con le app
    • Per creare una cartella c’è bisogno di posizionare il riquadro bianco nella griglia e successivamente associare alla sua griglia interna le applicazioni desiderate. Vengono quindi creati due records nella tabella groups: il primo definisce la cartella e il suo nome, il secondo (senza nome)è l’id della prima pagina della cartella a cui faranno riferimento le app.
    • Negli items la cartella viene registrata sotto la pagina in cui deve vivere, il puntatore punta all’id di essa con ordering 0 e il parent_id delle app nella cartella viene aggiornato con quello del puntatore. Il trigger aggiorna poi l’ordering delle app in cartella.
  5. Rimozione di un’app Quando una app viene disinstallata, interviene il trigger item_deleted che rimuove i relativi record dalla tabella apps, groups e downloading_apps e riordina le rimanenti

TODO

  • Rimane da capire cosa sono le flags degli items
  • Cosa succede se sforo l’ordering massimo?
  • Capire come usare uuidgen

Resources

How Launchpad stores configuration by Fotis Gimian

Dotfiles in 100 seconds