Hapus VLC player dari menu suara di bilah Unity

11

Saya tidak menggunakan VLC sebanyak itu untuk memilikinya, jadi saya ingin menghapusnya dari menu suara di kanan atas. Saya menemukan gambar kecil untuk menunjukkan seperti apa (menu suara terbuka dan menunjukkan VLC bersama dengan pemutar musik lainnya).

masukkan deskripsi gambar di sini

Maaf karena memberikan gambar dengan resolusi sangat rendah.

Nick Bailuc
sumber
Saya menanyakan pertanyaan ini sebelumnya, jadi ini adalah duplikat. Meskipun ini hanya meminta tentang menghapus VLC dari menu suara, dibandingkan menghentikannya terus muncul. Tidak yakin apakah kedua jawaban harus tetap terbuka. askubuntu.com/questions/455940/…
Aibara
Nick, saya mengedit jawaban saya untuk mencegahnya (secara permanen) kembali ke soundmenu.
Jacob Vlijm
ya, itu terus muncul setiap kali saya menggunakan vlc. Saya mencari melalui tutorial internet tentang cara menonaktifkannya di preferensi dan tidak dapat menemukannya karena versi saya terlalu baru. yang disebut "D-Bus"
Nick Bailuc
Kemungkinan rangkap: askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
Exeleration-G

Jawaban:

14
  1. Pindahkan plugin VLC DBus

    sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
    
  2. Buka dconf-editor, Hapus vlc.desktopdari:

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

    Atau atur ulang melalui terminal

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

Catatan: Seseorang mungkin ingin Memodifikasi menu indikator suara untuk menyembunyikan kontrol dari pemutar tidak aktif atau menghapusnya setelah ditutup . Dengan kata lain, pemain Running memiliki kontrol penuh, yang tertutup hanya peluncur (tanpa tombol kontrol) atau hilang sama sekali dari menu.

user.dz
sumber
3
Perbaikan ini juga berfungsi!
Aibara
6

Cara menghapus VLC dari menu suara / Cara mencegah VLC muncul kembali di menu suara.

Menghapus VLC dari menu suara

Metode GUI

  • Instal editor dconf
  • Buka dconf-editor, dan browse ke: com/canonical/indicator/sound

masukkan deskripsi gambar di sini

  • Dalam daftar interested-media-playersitem soundmenu ( ), hapus aplikasi yang tidak perlu / ingin Anda tampilkan di menu. Tutup dconf-editor.

masukkan deskripsi gambar di sini

  • Selesai, VLC menghilang dari menu.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Metode baris perintah

  • Untuk membaca item menu saat ini:

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

    memberikan output seperti:

    ['rhythmbox.desktop', 'vlc.desktop']
    
  • Untuk menghapus VLC, hapus vlc.desktopdari daftar dan atur menu yang diubah dengan perintah:

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

Mencegah VLC kembali dalam menu suara (14.04)

Solusinya menghilangkan VLC dari menu suara, tetapi jika Anda memulai VLC, itu akan muncul lagi di menu suara. Script di bawah ini tidak mencegah hal itu, tetapi segera dan secara otomatis menghapusnya setelah VLC ditutup.

Untuk menggunakannya:

Salin skrip di bawah ini, rekatkan di file teks kosong dan simpan sebagai vlc, buat agar dapat dieksekusi. Kemudian salin vlc.desktopfile dari /usr/share/applicationske ~/.local/share/applicationsdan mengganti (pertama) garis start dengan Exec=oleh Exec=/path/to/script/vlc. Logout dan kembali. Desktopfile akan diarahkan ke skrip, skrip akan mulai VLC dan tunggu sampai berhenti dan menghapus VLC dari soundmenu segera.

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

Aplikasi lain

Metode / skrip ini juga dapat digunakan untuk aplikasi lain dalam menu suara. Dua baris di bagian terakhir dari skrip perlu diubah kemudian, sesuai dengan aplikasi lain:

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

