How to Group Apps in GNOME Shell Overview

When you click on Activities to launch GNOME Shell Overview, you’d see all installed applications are listed alphabetically. While these apps are presented in a flat grid, GNOME Shell does supports grouping apps in a so-called AppFolder. However, only two AppFolders are available by default: Sundry and Utilities.

Now in this article I will show you how to create a new AppFolder and how to move applications into it.

The AppFolder configurations are stored in dconf. Here we will use gsettings command in Terminal. If you feel more comfortable using graphical user interface, you could install and use dconf-editor program. Simply refer to the path and key described below.

Creating an AppFolder

The list of AppFolders to group applications are stored in org.gnome.desktop.app-folders > folder-children.

Before adding the folder name, we should get the current values first:

gsettings get org.gnome.desktop.app-folders folder-children

Now this will return something like:

['Sundry', 'Utilities']

Let’s say we want to group all games in a folder called “Games”.

gsettings set org.gnome.desktop.app-folders folder-children "['Sundry', 'Utilities', 'Games']"

The above command only list which folders to be included in GNOME Shell Overview. Information related to the folder itself is stored under org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folder/folders/FOLDER-NAME/ (change FOLDER-NAME with the actual folder name above. In this case, Games).

The folder name above basically functions as an identifier. It will not be displayed on the Overview. To make a label on the folder:

gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folder/folders/Games/ name 'Games'

Manually adding apps into AppFolder

To add apps into the newly created Games folder, we will first need to find out the actual .desktop entry file name of the apps. These .desktop entry are files that represents every app in the launcher on GNOME Shell Overview. They are located either in /usr/share/applications/ folder or /home/USER/.local/share/applications/ folder.

For example, we will add Steam and PlayOnLinux apps into the Games folder. The .desktop file name for these are steam.desktop and PlayOnLinux.desktop respectfully. To add them:

gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folder/folders/Games/ apps "['PlayOnLinux.desktop', 'steam.desktop']"

When adding more applications, please remember to also include previously added apps as the above command will replace the previous value. You could always use get instead of set to get the current value.

Automatically add apps with a specific category

Usually every .desktop entry that is installed by applications has already contain a list of common categories. So rather than manually adding applications as in earlier step, we could alternatively add any apps that has this specific category. For games, the standard category name is Game.

To add Game category into our games folder:

gsettings set org.gnome.desktop.app-folders.folders:/org/gnome/desktop/app-folder/folders/Games/ categories "['Game']"

Excluding apps from a folder

With the above configuration, any apps containing Game category will be included in the folder. Perhaps we want to include all Steam games but not the Steam app itself. To exclude certain apps from a folder, specify the .desktop entry file name into excluded-apps key:

gsettings set org.gnome.desktop.app-folders.folders:/org/gnome/desktop/app-folder/folders/Games/ excluded-apps "['steam.desktop']"

Now, when you open the application list in GNOME Shell Overview, you will see the Games folder containing all the games as you have configured.

Bonus: Use a GUI to manage your app folders

If you are too lazy to type in all the steps above, there is an app specifically created to manage AppFolders named gnome-appfolders-manager. You can downloada it here or browse for latest releases.