Pour modifier la disposition du menu sous lxde de façon graphique, on peut installer lxmed. Cela permet pas mal d'opérations basiques : cacher certains items, réassigner les catégories, si elles sont dans celles par défaut de lxmed. Mais Lxmed n'ayant pas été mis à jour depuis longtemps, il souffre de certains bugs qui peuvent poser des soucis. Ne supprimez aucune entrée par son biais.
Il est donc tout aussi fiable d'éditer les fichiers à la main.
Les *desktop dans les dossiers systèmes (/usr/share/*
et /etc/xdg/menus/
sont écrasés lors des mises à jour. Il vaut mieux faire ses modifications sur la partie utilisateur, dans /home/<user>
, car cela ne sera pas affecté par les mises à jours. Le système regardera des deux côtés.
/etc/xdg/menus/
devient /home/<user>/.config/menus
/usr/share/applications
devient /home/<user>/.local/share/applications
/usr/share/desktop-directories
devient /home/<user>/.local/share/desktop-directories
Le plus simple étant de copier les fichiers *.desktop dans sa partie home, puis de les modifier si besoin. Ces fichiers ont généralement déjà des mots-clés alternatifs (tel que “WebBrowser”) et on peut donc se baser sur ça pour recatégoriser.
La liste des catégories officielles est sur https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry .
Pour ajouter une catégorie, copiez /etc/xdg/menus/lxde-applications.menu
en /home/<user>/.config/menus/lxde-applications.menu
, puis éditez ce fichier et copier puis modifier un de ses items.
nano /home/<user>/.config/menus/lxde-applications.menu
<!-- Security --> <Menu> <Name>Security</Name> <Directory>lxde-security.directory</Directory> <Include> <And> <Category>Security</Category> </And> </Include> </Menu> <!-- End Security -->
On peut directement modifier /usr/share/desktop-directories/lxde-security.directory
mais il vaut mieux faire ça dans le dossier local :
nano /home/<user>/.local/share/desktop-directories/lxde-security.directory
Paramétrez ensuite ce fichier afin d'afficher la traduction, de spécifier le type de contenu et de mettre une icône.
[Desktop Entry] Name=Security Name[fr]=Sécurité Name[en_CA]=Security Name[en_GB]=Security Icon=application-certificate Type=Directory
L'îcone doit se trouver dans votre thème d'îcone actuel, dans un dossier categories
, par exemple
/home/user/.icons/Baku/24x24/categories
Ou
/usr/share/icons/Adwaita/24x24/categories
Ou alors indiquez un chemin complet.
En principe le menu se met à jour dès qu'un item est enregistré, mais si vous avez des doutes sur le fait que le menu a été rafraichi :
lxpanelctl restart
Pour ma catégorie “Internet”, entre ma dizaine de navigateurs web et mon autre dizaine de clients de chat, j'ai du mal à trouver Transmission. Allons faire des sous-catégories !
On rouvre /home/<user>/.config/menus/lxde-applications.menu
et on rajoute une section “menu” avec le nom de notre sous-menu. Au passage, on va indiquer juste avant la catégorie “Webbrowser” comme ne devant pas être listée dans le premier menu “internet”, avec les balises “”<not>“” : cela évitera de dupliquer les entrées.
<!-- Internet --> <Menu> <Name>Internet</Name> <Directory>lxde-network.directory</Directory> <Include> <And> <Category>Network</Category> <Not><Category>WebBrowser</Category></Not> </And> </Include> <!-- Ajout du sous-menu --> <Menu> <Name>Web</Name> <Directory>lxde-network-web.directory</Directory> <Include> <And> <Category>WebBrowser</Category> </And> </Include> </Menu> </Menu> <!-- End Internet -->
Penser à créer /home/<user>/.local/share/desktop-directories/lxde-network-web.directory
[Desktop Entry] Name=Web Name[fr]=Web Name[en_CA]=Web Name[en_GB]=Web Icon=applications-internet Type=Directory
Il suffit de créer un fichier en .desktop
dans /home/<user>/.local/share/applications
puis de remplir ce qui nous semble nécessaire. On peut aussi copier l'item présent dans /usr/share/applications
dans son dossier local et le modifier.
Il suffit généralement de modifier la partie “Categories” dans le .desktop, par exemple en ajoutant “WebBrowser” dans les applications qu'on veut dans le sous-menu.
Exemple pour /home/<user>/.local/share/applications/palemoon.desktop
[Desktop Entry] Name=Open Palemoon Name[fr]=Palemoon GenericName=Palemoon Web Browser GenericName[fr]=Palemoon Comment=Browse the World Wide Web Comment[fr]=Navigateur web bis Exec=palemoon Terminal=false Type=Application Icon=palemoon MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp; StartupNotify=true Actions=NewTab;NewWindow; NoDisplay=false Categories=WebBrowser;