Supprimer le lecteur VLC du menu audio dans la barre Unity


11

Je n'utilise pas beaucoup VLC pour l'avoir là, donc je voudrais le supprimer du menu son en haut à droite. J'ai trouvé une petite image pour montrer à quoi elle ressemble (le menu sonore est ouvert et montre VLC avec d'autres lecteurs de musique).

entrez la description de l'image ici

Désolé d'avoir donné une image à très basse résolution.


J'ai déjà posé cette question, c'est donc une sorte de doublon. Bien que cela demande simplement de supprimer VLC du menu audio, plutôt que de l'empêcher d'apparaître continuellement. Je ne sais pas si les deux réponses doivent rester ouvertes. askubuntu.com/questions/455940/…
Aibara

Nick, j'ai modifié ma réponse pour l'empêcher de réenregistrer (en permanence) dans le menu sonore.
Jacob Vlijm

oui, il continue d'apparaître chaque fois que j'utilise vlc. Je regarde à travers des tutoriels Internet sur la façon de le désactiver dans les préférences et je ne peux pas le trouver car ma version est trop nouvelle. son appelé "D-Bus"
Nick Bailuc

Copie possible: askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
Exeleration-G

Réponses:


14
  1. Déplacer le plugin VLC DBus

    sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
    
  2. Ouvrir dconf-editor, retirer vlc.desktopde:

    /com/canonical/indicator/sound/interested-media-players
    

    Ou réinitialisez-le simplement via le terminal

    dconf reset /com/canonical/indicator/sound/interested-media-players
    

Remarque: certaines personnes peuvent souhaiter modifier le menu indicateur de son pour masquer les commandes du lecteur inactif ou le supprimer après la fermeture . En d'autres termes, les joueurs en cours d'exécution ont des contrôles complets, ceux fermés ne sont que des lanceurs (pas de boutons de contrôle) ou disparaissent totalement du menu.


3
Cette correction fonctionne également!
Aibara

6

Comment supprimer VLC du menu son / Comment empêcher VLC de réapparaître dans le menu son.

Suppression de VLC du menu audio

Méthode GUI

  • Installer l'éditeur dconf
  • Ouvrez l'éditeur dconf et accédez à: com/canonical/indicator/sound

entrez la description de l'image ici

  • Dans la liste des éléments du menu sonore ( interested-media-players), supprimez les applications dont vous n'avez pas besoin / que vous souhaitez voir apparaître dans le menu. Fermez l'éditeur dconf.

entrez la description de l'image ici

  • Terminé, VLC a disparu du menu.

entrez la description de l'image ici entrez la description de l'image ici

Méthode de ligne de commande

  • Pour lire les éléments de menu actuels:

    gsettings get com.canonical.indicator.sound interested-media-players
    

    donne une sortie comme:

    ['rhythmbox.desktop', 'vlc.desktop']
    
  • Pour supprimer VLC, supprimez vlc.desktopde la liste et définissez le menu modifié par la commande:

    gsettings set com.canonical.indicator.sound interested-media-players "['rhythmbox.desktop']"
    

Empêcher VLC de revenir dans le menu audio (14.04)

La solution supprime VLC du menu son, mais si vous démarrez VLC, il réapparaîtra dans le menu son. Le script ci-dessous n'empêche pas cela, mais le supprime immédiatement et automatiquement une fois VLC fermé.

Pour l'utiliser:

Copiez le script ci-dessous, collez-le dans un fichier texte vide et enregistrez-le sous vlc, rendez-le exécutable. Copiez ensuite le vlc.desktopfichier de /usr/share/applicationsà ~/.local/share/applicationset remplacez la (première) ligne commençant par Exec=par Exec=/path/to/script/vlc. Déconnectez-vous et reconnectez-vous. Le fichier de bureau sera redirigé vers le script, le script démarrera VLC et attendra qu'il s'arrête et supprime immédiatement VLC du menu audio.

#!/usr/bin/python3
import subprocess
import getpass
import time

curruser = getpass.getuser()

def read_currentmenu():
    # read the current launcher contents
    get_menuitems = subprocess.Popen([
        "gsettings", "get", "com.canonical.indicator.sound", "interested-media-players"
        ], stdout=subprocess.PIPE)
    return eval((get_menuitems.communicate()[0].decode("utf-8")))

def set_current_menu(current_list):
    # preparing subprocess command string
    current_list = str(current_list).replace(", ", ",")
    subprocess.Popen([
        "gsettings", "set", "com.canonical.indicator.sound", "interested-media-players",
        current_list,
        ])

subprocess.call(["/usr/bin/vlc"])                    
current_list = read_currentmenu()
for item in current_list:
    if item == "vlc.desktop":
        current_list.remove(item)
set_current_menu(current_list)

Autres applications

Cette méthode / ce script peut également être utilisé pour d'autres applications dans le menu audio. Deux lignes dans la dernière section du script doivent ensuite être modifiées, selon l'autre application:

if item == "vlc.desktop":  (change to desktop file of the application)

et

subprocess.call(["/usr/bin/vlc"]) (change the command to run the application)

J'ai fait la méthode du terminal parce que je ne voulais pas installer d'applications inutiles. merci, cela a fonctionné instantanément
Nick Bailuc

1
Je suis d'accord! si ce n'est pas nécessaire, je préfère ne pas installer de logiciel supplémentaire. Heureux que ça ait marché.
Jacob Vlijm

Mais il sera réajouté dès que vous ouvrirez à nouveau VLC ...
ouvrirez à

Correction: dès que vous recommencez à lire une vidéo dans VLC.
Aibara

