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.

Nick Bailuc
źródło
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.

user.dz
źródło
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)
Jacob Vlijm
źródło
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)
Jacob Vlijm
źródło
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
    
c4pp4
źródło
0

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

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

Jadwiga
źródło
3
Ta opcja nie jest już obecna w VLC.
Aibara,
D'oh istnieje dla mnie, może mam starą wersję ..
Jadwiga