web-dev-qa-db-fra.com

Comment obtenir la liste de toutes les applications installées qui ont une interface graphique?

Je veux une liste de toutes les applications installées qui ont une interface graphique. Pour être clair, au moins toutes les applications répertoriées dans Afficher les applications.

J'ai essayé plusieurs commandes telles que apt list --installed, dpkg -l, find '*.desktop' pour obtenir la liste de toutes les applications installées qui manquaient toutes à certaines applications (comme Android Studio, b1freearchiver, pyCharm, etc. .)

N'y aurait-il pas moyen de trouver le dossier ou le fichier utilisé par le menu Afficher les applications pour obtenir toutes les applications répertoriées.

J'utilise le bureau Ubuntu 18.04.

3
Sathish Kanna

Essayez de chercher tous les fichiers .desktop, site Web des développeurs de Gnome appelle le "ensemble enregistré d'applications que les utilisateurs peuvent exécuter" et ce sont presque toujours des programmes d'interface graphique.

Cette réponse ( Comment trouver des fichiers * .desktop? ) indique que vous pouvez simplement chercher partout des fichiers .desktop avec

find / -name '*.desktop'

Ou alors, ils ne sont probablement que dans /usr/share/applications/ et ~/.local/share/applications. Il suffit donc de regarder dans ceux-ci devrait être suffisant:

find /usr/share/applications ~/.local/share/applications -name '*.desktop'

Si vous souhaitez spécifiquement exclure les programmes de terminal (même s'ils ont une interface graphique de terminal semblable à htop), vous pouvez ajouter ces commandes à une recherche ci-dessus:

...  -print0 |xargs -0 grep -i -l "Terminal=False"
2
Xen2050

En complément de la @ Xen2050 answer , vous pouvez déterminer les noms exacts des packages deb-packages (afin qu’ils soient connus de APT), avec les fichiers *.desktop contenant ce one-liner:

dpkg --search '*.desktop' | awk '{print $1}' | sed "s/://" | sort --unique

Dans la commande ci-dessus:

  • dpkg --search '*.desktop' recherchera les paquets contenant des fichiers *.desktop;
  • | est redirigé de la sortie de la commande précédente vers l'entrée de la commande suivante;
  • awk '{print $1}' affichera la première colonne du résultat de la recherche (généralement sous la forme plank: /usr/share/applications/plank.desktop - vous obtiendrez donc plank:);
  • sed "s/://" supprimera : inutile du nom du paquet (vous obtiendrez plank ici);
  • sort --unique va trier les résultats et en supprimer les doublons.

Sur mon Ubuntu 16.04.5 LTS, il renvoie environ 347 noms de paquetages uniques.


Si vous avez installé des logiciels dans le dossier d’accueil, vous pouvez utiliser la commande ci-dessous.

find ~ -name '*.desktop'

ou plus précis

find ~/.local/share/applications/ '*.desktop'

pour trouver leurs fichiers *.desktop.

1
N0rbert

Généralement, c'est difficile à déterminer. Les autres réponses ne traitent pas du fait que les applications en ligne de commande peuvent également contenir des fichiers .desktop ou des applications à interface graphique. fichier de bureau. En outre, rien ne garantit qu'une application référencée dans le fichier .desktop existe toujours sur le système (vous devez l'exécuter pour connaître ou vérifier Exec = line pour le chemin existant). C'est donc un critère peu valable.

Ce qui peut être fait, cependant, est de poser une meilleure question. Quelles applications dépendent de l'interface graphique? Cela peut être trouvé avec apt-cache rdepends 'package or lib'. Par exemple, apt-cache rdepends libappindicator montrera les paquets qui ont cette lib comme dépendance et fourniront probablement une telle applet.

Mais pour être juste, une application de terminal peut également s'interfacer avec une interface graphique sans disposer d'une interface graphique. Si votre objectif est de trouver des applications avec interface graphique frontale, recherchez des applications qui dépendent des bibliothèques Gtk ou Qt.

Bien entendu, cela dépend également de la question de savoir si le responsable du paquet a correctement fourni la description de la dépendance de son paquet. Pour les référentiels Ubuntu standard, c'est correct. Pour les PPA externes, cela dépend des développeurs et des responsables.

0