1
@NickBailuc J'ai essayé, et vous avez raison, je vous répondrai à ce sujet!
Jacob Vlijm

1

Afficher les applications définies par l'utilisateur dans le menu audio uniquement si elles s'exécutent

La solution ci-dessous est utilisable de manière flexible pour plusieurs applications à la fois avec une position dans le menu du son. L'utilisateur peut définir (et modifier) ​​quelles applications ont une position permanente dans le menu et lesquelles doivent être supprimées du menu audio après leur fermeture.

entrez la description de l'image ici entrez la description de l'image ici

Ce que c'est et ce qu'il fait

La solution existe d'un script qui s'exécute à partir du démarrage (connexion). Il permet aux applications définies par l'utilisateur d'apparaître dans le menu audio, mais supprime ces applications du menu audio après leur fermeture.

Le script n'a aucun effet sur la fonctionnalité des fichiers du bureau. Je n'ai pu remarquer aucun effet sur la charge du processeur, l'utilisation de la mémoire est négligeable.

comment utiliser

  • Copiez le script ci-dessous dans un fichier vide, enregistrez-le sous cleanup_soundmenu.py

  • Dans la ligne commençant par no_show = , les applications sont définies et doivent être nettoyées du menu après leur fermeture. Deux exemples sont: ['rhythmbox', 'vlc']. Les noms sont dérivés de leurs fichiers de bureau, supprimés de .desktop.

  • Dans la ligne, en commençant par cleanup_interval, l'utilisateur peut définir l'intervalle entre les contrôles de nettoyage. Par défaut, c'est 10 secondes.

  • Ajoutez la ligne suivante à Startup Applications(Dash> Applications de démarrage> Ajouter):

    python3 /path/to/cleanup_soundmenu.py
    

Lors de la prochaine connexion, l'application définie sera nettoyée du menu audio si elle ne fonctionne pas.

Le scénario

#!/usr/bin/env python3

import subprocess
import time
import getpass

no_show = ['rhythmbox', 'vlc'] # add names here, to set apps not to show
cleanup_interval = 10 # cleanup interval (in seconds)

curruser = getpass.getuser()

def createlist_runningprocs():
    processesb = subprocess.Popen(
        ["ps", "-u", curruser],
        stdout=subprocess.PIPE)
    process_listb = (processesb.communicate()[0].decode("utf-8")).split("\n")
    return process_listb

def read_soundmenu():
    # read the current launcher contents
    get_menuitems = subprocess.Popen([
        "gsettings", "get",
        "com.canonical.indicator.sound",
        "interested-media-players"
        ], stdout=subprocess.PIPE)
    try:
        return eval(get_menuitems.communicate()[0].decode("utf-8"))
    except SyntaxError:
        return []

def set_soundmenu(new_list):
    # set the launcher contents
    subprocess.Popen([
        "gsettings", "set",
        "com.canonical.indicator.sound",
        "interested-media-players",
        str(new_list)])

def check_ifactionneeded():
    snd_items = read_soundmenu()
    procs = createlist_runningprocs()
    remove = [item+".desktop" for item in no_show if not item in str(procs)]
    if len(remove) != 0:
        for item in remove:
            try:
                snd_items.remove(item)
            except ValueError:
                pass
        return snd_items
    else:
        pass

while 1 != 0:
    new_list = check_ifactionneeded()
    if new_list != None:
        set_soundmenu(new_list)
    time.sleep(cleanup_interval)

Oui, cela fonctionne, mais effectuer un contrôle toutes les 10 secondes pour un événement qui peut se produire une ou deux fois par session semble extrêmement inefficace.
Lilley

@Lilley obtenir des valeurs à partir de gsettings est extrêmement léger, et sachez que le système exécute constamment toutes sortes de boucles.
Jacob Vlijm

1

Ubuntu 14.04 solution simple (une seule commande, pas de sudo, pas de script).

Ouvrez l'application Terminal, puis copiez, collez et exécutez l'une des commandes suivantes. Après cela, l'indicateur sonore sera automatiquement nettoyé après la sortie de VLC.

  1. ne laissez aucune entrée dans l'indicateur sonore:

    (mkdir -p ~/.local/share/applications);(cp /usr/share/applications/vlc.desktop ~/.local/share/applications);(sed -i 's/Exec=\/usr\/bin\/vlc --started-from-file %U/Exec=sh -c "\/usr\/bin\/vlc --started-from-file %U; gsettings reset com.canonical.indicator.sound interested-media-players"/' ~/.local/share/applications/vlc.desktop)
    
  2. laisser l'entrée Rhythmbox dans l'indicateur sonore:

    (mkdir -p ~/.local/share/applications);(cp /usr/share/applications/vlc.desktop ~/.local/share/applications);(sed -i 's/Exec=\/usr\/bin\/vlc --started-from-file %U/Exec=sh -c "\/usr\/bin\/vlc --started-from-file %U; gsettings set com.canonical.indicator.sound interested-media-players \\\"['\'rhythmbox.desktop\'']\\\""/' ~/.local/share/applications/vlc.desktop)
    
  3. annuler les changements:

    rm ~/.local/share/applications/vlc.desktop
    

0

Cet article sur la façon d'ajouter cette fonctionnalité fait le scénario inverse:

Outils -> Préférences -> tous -> Interface -> Interface de contrôle -> Interface de contrôle D-Bus


3
Cette option n'est plus présente dans VLC.
Aibara

D'oh ça existe pour moi, peut-être que j'ai une ancienne version ..
Hedwig
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.