ลบ VLC player จากเมนูเสียงใน Unity bar


11

ฉันไม่ได้ใช้ VLC ที่มีอยู่มากมายดังนั้นฉันจึงต้องการลบออกจากเมนูเสียงที่ด้านบนขวา ฉันพบภาพเล็ก ๆ เพื่อแสดงสิ่งที่ดูเหมือน (เมนูเสียงเปิดอยู่และแสดง VLC พร้อมกับเครื่องเล่นเพลงอื่น ๆ )

ป้อนคำอธิบายรูปภาพที่นี่

ขออภัยที่ให้ภาพความละเอียดต่ำมาก


ฉันถามคำถามนี้มาก่อนดังนั้นนี่จึงเป็นเรื่องซ้ำซ้อน แม้ว่าสิ่งนี้จะถามเพียงแค่การลบ VLC ออกจากเมนูเสียง แต่เมื่อเทียบกับการหยุด VLC ปรากฏขึ้นอย่างต่อเนื่อง ไม่แน่ใจว่าคำตอบทั้งคู่ควรเปิดอยู่หรือไม่ askubuntu.com/questions/455940/…
Aibara

นิคฉันได้แก้ไขคำตอบของฉันเพื่อป้องกันไม่ให้ (กลับมาถาวร) เพื่อ soundmenu
Jacob Vlijm

ใช่มันยังคงปรากฏเมื่อใดก็ตามที่ฉันใช้ vlc ฉันกำลังมองหาบทเรียนอินเทอร์เน็ตเกี่ยวกับวิธีการปิดการใช้งานในการตั้งค่าและไม่สามารถหามันเพราะรุ่นของฉันใหม่เกินไป มันเรียกว่า "D-Bus"
Nick Bailuc

สำเนาซ้ำที่เป็นไปได้: askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
Exocity-G

คำตอบ:


14
  1. ย้ายปลั๊กอิน VLC DBus

    sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
    
  2. เปิดdconf-editorลบออกvlc.desktopจาก:

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

    หรือเพียงแค่รีเซ็ตผ่านเทอร์มินัล

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

หมายเหตุ: Someones อาจต้องการเมนูตัวบ่งชี้การปรับเปลี่ยนเสียงเพื่อควบคุมซ่อนจากผู้เล่นที่ไม่ใช้งานหรือลบมันหลังจาก closeing กล่าวอีกนัยหนึ่งผู้เล่นที่รันมีการควบคุมอย่างเต็มรูปแบบตัวที่ปิดไม่ว่าจะเป็นตัวเรียกใช้งานเท่านั้น (ไม่มีปุ่มควบคุม) หรือหายไปจากเมนูโดยสิ้นเชิง


3
การแก้ไขนี้ทำงานเช่นกัน!
Aibara

6

วิธีการลบ VLC ออกจากเมนูเสียง / วิธีป้องกัน VLC ไม่ให้ปรากฏขึ้นอีกครั้งในเมนูเสียง

การลบ VLC ออกจากเมนูเสียง

วิธีการแบบ GUI

  • ติดตั้งโปรแกรมแก้ไข dconf
  • เปิด dconf-editor และเรียกดู: com/canonical/indicator/sound

ป้อนคำอธิบายรูปภาพที่นี่

  • ในรายการ soundmenu ( interested-media-players) รายการให้ลบแอปพลิเคชันที่คุณไม่ต้องการ / ต้องการให้ปรากฏในเมนู ปิดตัวแก้ไข dconf

ป้อนคำอธิบายรูปภาพที่นี่

  • เสร็จสิ้น VLC หายไปจากเมนู

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

วิธีการบรรทัดคำสั่ง

  • วิธีอ่านรายการเมนูปัจจุบัน:

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

    ให้ผลลัพธ์เช่น:

    ['rhythmbox.desktop', 'vlc.desktop']
    
  • หากต้องการลบ VLC ให้ลบออกvlc.desktopจากรายการและตั้งค่าเมนูที่เปลี่ยนแปลงโดยคำสั่ง:

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

การป้องกัน VLC ไม่ให้กลับมาในเมนูเสียง (14.04)

วิธีแก้ปัญหาจะลบ VLC จากเมนูเสียง แต่ถ้าคุณเริ่ม VLC มันจะปรากฏขึ้นอีกครั้งในเมนูเสียง สคริปต์ด้านล่างไม่ได้ป้องกันสิ่งนั้น แต่จะลบทันทีโดยอัตโนมัติเมื่อปิด VLC

วิธีใช้:

คัดลอกสคริปต์ด้านล่างวางในเท็กซ์ไฟล์เปล่าและบันทึกเป็นvlcทำให้ใช้งานได้ คัดลอกvlc.desktopไฟล์/usr/share/applicationsไป~/.local/share/applicationsและแทนที่ (ตอนแรก) เส้นเริ่มต้นด้วยโดยExec= Exec=/path/to/script/vlcออกจากระบบและกลับเข้าสู่ระบบ desktopfile จะถูกเปลี่ยนเส้นทางไปยังสคริปต์สคริปต์จะเริ่ม VLC และรอให้มันหยุดและลบ VLC จาก soundmenu ทันที

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

แอพพลิเคชั่นอื่น ๆ

วิธีการ / สคริปต์นี้สามารถใช้กับแอพพลิเคชั่นอื่น ๆ ในเมนูเสียง สองบรรทัดในส่วนสุดท้ายของสคริปต์จะต้องมีการเปลี่ยนแปลงตามแอปพลิเคชันอื่น:

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

