Rappel de la question:
Comment installer - par programme - une commande de lancement d'une
application dans le menu de KDE / GNOME
Situation actuelle:
L'aborescence du menu est mappée sur l'aborescence d'un directory. Chaque
menu / sous menu est représenté par un directory / sous directory. Chaque
commande du menu est repésenté par un fichier .desktop. Ce fichier contient
le nom de la commande, l'icone associé, la syntaxe de la commande à exécuter
etc..Pour installer une commande de lancement dans un menu, il suffit alors
de créer dans le directory correspondant un fichier .desktop décrivant la
commande à lancer.
Gros problème, le directory qui représente le menu, change d'une
distribution à l'autre, d'une version à l' autre:
Menu KDE dans:
/usr/share/applnk (Debian, Redhat 7.2)
/usr/share/applnk-redhat (Redhat 8)
/usr/share/applnk-mdk (Mandrake 8 et 9)
/opt/kde3/share/applnk (Suse avec United-Linux beta)
Pour Gnome 1.x:
/usr/share/gnome/apps
Evolution future ( Gnome 2.x et KDE 3 ??)
L'arborescence du menu n'est plus mappée sur un directory mais décrit dans
un VFolder. C'est un fichier XML (.vfolder-info) qu'on trouve dans:
/etc/gnome-vfs-2.0/vfolders/applications.vfolder-info
Chaque menu est décrit dans le tag <Folder>, et fait référence à un fichier
.directory, les sous menus sont des tags <Folder> imbriqués, on définit
aussi une liste de mot clef qu'une commande doit contenir pour appartenir à
ce menu. Les fichiers .directory contiennent une description détaillée du
menu (nom, icone etc..). On ajoute le champ Categories aux fichiers
.desktop, ce champ contient les mots clefs associés à la commande.
Tous les fichiers .directory sont stockés dans /usr/share/gnome/vfolders
(??)
Tous les fichiers .desktop sont stockés dans /usr/share/applications
Les distributions qui stocke dans un autre directory, doit mentionner le nom
dans la variable d'environnement DESKTOP_FILE_PATH
Pour ajouter une commande dans le menu:
- créer un fichier .desktop, le mettre dans /usr/share/applications avec une
bonne liste de mots clefs, elle apparaitra alors sous un menu "standard" qui
accepte cette liste de mots clefs. Dans la liste des mots clefs (Categories)
ajouter X-Red-Hat-Base pour faire apparaitre dans le premier niveau ou
X-Red-Hat-Extra pour faire apparaitre dans le menu Extra (Redhat8)
- Si on ne veut pas un menu standard, il faut modifier le VFolder pour
ajouter un <Folder> spécifique et créer un nouveau fichier .directory
Liens:
http://www.freedesktop.org/standards/VFolferDesktops.txt
http://lists.gnome.org/archives/gnome-hackers/2002-April/msg00206.html
A complèter ou préciser car la doc n'est pas claire et plusieurs points
demeurent obscurs.