Launchpad in macOS is definitely one of the most cumbersome apps to setup,although it can be pretty nice to have setup as it provides a little moreorganisation than adding your Applications folder to the Dock.
App organisation in Launchpad is the same as the iPad. You can only move one app at a time, if you drop an app on a full page, it will offset all the icons on the pages to the right. As the total of apps could be very important, as all bundles are automatically added by the app, you have to drag each app icon, one after the other, and scroll. In prior versions of MacOS X, users were able to refresh Launchpad contents by dumping a handful of database files, but in Mac OS and MacOS X 10.10.x onward, you’ll need to use a defaults command string to reset Launchpad contents and layout instead. How to Organize Apps on PC or Mac. This wikiHow teaches you how to organize the apps in the Windows Start Menu and the macOS Launchpad. Click the button. It's usually at the bottom-left corner of the screen. Four Apple MacOS apps are adapted iOS apps. It's only Apple that has the ability to move iOS apps to MacOS. But that'll change in 2019. Such as Launchpad and the dock.
The problem up until this point was understanding how it works so that we canbuild automation tools around it. However, this changes today as we explorethe way Launchpad works under tho hood :)
Macos Launchpad ResetConnecting to the Launchpad SQLite Database
Launchpad stores all of its data in an SQLite database which you can reach asfollows:
You may check out the entire database schema using the schema command:
The structure of Launchpad data is as follows:
Useful Tables
The dbinfo table provides the root id for each type of Launchpad data.
We then move onto the tables containing data about each type of object in Launchpad:
Finally, the items table references these 3 tables and contains orderingand parent assocations.
Walkthrough
dbinfo
apps:
widgets
groups
OK, so dbinfo, apps and widgets are clear, but the groups not so much. We knowthat groups 1, 3 and 5 are root groups (as shown by the dbinfo table), and 129looks like a folder, but we still don’t know what the rest are just yet.
Now, we’re about to look at the items table which ties all of thisinformation together. Before we take a look at items, it’s important thatsome concepts are explained:
The types are as follows:
Knowing all these things, let’s now take a look at all groups in the itemstable:
Note: DB refers to Dashboard and VERS refers to Version.
OK, so let’s attempt to break this down. We start with our root objects (asalso referenced in the dbinfo table):
So let’s start with the root id 1 (Launchpad) and check out all the pages which have a parent_id referencing it:
Here, we have the holding page first, and 3 pages with ids of 128, 134 and 135respectively. Please also note that unlike apps and widgets, the ordering ofthe actual page content starts at 1 due to the holding page occupying orderingof 0.
Similarly, let’s check out root id 3 (Dashboard) and all pages having it asas a parent_id:
Once again, a holding page and a single page with an id of 136. How to organize apps mac.
We next check out the Launchpad version root of 5 which just contains aholding page:
And finally, we check out the Other folder:
Here, the folder root has an id of 129 and is present on the page with an idof 128 (i.e. How to make a cgi app on mac. page 1). As seen earlier when examining the groups table,the folder name is contained on the folder root object.
The first page of the folder has an id of 130.
Now let’s check out the item relating to one of our apps 1Password, which hadan id of 9 as seen above in the apps table:
So this item has a parent_id of 134 (which is on 2). The ordering is set to 0which implies that it is the first item on page 2 (which indeed is the casewhen examining Launchpad).
Another bigger query you can run to see all items and their associationsis as follows:
This will show you each item along with the related app, widget or grouptitle. The item type indicates which field will contain a title.
Triggers
The SQLite database contains various triggers which set the ordering ofof items when an item is added, updated or deleted.
This for example allows you to insert rows into the items table withspecifying the ordering and have the database automatically set ordering of theitem to be the last on that page.
You may disable this trigger by setting a key calledignore_items_update_triggers in the dbinfo table as follows:
You may enable it again by setting the value to 0:
Please find below the most important triggers and some comments abouthow they work:
Closing Words
I am currently working on a little Python script which will allow you tobuild your Launchpad via a YAML file using my findings.
One of the trickiest things to deal with are the triggers and seeing as howno trigger really allows ordering to be set to 0, I think that any automationtools should disable triggers while building these tables.
Further to this, it is important to take care when deleting items as this alsodeletes the respective entry from the apps (or widgets) tables which is likelyundesirable.
Hope this was helpful and Merry Christmas everyone! :)
Launchpad is an easy way to find and open apps on your Mac. You can even arrange and organize your apps into folders. Open an appMacos Launchpad Moves Apps App
Organize apps
Add or remove an app
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |