Il suffit d'utiliser l'application graphique Alacarte.
Dans les commandes suivantes les chemins sont en dur, pensez à remplacer /home/<user>/ par le chemin de votre répertoire utilisateur…
<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.
É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
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> 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.