我使用VLC的地方不多,所以我想从右上角的声音菜单中删除它。我发现了一个小图像,可以显示它的外观(声音菜单已打开,并与其他音乐播放器一起显示VLC)。
很抱歉提供非常低的分辨率图像。
我使用VLC的地方不多,所以我想从右上角的声音菜单中删除它。我发现了一个小图像,可以显示它的外观(声音菜单已打开,并与其他音乐播放器一起显示VLC)。
很抱歉提供非常低的分辨率图像。
Answers:
移动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
注意:某些人可能想修改声音指示器菜单,以隐藏不活动播放器中的控件,或在关闭后将其删除。换句话说,正在运行的播放器具有完全控制权,而关闭的播放器仅具有启动器(无控制按钮)或完全从菜单中消失。
如何从声音菜单中删除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。
#!/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)
仅在运行时在声音菜单中显示用户定义的应用程序
下面的解决方案可在声音菜单中的某个位置一次灵活地用于多种应用程序。用户可以定义(和更改)哪些应用程序在菜单中具有永久位置,以及哪些应用程序在关闭后应从声音菜单中删除。
它是什么,它做什么
该解决方案存在一个从启动(登录)运行的脚本。它允许用户定义的应用程序出现在声音菜单中,但在关闭后将其从声音菜单中删除。
该脚本对桌面文件的功能没有影响。我没有注意到对处理器负载的任何影响,内存使用率可以忽略不计。
如何使用
将以下脚本复制到一个空文件中,另存为 cleanup_soundmenu.py
在以开头的行中no_show =
,设置了应关闭的应用程序,应在菜单中清除它们。设置了两个示例:['rhythmbox', 'vlc']
。名称是从其桌面文件(从中删除)衍生而来的.desktop
。
在以开头的行中,cleanup_interval
用户可以定义两次清理检查之间的间隔。默认情况下为10秒。
Startup Applications
将以下行添加到(短划线>启动应用程序>添加):
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