从Unity栏中的声音菜单中删除VLC播放器


11

我使用VLC的地方不多,所以我想从右上角的声音菜单中删除它。我发现了一个小图像,可以显示它的外观(声音菜单已打开,并与其他音乐播放器一起显示VLC)。

在此处输入图片说明

很抱歉提供非常低的分辨率图像。


我之前问过这个问题,所以这有点重复。尽管这只是从声音菜单中删除VLC,而不是阻止VLC连续出现。不知道两个答案是否都应该公开。askubuntu.com/questions/455940/...
Aibara

尼克,我编辑了答案,以防止(永久)重读声音菜单。
雅各布·弗利姆

是的,每当我使用vlc时,它就会不断出现。我正在浏览有关如何在首选项中禁用它并找不到它的互联网教程,因为我的版本太新了。它叫做“ D-Bus”
Nick Bailuc 2014年

可能的重复:askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
Exeleration-G

Answers:


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-editorvlc.desktop从以下位置删除:

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

    或者只是通过终端重置

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

注意:某些人可能想修改声音指示器菜单,以隐藏不活动播放器中的控件,或在关闭后将其删除。换句话说,正在运行的播放器具有完全控制权,而关闭的播放器仅具有启动器(无控制按钮)或完全从菜单中消失。


3
此修复程序也有效!
艾巴拉2014年

6

如何从声音菜单中删除VLC /如何防止VLC重新出现在声音菜单中。

从声音菜单中删除VLC

GUI方法

  • 安装dconf编辑器
  • 打开dconf-editor,然后浏览至: com/canonical/indicator/sound

在此处输入图片说明

  • 在声音菜单(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。

#!/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 2014年

1
我同意!如果没有必要,我宁愿不安装附加软件。很高兴它解决了。
Jacob Vlijm 2014年

但是,只要您再次打开VLC,它就会被重新读...
Aibara 2014年

纠正:一旦您再次开始在VLC中播放视频。
艾巴拉2014年

1
我尝试了@NickBailuc,您说的对,我会就此与您联系!
Jacob Vlijm 2014年

1

仅在运行时在声音菜单中显示用户定义的应用程序

下面的解决方案可在声音菜单中的某个位置一次灵活地用于多种应用程序。用户可以定义(和更改)哪些应用程序在菜单中具有永久位置,以及哪些应用程序在关闭后应从声音菜单中删除。

在此处输入图片说明 在此处输入图片说明

它是什么,它做什么

该解决方案存在一个从启动(登录)运行的脚本。它允许用户定义的应用程序出现在声音菜单中,但在关闭后将其从声音菜单中删除。

该脚本对桌面文件的功能没有影响。我没有注意到对处理器负载的任何影响,内存使用率可以忽略不计。

如何使用

  • 将以下脚本复制到一个空文件中,另存为 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)

是的,它可以工作,但是每10秒运行一次检查,检查每个会话可能发生一次或两次的事件的效率极低。
Lilley 2015年

@Lilley从gsettings获取值非常轻松,并且要意识到系统会不断运行各种循环。
Jacob Vlijm'3

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
    

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.