Entfernen Sie den VLC-Player aus dem Soundmenü in der Unity-Leiste

10

Ich benutze VLC nicht so oft, um es dort zu haben, deshalb möchte ich es aus dem Soundmenü oben rechts entfernen. Ich habe ein kleines Bild gefunden, um zu zeigen, wie es aussieht (das Soundmenü ist geöffnet und zeigt VLC zusammen mit anderen Musik-Playern).

Geben Sie hier die Bildbeschreibung ein

Entschuldigen Sie, dass Sie ein Bild mit sehr niedriger Auflösung erhalten haben.

Nick Bailuc
quelle
Ich habe diese Frage schon einmal gestellt, das ist also eine Art Duplikat. Dies erfordert zwar nur das Entfernen von VLC aus dem Soundmenü, anstatt zu verhindern, dass es ständig angezeigt wird. Ich bin mir nicht sicher, ob beide Antworten offen bleiben sollen. askubuntu.com/questions/455940/…
Aibara
Nick, ich habe meine Antwort bearbeitet, um zu verhindern, dass sie (dauerhaft) zum Soundmenü zurückkehrt.
Jacob Vlijm
Ja, es erscheint immer dann, wenn ich vlc benutze. Ich schaue durch Internet-Tutorials, wie man es in den Einstellungen deaktiviert und kann es nicht finden, weil meine Version zu neu ist. Es heißt "D-Bus"
Nick Bailuc
Mögliches Duplikat: askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
Exeleration-G

Antworten:

13
  1. Verschieben Sie das VLC DBus-Plugin

    sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
    
  2. Öffnen dconf-editor, entfernen vlc.desktopvon:

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

    Oder setzen Sie es einfach über das Terminal zurück

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

Hinweis: Jemand möchte möglicherweise das Menü für die Tonanzeige ändern , um Steuerelemente vor dem inaktiven Player auszublenden oder sie nach dem Schließen zu entfernen . Mit anderen Worten, laufende Spieler haben volle Kontrolle, geschlossene entweder nur Launcher (keine Kontrolltasten) oder verschwinden komplett aus dem Menü.

user.dz
quelle
2
Dieser Fix funktioniert auch!
Aibara
6

So entfernen Sie VLC aus dem Soundmenü / So verhindern Sie, dass VLC erneut im Soundmenü angezeigt wird.

VLC aus dem Soundmenü entfernen

GUI-Methode

  • Installieren Sie den dconf-Editor
  • Öffnen Sie den dconf-Editor und navigieren Sie zu: com/canonical/indicator/sound

Geben Sie hier die Bildbeschreibung ein

  • interested-media-playersEntfernen Sie in der Liste der Soundmenu ( ) -Elemente die Anwendungen, die Sie nicht benötigen / im Menü anzeigen möchten. Schließen Sie den dconf-Editor.

Geben Sie hier die Bildbeschreibung ein

  • Fertig, VLC verschwand aus dem Menü.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Befehlszeilenmethode

  • So lesen Sie die aktuellen Menüpunkte:

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

    gibt eine Ausgabe wie:

    ['rhythmbox.desktop', 'vlc.desktop']
    
  • Um VLC zu entfernen, entfernen Sie es vlc.desktopaus der Liste und stellen Sie das geänderte Menü mit dem folgenden Befehl ein:

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

Verhindern, dass VLC im Soundmenü zurückkehrt (14.04)

Die Lösung entfernt VLC aus dem Soundmenü. Wenn Sie jedoch VLC starten, wird es erneut im Soundmenü angezeigt. Das folgende Skript verhindert dies nicht, entfernt es jedoch sofort und automatisch, sobald VLC geschlossen wird.

Um es zu benutzen:

Kopieren Sie das folgende Skript, fügen Sie es in eine leere Textdatei ein und speichern Sie es unter vlc, machen Sie es ausführbar. Kopieren Sie dann die vlc.desktopDatei von /usr/share/applicationsnach ~/.local/share/applicationsund ersetzen Sie die (erste) Zeile beginnend mit Exec=durch Exec=/path/to/script/vlc. Melden Sie sich ab und wieder an. Das Desktopfile wird zum Skript umgeleitet, das Skript startet VLC und wartet, bis es beendet wird, und entfernt VLC sofort aus dem Soundmenü.

#!/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)

Andere Anwendungen

