2008-10-06 4 views
1

Comment puis-je, en Java ou en utilisant un autre langage de programmation, ajouter un nouveau groupe de programmes dans le menu des applications de KDE et de Gnome? Je teste avec Ubuntu et Kubuntu 8. Mettre un simple fichier .menu dans ~/.config/menus/applications-fusionné a fonctionné dans Kubuntu, mais la même procédure ne fait rien dans Ubuntu.Ajout d'un nouveau groupe d'applications sous Linux

Le contenu de mon dossier est la suivante:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> 
<Menu> 
<Menu> 
    <Name>My Program Group</Name> 
    <Include> 
    <Filename>shortcut.desktop</Filename> 
    </Include> 
</Menu> 
</Menu> 

Notez que le fichier .desktop est correctement placé dans ~/.local/share/applications. Ps: La question d'origine n'a pas précisé que je voulais une solution d'une manière programmatique.

+0

Essayez-vous de le faire dans un script? – Kev

Répondre

0

Dans Gnome, utilisez Système -> Paramètres -> Menu, puis choisissez Nouveau menu ou Nouvelle entrée.

+0

Je veux le faire depuis l'intérieur d'un programme, pas manuellement. –

1

Merci, oliver. J'ai utilisé xdg-desktop-menu puis j'ai analysé sa sortie. Le fichier de menu correct doit nommer explicitement le menu extérieur (Applications), comme suit:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" 
    "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> 
<Menu> 
    <Name>Applications</Name> 
<Menu> 
    <Name>My Program Group</Name> 
    <Include> 
     <Filename>shortcut.desktop</Filename> 
    </Include> 
</Menu> 
</Menu> 

Cela a bien fonctionné dans Kubuntu, Ubuntu et Fedora Core 9. Impossible le faire fonctionner sur openSUSE, cependant.

1

Je vous recommande de regarder dans les normes de freedesktop.org qui couvrent cela. Liste à jour est disponible ici:

http://www.freedesktop.org/wiki/Specifications/menu-spec

Le dernier est actuellement 1.0:

http://standards.freedesktop.org/menu-spec/1.0/

normes FreeDesktop.org sont suivies par Gnome, KDE et XFCE, il devrait travailler sur n'importe quelle distribution.

+0

J'ai jeté un oeil à la norme, mais chaque bureau semble mettre en œuvre la norme légèrement différemment. Par exemple, j'ai découvert que dans openSUSE le fichier .directory est obligatoire sinon le groupe de programmes n'apparaît pas, et dans les autres distributions il n'est pas nécessaire. –

0

Vous ne savez pas exactement ce que vous entendiez exactement par "dans openSUSE le fichier .directory est obligatoire sinon le groupe de programmes n'apparaît pas"; En général, je suppose que vous devez appeler xdg-desktop-menu deux fois (une fois pour le groupe de programmes et une fois pour le programme lui-même), et vous devez donc également fournir deux fichiers .directory différents. Si le groupe de programmes est vide, il est logique que le bureau le cache.

(Mais peut-être que je vous ai complètement mal compris ici :-) et je n'ai jamais utilisé xdg-desktop-menu moi-même de toute façon).

+0

Je ne voulais pas utiliser xdg-desktop-menu. J'essayais de créer les fichiers dans les dossiers corrects moi-même et dans openSUSE vous devez avoir le fichier de répertoire, mais dans Ubuntu et Kubuntu il n'est pas manqué. Mais maintenant, je pense que l'utilisation directe de xdg-desktop-menu est la meilleure solution. –