web-dev-qa-db-fra.com

Comment afficher dans les applications de menu de différents environnements de bureau?

J'ai installé différentes versions de l'environnement (Unity, Mate, Xfce, KDE ...) sur ma machine. J'ai décidé de me connecter pour utiliser Xfce. Mais il y a des applications/logiciels dans les autres environnements que je voudrais utiliser sans me connecter à cet autre poste de travail et sans essayer de découvrir la commande de ce programme afin de pouvoir l'exécuter depuis un terminal directement depuis Xfce.

J'aimerais que toutes les applications répertoriées dans mon menu soient répertoriées de manière automatisée (les réponses "créer chaque entrée de raccourci à partir de zéro" doivent donc être exclues).

5
ce0xtkpiq45ul

Vous pouvez utiliser alacarte pour modifier le menu de l'application. Ce n'est pas comme faire tous les raccourcis à partir de rien, ni automatisé ... Certaines versions du logiciel alacarte provenant d'autres environnements de bureau sont également visibles.

2
Some_Lost_Developer

Je soupçonne que la clé réside dans le contenu des fichiers .desktop que l'on trouve le plus souvent dans /usr/share/applications. (Un utilisateur peut également avoir certains fichiers .desktop placés dans $HOME/.local/share/applications automatiquement ou manuellement.)

Le format des fichiers .desktop est généralement basé sur spécifications défini par freedesktop.org .

D'intérêt ici, sont deux entrées:

NoDisplay

signifie "cette application existe, mais ne l'affichez pas dans les menus". Cela peut être utile pour, par exemple, associez cette application aux types MIME, de sorte qu'elle soit lancée à partir d'un gestionnaire de fichiers (ou d'autres applications), sans avoir d'entrée de menu pour celle-ci (il existe de nombreuses bonnes raisons à cela, y compris par exemple le type netscape -remote ou le type kfmclient openURL de choses).

OnlyShowIn, NotShowIn

Une liste de chaînes identifiant les environnements de bureau devant afficher/ne pas afficher une entrée de bureau donnée.

Par défaut, un fichier de bureau doit être affiché, sauf si une clé OnlyShowIn est présente. Dans ce cas, la valeur par défaut est que le fichier ne soit pas affiché.

Sur mon système qui est juste "KDE", je vois:

$ grep -E "NoDisplay"  /usr/share/applications/*.desktop         
/usr/share/applications/display-im6.desktop:NoDisplay=true
/usr/share/applications/display-im6.q16.desktop:NoDisplay=true
/usr/share/applications/geoclue-where-am-i.desktop:NoDisplay=true
/usr/share/applications/hplj1020.desktop:NoDisplay=true
/usr/share/applications/ktelnetservice5.desktop:NoDisplay=true
/usr/share/applications/kwalletmanager5-kwalletd.desktop:NoDisplay=true
/usr/share/applications/libreoffice-math.desktop:NoDisplay=false
/usr/share/applications/libreoffice-startcenter.desktop:NoDisplay=false
/usr/share/applications/libreoffice-xsltfilter.desktop:NoDisplay=true
(plus many more entries)


$ grep -E "OnlyShowIn"  /usr/share/applications/*.desktop
/usr/share/applications/org.kde.kcolorschemeeditor.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.kinfocenter.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.kmenuedit.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.plasmashell.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.polkit-kde-authentication-agent-1.desktop:OnlyShowIn=KDE;
/usr/share/applications/systemsettings.desktop:OnlyShowIn=KDE;
$ 

$ grep -E "NotShowIn"  /usr/share/applications/*.desktop
/usr/share/applications/kdesystemsettings.desktop:NotShowIn=KDE;
/usr/share/applications/libreoffice-math.desktop:NotShowIn=GNOME;
/usr/share/applications/libreoffice-startcenter.desktop:NotShowIn=GNOME;
/usr/share/applications/org.kde.kdeconnect.kcm.desktop:NotShowIn=KDE;
/usr/share/applications/org.kde.kdeconnect.nonplasma.desktop:NotShowIn=KDE;
/usr/share/applications/org.kde.klipper.desktop:NotShowIn=KDE;
/usr/share/applications/system-config-printer.desktop:NotShowIn=KDE;GNOME;
$ 

Lorsque vous exécuterez les commandes indiquées ci-dessus sur votre système, il se peut que certaines applications ne soient pas incluses dans les menus, que ce soit dans l'environnement de bureau d'origine ou dans un autre. Dans certains cas, il n’ya peut-être aucune raison qui vous semble valable.

Si vous souhaitez modifier le statut d'affichage de certaines applications, je vous suggère de copier le fichier .desktop correspondant vers ~/.local/share/applications et d'y apporter vos modifications. Les modifications apportées là-bas

  • pas besoin de Sudo
  • être seulement pour vous et pas pour les autres utilisateurs
  • être inchangé si/lorsque l'application est mise à jour alors que le fichier .desktop dans /usr/share/applications sera écrasé.
4
DK Bose