Gnome: épurer le menu des applications Qt/KDE
La possibilité d’avoir plusieurs environnements graphique est un vrai plus dans un système surtout si ce dernier est multi-utilisateur, mais alors, qu’est ce que c’est ennuyeux d’avoir ses menus pollués par les applications utilisés par d’autre…
Personnellement, j’utilise GNOME, alors des applications GTK, ça passe encore, mais des applications Qt ou KDE qui me lancent l’armée kdeinit, ça me gonfle un peu. (ceci n’est pas un appel à troll, gnome ayant son armée aussi, mais vu qu’elle occupe déjà le territoire…)
Enfin bref, tout ça pour arriver au fait que je veux virer les applications non GTK des menus, ça tombe bien, le menu de GNOME (comme d’autre) est personnalisable, il suffit de cliquer dessus avec le bouton droit puis Éditer les menus, mais alors qu’est ce que c’est lourd, faut aller dans chaque sous-menu et virer une par une les applications, et dès qu’il y a une nouvelle installation, repasser par cette case… très lourd.
Alors comment faire autrement ? Heureusement, les menus comme pleins d’autres éléments du bureau, obéissent à un standard de freedesktop.org que GNOME ou KDE par exemple respectent.
Par défaut (sauf modification des variables $XDG_*), 2 menus existent pour gnome et sont définis dans:
- Applications
- Système: /etc/xdg/menus/applications.menu
- Utilisateur: ~/.config/menus/applications.menu
- Paramètres (préférences et administration):
- Système: /etc/xdg/menus/settings.menu
- Utilisateur: ~/.config/menus/settings.menu
Du coup, il suffit de créer les 2 fichiers suivants:
- ~/.config/menus/applications.menu:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> <menu> <name>Applications</name> <mergeFile type="parent">/etc/xdg/menus/applications.menu</mergeFile> <menu> <name>Archlinux</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Accessories</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Universal Access</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Development</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Education</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Games</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Graphics</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Internet</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Multimedia</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Office</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>System</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> <menu> <name>Other</name> <exclude><or><category>Qt</category><category>KDE</category></or></exclude> </menu> </menu>
- ~/.config/menus/settings.menu:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> <menu> <name>Desktop</name> <mergeFile type="parent">/etc/xdg/menus/settings.menu</mergeFile> <menu> <name>Preferences</name> <exclude><not><category>GNOME</category></not></exclude> </menu> <menu> <name>Administration</name> <exclude><not><category>GNOME</category></not></exclude> </menu> </menu>
Et hop, on se retrouve avec un menu pour GNOME sans applications KDE ou Qt, et puis comme KDE fait bien les choses, si vous décidez un jour de changer de bureau, KDE utilisant un préfixe spécifique ( »kde »), le menu de KDE n’en est pas affecté.