Table des matières

, ,

Personnaliser le menu "Applications" de Gnome

Graphiquement

Il suffit d'utiliser l'application graphique Alacarte.

Manuellement

La documentation officielle de GNOME pour personnaliser le menu est ici.
Ce qui suit ci-dessous est beaucoup moins complet (et peut-être vétuste).

Dans les commandes suivantes les chemins sont en dur, pensez à remplacer /home/<user>/ par le chemin de votre répertoire utilisateur…

Copier un raccourci du bureau dans le menu

  1. copier le fichier .desktop dans ~/.local/share/applications
  2. éditer le fichier copié et supprimer la ligne “TryExec=” (je ne sais pas pourquoi, mais si on la laisse, l'entrée de menu n'apparait pas…)
  3. éditer le fichier ~/.config/menus/applications.menu et mettre un include là où on veut mettre notre item :
<Include>
	<Filename>Apache Start.desktop</Filename>
</Include>

(les espaces sont autorisés dans les noms)

L'entrée est ajoutée en fin de menu, pour la positionner ailleurs, voir plus bas la définition de l'ordre.

Définir un sous menu

Éditer le fichier ~/.config/menus/applications.menu et y définir le menu ainsi à l'emplacement souhaité (au même niveau que les autres ou entre des balises <Menu></Menu> pour faire un sous-menu d'un menu déjà existant :

<Menu>
	<Name>Serveurs</Name>
	<AppDir>/home/<user>/.local/share/applications</AppDir>
	<Include>
		<Filename>Apache Start.desktop</Filename>
	</Include>
	<Include>
		<Filename>Apache Stop.desktop</Filename>
	</Include>
</Menu>

On peut aussi rajouter un fichier qui va servir à définir différents paramètres pour ce sous-menu : le nom générique, le nom français, un commentaire, une icône particulière, etc. Pour cela, rajouter la directive <Directory>, après AppName par exemple :

<Directory>Serveurs.directory</Directory>

Ce fichier doit se trouver par défaut dans ~/.local/share/desktop-directories/ mais on peut le déplacer grâce à <DirectoryDir> :

<DirectoryDir>/votre/chemin/vers/le/répertoire/ou/il/se/trouve</DirectoryDir>

Une structure de base du fichier correspondant :

[Desktop Entry]
Comment=Lancements des serveurs
Name=Serveurs
Name[fr_FR]=Serveurs
Encoding=UTF-8
Comment[fr_FR]=
Icon[fr_FR]=<chemin absolu vers mon icone>.png
Type=Directory
Icon=<chemin absolu vers mon icone>.png

Ordonner un menu

L'ajout des entrées dans le menu se fait dans l'ordre des inclusions, si on veut mettre les entrées de menu dans un ordre particulier, on fait d'abord les inclusions et ensuite on définit l'ordre grâce à <Layout> :

<Include>
	<Filename>Apache Stop.desktop</Filename>
</Include>
<Include>
	<Filename>Apache Start.desktop</Filename>
</Include>
<Layout>
	<Filename>Apache Start.desktop</Filename>
	<Filename>Apache Stop.desktop</Filename>
	<Merge type="menus"/>
	<Merge type="files"/>
</Layout>

et voila le résultat !

Le menu simple créé ci-dessus :

Un sous-menu créé à partir des raccourcis du bureau, avec leurs icônes “dynamiques”, adaptées au thème d'icône en cours :

Note : Pour l'icône d'aide ci-dessus, dans le fichier .desktop correspondant on a :

Icon=help

Les directives <Exclude>

Les directives <Exclude> servent à exclure d'un menu certains éléments.

C'est notamment utile dans le cas d'un sous-menu : les éléments marqué en <Include> sont mis à la fois dans le menu et dans le sous-menu, on place donc des <Exclude>. Par exemple, dans le menu ci-dessus on retrouve les entrée d'IzPack dans Développement. Pour éviter ceci, voici le code utilisé :

<Menu>
	<Name>Development</Name>
	<AppDir>/home/<user>/.local/share/applications</AppDir>
	<Include>
		<Filename>Eclipse.desktop</Filename>
	</Include>
	<Menu>
		<Name>IzPack</Name>
		<Directory>IzPack.directory</Directory>
		<Include>
			<Filename>Izpack3.9 Uninstaller.desktop</Filename>
		</Include>
		<Include>
			<Filename>IzPack3.9 Java Documentation.desktop</Filename>
		</Include>
		<Include>
			<Filename>NanoXML Documentation.desktop</Filename>
		</Include>
		<Include>
			<Filename>IzPack3.9 XHtml Documentation.desktop</Filename>
		</Include>
		<Layout>
			<Filename>IzPack3.9 Java Documentation.desktop</Filename>
			<Filename>IzPack3.9 XHtml Documentation.desktop</Filename>
			<Filename>NanoXML Documentation.desktop</Filename>
			<Filename>Izpack3.9 Uninstaller.desktop</Filename>
			<Merge type="menus"/>
			<Merge type="files"/>
		</Layout>
	</Menu>
	<Exclude>
		<Filename>Izpack3.9 Uninstaller.desktop</Filename>
	</Exclude>
	<Exclude>
		<Filename>IzPack3.9 Java Documentation.desktop</Filename>
	</Exclude>
	<Exclude>
		<Filename>NanoXML Documentation.desktop</Filename>
	</Exclude>
	<Exclude>
		<Filename>IzPack3.9 XHtml Documentation.desktop</Filename>
	</Exclude>
</Menu>

Le résultat :

Certaines directives Exclude sont des résidus de suppression d'entrée via Alacarte, elles peuvent être supprimées, ainsi que les fichiers .desktop correspondant.

Voir aussi

Pour aller plus loin:


Contributeurs : wildmary, sheep