Diese Methode / dieses Skript kann auch für andere Anwendungen im Soundmenü verwendet werden. Zwei Zeilen im letzten Abschnitt des Skripts müssen dann entsprechend der anderen Anwendung geändert werden:

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

und

subprocess.call(["/usr/bin/vlc"]) (change the command to run the application)
Jacob Vlijm
quelle
Ich habe die Terminalmethode ausgeführt, weil ich nicht benötigte Anwendungen nicht installieren wollte. Danke, es hat sofort funktioniert
Nick Bailuc
1
Genau! Wenn nicht erforderlich, würde ich es vorziehen, keine zusätzliche Software zu installieren. Ich bin froh, dass es geklappt hat.
Jacob Vlijm
Aber es wird gelesen, sobald Sie VLC wieder öffnen ...
Aibara
Korrektur: Sobald Sie wieder ein Video in VLC abspielen.
Aibara
1
@ NickBailuc Ich habe es versucht, und Sie haben Recht, ich werde mich in diesem Fall bei Ihnen melden!
Jacob Vlijm
1

Benutzerdefinierte Anwendungen im Soundmenü nur anzeigen, wenn sie ausgeführt werden

Die folgende Lösung kann flexibel für mehrere Anwendungen gleichzeitig mit einer Position im Soundmenü verwendet werden. Der Benutzer kann definieren (und ändern), welche Anwendungen eine dauerhafte Position im Menü haben und welche nach dem Schließen aus dem Soundmenü entfernt werden sollen.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Was es ist und was es tut

Die Lösung besteht aus einem Skript, das vom Start an ausgeführt wird (Login). Benutzerdefinierte Anwendungen können im Soundmenü angezeigt werden, diese Anwendungen werden jedoch nach dem Schließen aus dem Soundmenü entfernt.

Das Skript hat keine Auswirkungen auf die Funktionalität der Desktop-Dateien. Ich konnte keine Auswirkungen auf die Prozessorlast feststellen, die Speichernutzung ist vernachlässigbar.

wie benutzt man

  • Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es unter cleanup_soundmenu.py

  • In der Zeile beginnend mit no_show =werden Anwendungen festgelegt, die nach dem Schließen aus dem Menü entfernt werden sollen. Es werden zwei Beispiele angeführt : ['rhythmbox', 'vlc']. Die Namen werden von ihren Desktop-Dateien abgeleitet und entfernt .desktop.

  • In der Zeile cleanup_intervalkann der Benutzer beginnend mit das Intervall zwischen den Bereinigungsprüfungen definieren. Standardmäßig sind es 10 Sekunden.

  • Fügen Sie die folgende Zeile zu Startup Applications(Dash> Startanwendungen> Hinzufügen) hinzu:

    python3 /path/to/cleanup_soundmenu.py
    

Bei der nächsten Anmeldung wird die definierte Anwendung aus dem Soundmenü entfernt, wenn sie nicht ausgeführt wird.

Das Skript

#!/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)
Jacob Vlijm
quelle
Ja, es funktioniert, aber alle 10 Sekunden eine Überprüfung auf ein Ereignis durchzuführen, das ein- oder zweimal pro Sitzung auftreten kann, scheint äußerst ineffizient zu sein.
Lilley
@Lilley, der Werte von gsettings erhält, ist extrem leicht und ist sich der Tatsache bewusst, dass das System ständig alle Arten von Schleifen ausführt.
Jacob Vlijm
1

Ubuntu 14.04 einfache Lösung (nur ein Befehl, kein Sudo, kein Skript).

Öffnen Sie die Terminal-Anwendung, kopieren Sie sie, fügen Sie sie ein und führen Sie einen der folgenden Befehle aus. Danach wird die Tonanzeige nach dem Beenden von VLC automatisch gelöscht.

  1. Lassen Sie keinen Eintrag in der Tonanzeige:

    (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. Lassen Sie den Rhythmbox-Eintrag in der Soundanzeige:

    (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. Änderungen rückgängig machen:

    rm ~/.local/share/applications/vlc.desktop
    
c4pp4
quelle
0

In diesem Artikel zum Hinzufügen dieser Funktion wird das umgekehrte Szenario ausgeführt:

Extras -> Einstellungen -> Alle -> Schnittstelle -> Steuerschnittstelle -> D-Bus-Steuerschnittstelle

Hedwig
quelle
3
Diese Option ist in VLC nicht mehr vorhanden.
Aibara
D'oh es existiert für mich, vielleicht habe ich eine alte Version ..
Hedwig