Usuń odtwarzacz VLC z menu dźwięku w pasku Unity


11

Nie używam VLC zbyt często, aby go tam mieć, więc chciałbym go usunąć z menu dźwięku w prawym górnym rogu. Znalazłem mały obraz, aby pokazać, jak to wygląda (menu dźwięku jest otwarte i pokazuje VLC wraz z innymi odtwarzaczami muzyki).

wprowadź opis zdjęcia tutaj

Przepraszamy za podanie obrazu o bardzo niskiej rozdzielczości.


Zadałem to pytanie wcześniej, więc jest to jakby duplikat. Chociaż dotyczy to tylko usunięcia VLC z menu dźwięku, a nie zatrzymywania go w ciągłym wyświetlaniu. Nie jestem pewien, czy obie odpowiedzi powinny pozostać otwarte. askubuntu.com/questions/455940/…
— Aibara

Nick, zredagowałem swoją odpowiedź, aby nie powróciła (na stałe) do menu dźwięku.
— Jacob Vlijm

tak, to pojawia się za każdym razem, gdy używam VLC. przeglądam samouczki internetowe, jak wyłączyć tę funkcję w preferencjach i nie mogę jej znaleźć, ponieważ moja wersja jest zbyt nowa. nazywa się „D-Bus”
— Nick Bailuc

Możliwy duplikat: askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
— Exeleration-G

Odpowiedzi:


14
  1. Przenieś wtyczkę VLC DBus

    sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
    
  2. Otwórz dconf-editor, usuń vlc.desktopz:

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

    Lub po prostu zresetuj go przez terminal

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

Uwaga: ktoś może chcieć zmodyfikować menu wskaźnika dźwięku, aby ukryć elementy sterujące przed nieaktywnym odtwarzaczem lub usunąć je po zamknięciu . Innymi słowy, biegający gracze mają pełną kontrolę, zamknięci albo tylko program uruchamiający (bez przycisków kontrolnych), albo znikają całkowicie z menu.


3
Ta poprawka również działa!
— Aibara

6

Jak usunąć VLC z menu dźwięku / Jak zapobiec ponownemu pojawianiu się VLC w menu dźwięku.

Usuwanie VLC z menu dźwięku

Metoda GUI

  • Zainstaluj edytor dconf
  • Otwórz edytor dconf i przejdź do: com/canonical/indicator/sound

wprowadź opis zdjęcia tutaj

  • Z listy elementów menu soundmenu ( interested-media-players) usuń aplikacje, których nie potrzebujesz / nie chcesz pojawiać się w menu. Zamknij edytor dconf.

wprowadź opis zdjęcia tutaj

  • Zrobione, VLC zniknęło z menu.

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Metoda wiersza poleceń

  • Aby odczytać bieżące pozycje menu:

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

    daje wynik, taki jak:

    ['rhythmbox.desktop', 'vlc.desktop']
    
  • Aby usunąć VLC, usuń vlc.desktopz listy i ustaw zmienione menu za pomocą polecenia:

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

Zapobieganie powracaniu VLC w menu dźwięku (14.04)

Rozwiązanie usuwa VLC z menu dźwięku, ale jeśli uruchomisz VLC, pojawi się ponownie w menu dźwięku. Poniższy skrypt nie zapobiega temu, ale natychmiast i automatycznie usuwa go po zamknięciu VLC.

Aby go użyć:

Skopiuj poniższy skrypt, wklej go do pustego pliku tekstowego i zapisz jako vlc, aby był wykonywalny. Następnie skopiuj vlc.desktopplik z /usr/share/applicationsdo ~/.local/share/applicationsi zastąp (pierwszy) wiersz zaczynając Exec=od Exec=/path/to/script/vlc. Wyloguj się i zaloguj ponownie. Plik pulpitu zostanie przekierowany do skryptu, skrypt uruchomi VLC i zaczeka na jego zatrzymanie oraz natychmiastowe usunięcie VLC z menu dźwięku.

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

Inne aplikacje