และ

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

ฉันทำวิธีการเทอร์มินัลเพราะฉันไม่ต้องการติดตั้งแอปพลิเคชันที่ไม่จำเป็น ขอบคุณมันทำงานได้ทันที
Nick Bailuc

1
ฉันเห็นด้วย! หากไม่จำเป็นฉันไม่ต้องการติดตั้งซอฟต์แวร์เพิ่มเติม ดีใจที่ได้ผล
Jacob Vlijm

แต่มันจะเป็น readded เร็วที่สุดเท่าที่คุณเปิด VLC อีกครั้ง ...
Aibara

การแก้ไข: ทันทีที่คุณเริ่มเล่นวิดีโอใน VLC อีกครั้ง
Aibara

1
@ NickBailuc ฉันลองแล้วคุณพูดถูกฉันจะกลับไปหาคุณ!
Jacob Vlijm

1

แสดงแอปพลิเคชั่นที่ผู้ใช้กำหนดใน Soundmenu เฉพาะเมื่อเรียกใช้

วิธีการแก้ปัญหาด้านล่างสามารถใช้งานได้อย่างยืดหยุ่นสำหรับแอพพลิเคชั่นพร้อมกันหลายตำแหน่งพร้อมตำแหน่งในเมนูเสียง ผู้ใช้สามารถกำหนด (และเปลี่ยนแปลง) แอพพลิเคชั่นที่มีตำแหน่งถาวรในเมนูและแอปพลิเคชันใดที่ควรลบออกจากเมนูเสียงหลังจากปิด

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

มันคืออะไรและมันทำอะไร

การแก้ปัญหาที่มีอยู่ของสคริปต์ที่ทำงานตั้งแต่เริ่มต้น (เข้าสู่ระบบ) อนุญาตให้แอปพลิเคชันที่ผู้ใช้กำหนดปรากฏในเมนูเสียง แต่จะลบแอปพลิเคชันเหล่านั้นออกจาก Soundmenu หลังจากปิด

สคริปต์ไม่มีผลต่อการทำงานของไฟล์เดสก์ท็อป ฉันไม่สามารถสังเกตเห็นผลกระทบใด ๆ ที่มีต่อโหลดของโปรเซสเซอร์การใช้หน่วยความจำนั้นเล็กน้อย

วิธีใช้

  • คัดลอกสคริปต์ด้านล่างลงในไฟล์ว่างแล้วบันทึกเป็น cleanup_soundmenu.py

  • ในบรรทัดที่ขึ้นต้นด้วยno_show =แอปพลิเคชันจะถูกตั้งค่าซึ่งควรล้างข้อมูลจากเมนูหลังจากปิด มีการตั้งค่าสองตัวอย่าง: ['rhythmbox', 'vlc']. ชื่อจะถูก derrived .desktopจากไฟล์สก์ท็อปของพวกเขาปล้นจาก

  • ในบรรทัดเริ่มต้นด้วยcleanup_intervalผู้ใช้สามารถกำหนดช่วงเวลาระหว่างการตรวจสอบทำความสะอาด โดยค่าเริ่มต้นคือ 10 วินาที

  • เพิ่มบรรทัดต่อไปนี้ในStartup Applications(Dash> แอปพลิเคชันเริ่มต้น> เพิ่ม):

    python3 /path/to/cleanup_soundmenu.py
    

ในการเข้าสู่ระบบครั้งต่อไปแอปพลิเคชันที่กำหนดจะถูกล้างออกจากเมนูเสียงหากไม่ได้ทำงานอยู่

สคริปต์

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

ใช่มันใช้งานได้ แต่ใช้การตรวจสอบทุก ๆ 10 วินาทีสำหรับเหตุการณ์ที่อาจเกิดขึ้นหนึ่งหรือสองครั้งต่อเซสชันดูเหมือนว่าจะไม่มีประสิทธิภาพมาก
Lilley

@Lilley การรับค่าจาก gsettings นั้นเบามากและระวังว่าระบบทำงานลูปทุกชนิดอย่างต่อเนื่อง
Jacob Vlijm

1

Ubuntu 14.04 วิธีแก้ปัญหาง่าย ๆ (เพียงคำสั่งเดียวไม่มี sudo ไม่มีสคริปต์)

เปิดแอปพลิเคชันเทอร์มินัลจากนั้นคัดลอกวางและดำเนินการคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้ หลังจากนั้นตัวบ่งชี้เสียงจะถูกล้างออกโดยอัตโนมัติหลังจากที่ VLC ออก

  1. อย่าออกจากรายการใด ๆ ภายในตัวบ่งชี้เสียง:

    (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. ปล่อยให้รายการ Rhythmbox ภายในตัวบ่งชี้เสียง:

    (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. เลิกทำการเปลี่ยนแปลง:

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

0

นี้บทความเกี่ยวกับวิธีการเพิ่มคุณลักษณะนี้ทำสถานการณ์ตรงข้าม:

เครื่องมือ -> การตั้งค่า -> ทั้งหมด -> ส่วนต่อประสาน -> ส่วนต่อประสานการควบคุม -> ส่วนต่อประสานการควบคุม D-Bus


3
ตัวเลือกนี้ไม่มีอยู่ใน VLC
Aibara

มีอยู่สำหรับฉันแล้วบางทีฉันอาจเป็นรุ่นเก่า ..
Hedwig
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.