web-dev-qa-db-fra.com

Afficher tous les programmes installés dans Ubuntu

Dans Ubuntu, où voir tous les programmes, comme les "fichiers de programme" de Windows, à partir desquels je peux lancer un programme à partir de la liste de tous les programmes installés?

7
velut luna

Si vous souhaitez lancer des applications à partir de la liste, l’option Nice est l’indicateur Classic Gnome.

Sudo apt-get install classicmenu-indicator

enter image description here

Voir ici: http://www.howtogeek.com/189929/how-to-install-and-launch-the-classic-gnome-menu-in-ubuntu-14.04/

3
Muzaffar

Juste pour le fun

Comme OP a mentionné: à partir duquel puis-je lancer un programme à partir de la liste de tous les programmes installés?

Ci-dessous un petit script qui répertorie toutes les applications (globalement) installées. Choisissez-en un pour le lancer ou tapez quelques-uns de ses caractères et appuyez sur Return pour exécuter l'application:

enter image description here

Utiliser

  • Copiez le script ci-dessous dans un fichier vide, enregistrez-le sous le nom list_apps.py
  • Testez-le avec la commande (ouvrez une fenêtre de terminal, tapez la commande et appuyez sur Return):

    python3 /path/to/list_apps.py
    
  • Si tout fonctionne correctement, ajoutez-le à une touche de raccourci: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:

    python3 /pat/to/list_apps.py
    

    à une combinaison de touches de raccourci que vous aimez.

Le scénario

#!/usr/bin/env python3
import subprocess
import os

dr = "/usr/share/applications"

apps = []

for f in [f for f in os.listdir(dr) if f.endswith(".desktop")]:
    try:
        content = open(dr+"/"+f).read()
        if not "NoDisplay=true" in content:
            lines = content.splitlines()
            name = [l for l in lines if l.startswith("Name=")][0].replace("Name=", "")
            command = [l for l in lines if l.startswith("Exec=")][0].replace("Exec=", "")
            apps.append([name, command])
    except:
        pass

apps.sort(key=lambda x: x[0]); apps = sum(apps, [])
displ_list = '"'+'" "'.join(apps)+'"'

try:
    chosen = subprocess.check_output([
        "/bin/bash",
        "-c",
        'zenity --list '+\
        '--column="Applications" '+\
        '--column="commands" '+\
        '--hide-column=2 --height 450 '+\
        '--width 300 '+\
        '--print-column=2 '+displ_list
        ]).decode("utf-8").split("|")[-1].strip()
    chosen = chosen[:chosen.rfind(" ")] if "%" in chosen else chosen
    subprocess.Popen([
        "/bin/bash", "-c", chosen
        ])
except subprocess.CalledProcessError:
    pass

Comment ça marche

Le script répertorie tous les fichiers .desktop dans /usr/share/applications et vérifie si la ligne NoDisplay=true est dans le fichier (ce qui signifie qu'elle n'est pas destinée à être utilisée comme interface graphique). Ensuite, il examine les fichiers, recherche le nom de l'application et la commande permettant de l'exécuter.

Le résultat est répertorié dans une liste zenity, à choisir. Si vous en choisissez un, la commande correspondante est exécutée.

C'est tout.


Version étendue

Si vous souhaitez également avoir une brève description de l'application, comme indiqué dans la ligne Comment= de son fichier .desktop, utilisez la version ci-dessous:

enter image description here

#!/usr/bin/env python3
import subprocess
import os

dr = "/usr/share/applications"

apps = []

for f in [f for f in os.listdir(dr) if f.endswith(".desktop")]:
    try:
        content = open(dr+"/"+f).read()
        if not "NoDisplay=true" in content:
            lines = content.splitlines()
            name = [l for l in lines if l.startswith("Name=")][0].replace("Name=", "")
            command = [l for l in lines if l.startswith("Exec=")][0].replace("Exec=", "")
            comment = [l for l in lines if l.startswith("Comment=")]
            comment = comment[0].replace("Comment=", "") if comment else "No description"
            apps.append([name, command, comment])
    except:
        pass

apps.sort(key=lambda x: x[0]); apps = sum(apps, [])
displ_list = '"'+'" "'.join(apps)+'"'

try:
    chosen = subprocess.check_output([
        "/bin/bash",
        "-c",
        'zenity --list '+\
        '--column="Applications" '+\
        '--column="commands" '+\
        '--column="Description" '+\
        '--hide-column=2 --height 450 '+\
        '--width 500 '+\
        '--print-column=2 '+displ_list
        ]).decode("utf-8").split("|")[-1].strip()
    chosen = chosen[:chosen.rfind(" ")] if "%" in chosen else chosen
    subprocess.Popen([
        "/bin/bash", "-c", chosen
        ])
except subprocess.CalledProcessError:
    pass
8
Jacob Vlijm

Sur Ubuntu pas tous les programmes sont répertoriés dans le menu de l'application.

Pour les voir tous, vous devrez ouvrir une console et taper

dpkg -l

Ceci affichera toutes les applications (celles qui s'exécutent dans l'interface utilisateur et celles qui s'exécutent dans la console).

4
Angel115