Tej metody / skryptu można także użyć do innych aplikacji w menu dźwięku. W zależności od innej aplikacji należy zmienić dwa wiersze w ostatniej sekcji skryptu:

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

i

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

Zrobiłem metodę terminalu, ponieważ nie chciałem instalować niepotrzebnych aplikacji. dziękuję, zadziałało natychmiast
— Nick Bailuc

1
Zgadzam się! jeśli nie jest to konieczne, wolałbym nie instalować dodatkowego oprogramowania. Cieszę się, że się udało.
— Jacob Vlijm

Ale zostanie przeczytany, jak tylko ponownie otworzysz VLC ...
— Aibara

Korekta: jak tylko zaczniesz ponownie odtwarzać wideo w VLC.
— Aibara

1
@NickBailuc Próbowałem i masz rację, skontaktuję się z Tobą w tej sprawie!
— Jacob Vlijm

1

Pokaż zdefiniowane przez użytkownika aplikacje w menu dźwiękowym tylko wtedy, gdy są uruchomione

Poniższe rozwiązanie jest elastycznie użyteczne dla wielu aplikacji jednocześnie z pozycją w menu dźwięku. Użytkownik może zdefiniować (i zmienić), które aplikacje mają stałą pozycję w menu, a które należy usunąć z menu dźwięku po ich zamknięciu.

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Co to jest i co robi

Rozwiązaniem jest skrypt uruchamiany od uruchomienia (logowania). Pozwala na wyświetlanie aplikacji zdefiniowanych przez użytkownika w menu dźwięku, ale usuwa je z menu po ich zamknięciu.

Skrypt nie ma wpływu na funkcjonalność plików pulpitu. Nie zauważyłem żadnego wpływu na obciążenie procesora, użycie pamięci jest znikome.

jak używać

  • Skopiuj poniższy skrypt do pustego pliku i zapisz go jako cleanup_soundmenu.py

  • W linii zaczynającej się od no_show =, są ustawione aplikacje, które powinny zostać wyczyszczone z menu po ich zamknięciu. Dwa przykłady są: ['rhythmbox', 'vlc']. Nazwy są pobierane z plików pulpitu, z których są usuwane .desktop.

  • W linii, zaczynając od cleanup_interval, użytkownik może zdefiniować odstęp między kontrolami czyszczenia. Domyślnie jest to 10 sekund.

  • Dodaj następujący wiersz do Startup Applications(Dash> Aplikacje startowe> Dodaj):

    python3 /path/to/cleanup_soundmenu.py
    

Przy następnym logowaniu zdefiniowana aplikacja zostanie wyczyszczona z menu dźwięku, jeśli nie są uruchomione.

Scenariusz

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

Tak, działa, ale uruchamianie sprawdzania co 10 sekund dla zdarzenia, które może się zdarzyć raz lub dwa razy na sesję, wydaje się niezwykle nieefektywne.
— Lilley,

@Lilley pobieranie wartości z zestawów ustawień jest wyjątkowo lekkie i należy pamiętać o tym, że system stale uruchamia wszystkie rodzaje pętli.
— Jacob Vlijm,

1

Proste rozwiązanie Ubuntu 14.04 (tylko jedno polecenie, bez sudo, bez skryptu).

Otwórz aplikację Terminal, a następnie skopiuj, wklej i wykonaj jedno z poniższych poleceń. Następnie wskaźnik dźwięku zostanie automatycznie wyczyszczony po wyjściu z VLC.

  1. nie zostawiaj żadnego wpisu we wskaźniku dźwięku:

    (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. pozostaw wpis Rhythmbox we wskaźniku dźwięku:

    (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. cofnij zmiany:

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

0

W tym artykule o tym, jak dodać tę funkcję, wykonaj odwrotny scenariusz:

Narzędzia -> Preferencje -> wszystkie -> Interfejs -> Interfejs sterowania -> Interfejs sterowania D-Bus


3
Ta opcja nie jest już obecna w VLC.
— Aibara,

D'oh istnieje dla mnie, może mam starą wersję ..
— Jadwiga
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.