ฉันไม่ได้ใช้ VLC ที่มีอยู่มากมายดังนั้นฉันจึงต้องการลบออกจากเมนูเสียงที่ด้านบนขวา ฉันพบภาพเล็ก ๆ เพื่อแสดงสิ่งที่ดูเหมือน (เมนูเสียงเปิดอยู่และแสดง VLC พร้อมกับเครื่องเล่นเพลงอื่น ๆ )
ขออภัยที่ให้ภาพความละเอียดต่ำมาก
ฉันไม่ได้ใช้ VLC ที่มีอยู่มากมายดังนั้นฉันจึงต้องการลบออกจากเมนูเสียงที่ด้านบนขวา ฉันพบภาพเล็ก ๆ เพื่อแสดงสิ่งที่ดูเหมือน (เมนูเสียงเปิดอยู่และแสดง VLC พร้อมกับเครื่องเล่นเพลงอื่น ๆ )
ขออภัยที่ให้ภาพความละเอียดต่ำมาก
คำตอบ:
ย้ายปลั๊กอิน VLC DBus
sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
เปิดdconf-editor
ลบออกvlc.desktop
จาก:
/com/canonical/indicator/sound/interested-media-players
หรือเพียงแค่รีเซ็ตผ่านเทอร์มินัล
dconf reset /com/canonical/indicator/sound/interested-media-players
หมายเหตุ: Someones อาจต้องการเมนูตัวบ่งชี้การปรับเปลี่ยนเสียงเพื่อควบคุมซ่อนจากผู้เล่นที่ไม่ใช้งานหรือลบมันหลังจาก closeing กล่าวอีกนัยหนึ่งผู้เล่นที่รันมีการควบคุมอย่างเต็มรูปแบบตัวที่ปิดไม่ว่าจะเป็นตัวเรียกใช้งานเท่านั้น (ไม่มีปุ่มควบคุม) หรือหายไปจากเมนูโดยสิ้นเชิง
วิธีการลบ VLC ออกจากเมนูเสียง / วิธีป้องกัน VLC ไม่ให้ปรากฏขึ้นอีกครั้งในเมนูเสียง
การลบ VLC ออกจากเมนูเสียง
วิธีการแบบ GUI
com/canonical/indicator/sound
interested-media-players
) รายการให้ลบแอปพลิเคชันที่คุณไม่ต้องการ / ต้องการให้ปรากฏในเมนู ปิดตัวแก้ไข dconf
วิธีการบรรทัดคำสั่ง
วิธีอ่านรายการเมนูปัจจุบัน:
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)
แสดงแอปพลิเคชั่นที่ผู้ใช้กำหนดใน 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)
เปิดแอปพลิเคชันเทอร์มินัลจากนั้นคัดลอกวางและดำเนินการคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้ หลังจากนั้นตัวบ่งชี้เสียงจะถูกล้างออกโดยอัตโนมัติหลังจากที่ VLC ออก
อย่าออกจากรายการใด ๆ ภายในตัวบ่งชี้เสียง:
(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)
ปล่อยให้รายการ 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)
เลิกทำการเปลี่ยนแปลง:
rm ~/.local/share/applications/vlc.desktop