Gestion des menus sous KDE
But de ce document
Ce document me sert de mémo pour comprendre le fonctionnement des menus sous KDE.
Personnalisation des menus de KDE
kmenuedit permet de personnaliser les menus de KDE. Les modifications dans les menus sont enregistrées dans le dossier suivant :
~/.config/menus/applications-kmenuedit.menu
update-menus permet de mettre à jour les menus après l’installation d’un programme. Ce programme est spécifique à Debian. Pour remettre à un utilisateur le menu par défaut, il faut supprimer le fichier « /.config/menus/applications-kmenuedit.menu » et lancer update-menus
Chaque entrée de menu est un fichier .desktop enregistré dans :
~/.local/share/applications
Les menus de KDE sont configurés dans :
~/.local/share/applications
/usr/share/applications
Exemple de fichier .desktop :
[Desktop Entry]
Categories=Qt;KDE;TextEditor;
DocPath=kate/index.html
Encoding=UTF-8
Exec=kate %U
GenericName=Editeur de texte avancé
Icon=kate
InitialPreference=6
MimeType=text/plain;application/x-desktop
Name=Kate
Path=
Terminal=false
Type=Application
X-DCOP-ServiceType=Multi
X-KDE-HasTempFileOption=true
X-KDE-StartupNotify=true
Un fichier « .desktop » permet de créer une entrée de menu dans le menu K, mais également dans le menu contextuel si le « MimeType » correspond au fichier sélectionné. Si pour le « MimeType », il n’y a qu’un programme, l’entrée sera sous le menu principale sinon elle sera dans le sous-menu « Ouvrir avec »
Les menu de Freedesktop
Il faut trois types de fichiers pour créer des menus suivant la norme « Freedesktop » :
La configuration de KDE pour l’utilisateur est dans « /.kde/ » et pour tous les utilisateurs, elle est dans « /usr/ »
Chaque dossier et sous-dossier, contient un fichier .directory indiquant entre-autre le nom du menu et l’icône de celui-ci.
Le fichier « /.config/menus/applications-kmenuedit.menu » permet de déplacer, d’ajouter ou d’enlever des menus à l’arborescence par défaut. Cet exemple montre comment supprimer l’entrée « Debian » :
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
!doctype>
Exemple d’entrée de menu ajoutée à la racine du menu K
[Desktop Entry]
Comment=
Exec=konsole --profile Profil-AS400
GenericName=
Icon=alevt
Name=AS400
Path=
StartupNotify=false
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=
Categories=Qt;KDE;Core;
OnlyShowIn=KDE;
Actualisation des modifications
En fonction du type de la modification, le résultat est immédiat ou apparaît seulement à la prochaine connexion de KDE. Pour éviter de se déconnecter, il faut lancer les commandes suivantes en tant que simple utilisateur :
$ update-menus
$ kbuildsycoca
Informations sur kbuildsycoca :
Ajout d’un nouveau menu
Pour ajouter un menu pour tous les utilisateurs, il faut placer le fichier « test.menu » ci-dessous dans l’un des dossiers suivants :
Applications
Test Menu
testmenu.directory
testmenu
!doctype>
Astuce : Pour créer ce fichier automatiquement, il est possible d’utiliser KMenuEdit, est de créer le menu. KMenuEdit, va créer (ou modifier) le fichier « /.config/menus », qu’il suffira de déplacer dans « /etc/xdg/menus/applications-merged » pour qu’il soit valable pour les utilisateurs
Supprimer une entrée de menu
Pour supprimer par exemple l’entrée « Science et mathématiques », il faut placer le fichier « test.menu » ci-dessous dans l’un des dossiers suivants :
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
Science
!doctype>
Ajouter un nouveau menu et supprimer un menu existant
Le fichier ci-dessous est la combinaison des deux fichiers précédents :
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
Applications
Test Menu
testmenu.directory
testmenu
Science
!doctype>
Création du menu « Programmes » et déplacement des menus « Science » et « Office » à l’intérieur
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
Programmes
Science
Programmes/Science
Office
Programmes/Office
!doctype>
La même chose en plus court et plus lisible :
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
Mes Programmes
Science Mes Programmes/Science
Office Mes Programmes/Office
!doctype>
Création de deux sous-menus et déplacement de deux menus :
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
Mes Programmes
Autres Programmes
Science Mes Programmes/Science
Office Autres Programmes/Office
!doctype>
Structure des menus avant KDE 3.2
Cette structure de fichiers utilisé par KDE avant la version 3.2 n’est pas normalisée par « freedesktop » mais elle est toujours utilisable pour des raisons de compatibilités avec les anciennes applications.
La définition des entrées de ces menu est dans :
Remarque : Le menu placé dans l’arborescence utilisateur à priorité sur le menu général en cas de conflit. Autrement les deux arborescences se complètent.
Voici la structure des menus :
/usr/share/applnk/
.hidden -> Contient les entrèes des menus cachés Dossier 1 -> Menu 1
.directory -> Définition du menu
application1.desktop -> Définiton de l'entrèe de menu pour application1
application2.desktop -> Définiton de l'entrèe de menu pour application2
Dossier 2 -> Menu 2
..
Dés qu’un fichier ou un dossier est créé dans cette arborescence la mise à jour est immédiate.
Par contre en cas de modification d’un fichier existant, il est nécessaire de lancer cette commande pour voire les modifications :
$ kbuildsycoca
Remarques :
Recherche de fichiers
L’une des principales difficultés rencontré pour configurer les fichiers est de retrouver le bon fichier .desktop, .directory ou .menu sachant que le nom du fichier peut-être différent du nom du menu.
Pour cela, il est utile de connaître quelques commandes de recherches :
Liste des fichiers dont le contenu contient le motif indiqué dans le dossier indiqué :
grep -ril pdf /usr/share/*
Rechercher un fichier se terminant par « desktop » dans le dossier indiqué :
find /usr/share -iname '*desktop'
Rechercher dans la base de données initialisée par « updatedb » les fichiers contenant « desktop » :
locate -i desktop
Recherche les fichiers contenant tous les termes indiqués :
locate -i -A desktop pdf
Autre lien
Les menu de freedesktop :
Historique des modifications
Version | Date | Commentaire |
---|---|---|
0.1 | 23/06/06 | Création par Tony GALMICHE |
0.3 | 22/06/08 | Mise en ligne |
Commentaires
Gestion des menus sous KDE
Merci Claude pour toutes tes relectures
Gestion des menus sous KDE
Tony,
Passionnant tous ces articles sur KDE, j’avais pas été si loin. A la fin du tuto, ce lien là est n’existe plus : http://artisan.karma-lab.net/fr/node/28 et celui-ci a un peu changé dans le nom (runtime en plus) :
http://docs.kde.org/stable/en/kdebase-runtime/userguide/kde-menu.html
Merci du tuto.