dan

subprocess.call(["/usr/bin/vlc"]) (change the command to run the application)
Yakub Vlijm
sumber
Saya melakukan metode terminal karena saya tidak ingin menginstal aplikasi yang tidak dibutuhkan. terima kasih, itu berhasil seketika
Nick Bailuc
1
Saya setuju! jika tidak perlu, saya lebih suka tidak menginstal perangkat lunak tambahan. Senang itu berhasil.
Jacob Vlijm
Tapi itu akan dibacakan segera setelah Anda membuka VLC lagi ...
Aibara
Koreksi: segera setelah Anda mulai memutar video di VLC lagi.
Aibara
1
@NickBailuc saya mencoba, dan Anda benar, saya akan membalas Anda tentang ini!
Jacob Vlijm
1

Tampilkan aplikasi yang ditentukan pengguna dalam soundmenu hanya jika dijalankan

Solusi di bawah ini dapat digunakan secara fleksibel untuk berbagai aplikasi sekaligus dengan posisi di menu suara. Pengguna dapat menentukan (dan mengubah) aplikasi mana yang memiliki posisi permanen dalam menu, dan mana yang harus dihapus dari menu suara setelah ditutup.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Apa itu dan apa fungsinya

Solusi ada dari skrip yang berjalan dari startup (login). Hal ini memungkinkan aplikasi yang ditentukan pengguna untuk muncul di menu suara, tetapi menghapus aplikasi tersebut dari soundmenu setelah ditutup.

Script tidak berpengaruh pada fungsionalitas file desktop. Saya tidak dapat melihat adanya efek pada beban prosesor, penggunaan memori dapat diabaikan.

Cara Penggunaan

  • Salin skrip di bawah ini ke file kosong, simpan sebagai cleanup_soundmenu.py

  • Sejalan dengan mulai no_show =, aplikasi diatur yang harus dibersihkan dari menu setelah mereka ditutup. Dua contoh ditetapkan: ['rhythmbox', 'vlc']. Nama diambil dari file desktop mereka, dihapus dari .desktop.

  • Sejalan, dimulai dengan cleanup_interval, pengguna dapat menentukan interval antara pemeriksaan pembersihan. Secara default 10 detik.

  • Tambahkan baris berikut ke Startup Applications(Dash> Aplikasi Startup> Tambah):

    python3 /path/to/cleanup_soundmenu.py
    

Pada login berikutnya, aplikasi yang ditentukan akan dibersihkan dari menu suara jika tidak berjalan.

Naskah

#!/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)
Yakub Vlijm
sumber
Ya itu berfungsi, tetapi menjalankan pemeriksaan setiap 10 detik untuk suatu peristiwa yang mungkin terjadi sekali atau dua kali per sesi tampaknya sangat tidak efisien.
Lilley
@Lilley mendapatkan nilai dari gsettings sangat ringan, dan perhatikan fakta bahwa sistem menjalankan semua jenis loop secara konstan.
Jacob Vlijm
1

Ubuntu 14,04 solusi sederhana (hanya satu perintah, tanpa sudo, tidak ada skrip).

Buka aplikasi Terminal, lalu salin, tempel dan laksanakan salah satu dari perintah berikut. Setelah itu indikator suara akan secara otomatis dibersihkan setelah VLC keluar.

  1. jangan tinggalkan entri apa pun dalam indikator suara:

    (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. biarkan entri Rhythmbox dalam indikator suara:

    (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. membatalkan perubahan:

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

Ini sebuah artikel tentang cara menambahkan fitur ini melakukan skenario sebaliknya:

Alat -> Preferensi -> semua -> Antarmuka -> Antarmuka Kontrol -> Antarmuka Kontrol D-Bus

Hedwig
sumber
3
Opsi ini tidak lagi ada di VLC.
Aibara
Doh itu ada untuk saya, mungkin saya sudah versi lama ..
Hedwig