Menu Applications dans Gnome Classic

Si vous utilisez la version classique de Gnome sous Linux, le menu « Applications » est votre ami. Ce menu, qui présente les applications installées, regroupées par type, se génère automatiquement. Vous pouvez néanmoins le personnaliser. Nous allons voir ici comment faire manuellement, sans passer par des outils tels que alacarte ou menulibre.

J’aime travailler par »workspace ». Dans le premier workspace j’ai mes applications quotidiennes (mail, internet, gedit avec mes notes, calibre,…) que je ferme le soir. Dans le 2e workspace j’ai mes applications de développement (JEdit, Meld, internet pour l’aide) que je ferme quand j’ai fini de travailler. Voyons comment faire pour pouvoir lancer ces groupes d’applications en un click, comme sur la photo.

Capture d'écran du menu Applications

Capture d’écran du menu Applications

Les fichiers bash

Tout d’abord, il va falloir créer 2 fichiers bash qui vont lancer les applications pour le workspace de base et le workspace et le workspace de développement. Je crée ces fichiers dans Home/Documents/Linux. Voici ce que contient le premier fichier :

#!/bin/sh
#lancement des programmes du workspace de base
thunderbird </dev/null &>/dev/null &
firefox-esr </dev/null &>/dev/null &
gedit </dev/null &>/dev/null &
calibre </dev/null &>/dev/null &

Je le nomme wksp_basic.sh et je lui donne les droits d’exécution.
Je vous passe les détails du 2e fichier…

Pour tester, on clique dessus. Ca fonctionne. Parfait.

Les applications

Chaque application correspond à un fichier *.desktop situé dans /home/.local/share/applications/ pour ce qui est spécifique à l’utilisateur courant et /usr/share/applications/ pour les applications communes à tous les utilisateurs.
Ces fichiers de configuration sont au format texte. Chaque fichier précise a quelle(s) catégorie(s) appartient l’application par une entrée Categories.
Les fichiers desktop des applications sont automatiquement installés avec leur paquet mais vous pourriez avoir envie d’ajouter une application pour lancer un fichier batch ou toute autre outils que vous avez créé.
Vous l’aurez compris, c’est très simple : il s’agit juste d’ajouter un nouveau fichier *.desktop dans le répertoire local ou partagé (si on a les droits root), par exemple en s’inspirant d’une autre application, modifier son nom (« Name ») et la manière de la lancer (« Exec »).
Je crée donc un fichier desktop pour wksp_basic.sh, que je nomme Basics.desktop et dont voici le contenu :

[Desktop Entry]
Version=1.1
Type=Application
Name=Basics
Comment=A small descriptive blurb about this application.
Icon=applications-other
Exec=/home/audrey/Documents/Linux/wksp_basic.sh
Actions=
Categories=Workspaces;

Comme il n’y a pas encore de répertoire « Workspaces », on ne le verra pas tout de suite mais on continue…

Les répertoires

Les catégories du menu correspondent aux catégories des applications. Chaque répertoire correspond à un fichier *.directory situé dans /home/.local/share/desktop-directories/ pour ce qui est spécifique à l’utilisateur courant et /usr/share/desktop-directories/ pour ce qui est commun à tous les utilisateurs.
Ces fichiers de configuration sont aussi au format texte.
Je crée un nouveau fichier Workspace.directory qui contient ces lignes :

[Desktop Entry]
Version=1.1
Type=Directory
Name=Workspaces
Comment=Mes workspaces
Icon=folder

Menu personnel

Pour que tout celà apparaisse dans le menu, il faut aller éditer le fichier /home/.config/menus/gnome-applications.menu
Pour chaque catégorie, vous avez une entrée <Menu> qui contient les applications dans l’ordre qui sera affiché
On va donc en ajouter une pour la partie Workspaces :

<Menu>
<Name>Workspaces</Name>
<Directory>Workspaces.directory</Directory>
<DirectoryDir>/home/audrey/.local/share/desktop-directories</DirectoryDir>
<Include>

<Filename>basics.desktop</Filename>
<Filename>development.desktop</Filename>
</Include>
<Layout>
<Merge type="menus"/>
<Merge type="files"/>
</Layout>
</Menu>

Voilà, on a maintenant un nouveau menu « Workspaces » qui lance les bash des applications.
Si on veut que « Workspaces » soit inséré ailleurs dans le menu, c’est en fin de fichier que ça se passe. On ajoute une ligne telle que

	<Menuname>Workspaces</Menuname>

dans la partie <layout> et voilà.
C’est propre, c’est simple, c’est efficace.