Remova o VLC player do menu de som na barra do Unity

11

Eu não uso muito o VLC para tê-lo lá, então gostaria de removê-lo do menu de som no canto superior direito. Encontrei uma pequena imagem para mostrar como é (o menu de som é aberto e mostra o VLC junto com outros players de música).

insira a descrição da imagem aqui

Desculpe por fornecer uma imagem de resolução muito baixa.

Nick Bailuc
fonte
Eu fiz essa pergunta antes, então isso é uma espécie de duplicata. Embora isso peça apenas para remover o VLC do menu de som, em vez de impedir que ele apareça continuamente. Não tenho certeza se as duas respostas devem permanecer abertas. askubuntu.com/questions/455940/…
Aibara
Nick, editei minha resposta para impedir que ela permanecesse (permanentemente) no menu de som.
Jacob Vlijm
sim, ele continua aparecendo sempre que eu uso o vlc. Eu estou olhando através de tutoriais na Internet sobre como desabilitá-lo nas preferências e não consigo encontrá-lo porque minha versão é muito nova. é chamado "D-Bus"
Nick Bailuc
Possível duplicata: askubuntu.com/questions/177652/disable-vlcs-mpris-plugian
Exeleration-G

Respostas:

14
  1. Mover o plugin VLC DBus

    sudo mv /usr/lib/vlc/plugins/control/libdbus_plugin.so /usr/lib/vlc/plugins/control/libdbus_plugin.so.backup
    
  2. Abrir dconf-editor, Remover vlc.desktopde:

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

    Ou apenas redefini-lo através do terminal

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

Nota: Alguém pode gostar de Modificar o menu do indicador de som para ocultar os controles do reprodutor inativo ou removê-lo após o fechamento . Em outras palavras, os jogadores em execução têm controles completos, os fechados são apenas o iniciador (sem botões de controle) ou desaparecem totalmente do menu.

user.dz
fonte
3
Essa correção também funciona!
Aibara
6

Como remover o VLC do menu de som / Como impedir que o VLC reapareça no menu de som.

Removendo o VLC do menu de som

Método GUI

  • Instale o editor dconf
  • Abra o dconf-editor e navegue até: com/canonical/indicator/sound

insira a descrição da imagem aqui

  • Na lista de itens do menu sound ( interested-media-players), remova os aplicativos que você não precisa / deseja que apareça no menu. Feche o dconf-editor.

insira a descrição da imagem aqui

  • Feito, o VLC desapareceu do menu.

insira a descrição da imagem aqui insira a descrição da imagem aqui

Método de linha de comando

  • Para ler os itens de menu atuais:

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

    dá uma saída como:

    ['rhythmbox.desktop', 'vlc.desktop']
    
  • Para remover o VLC, remova vlc.desktopda lista e defina o menu alterado pelo comando:

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

Impedindo o retorno do VLC no menu de som (14.04)

A solução remove o VLC do menu de som, mas se você iniciar o VLC, ele aparecerá novamente no menu de som. O script abaixo não impede isso, mas imediatamente e automaticamente o remove quando o VLC é fechado.

Para usá-lo:

Copie o script abaixo, cole-o em um arquivo de texto vazio e salve-o como vlc, torne-o executável. Em seguida, copie o vlc.desktoparquivo de /usr/share/applicationspara ~/.local/share/applicationse substitua a (primeira) linha começando com Exec=por Exec=/path/to/script/vlc. Efetue logout e logon novamente. O arquivo da área de trabalho será redirecionado para o script, o script iniciará o VLC e esperará que ele pare e remova o VLC do menu do som imediatamente.

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

Outras aplicações

Este método / script também pode ser usado para outras aplicações no menu de som. Duas linhas na última seção do script precisam ser alteradas, de acordo com o outro aplicativo:

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

e

subprocess.call(["/usr/bin/vlc"]) (change the command to run the application)
Jacob Vlijm
fonte
Eu fiz o método terminal porque não queria instalar aplicativos desnecessários. obrigado, funcionou instantaneamente
Nick Bailuc
1
Concordo! se não for necessário, prefiro não instalar software adicional. Ainda bem que funcionou.
Jacob Vlijm
Mas serão lidos logo que você abrir VLC de novo ...
Aibara
Correção: assim que você começar a reproduzir um vídeo no VLC novamente.
Aibara 23/05
1
@ NickBailuc eu tentei, e você está certo, eu vou voltar para você sobre isso!
27630 Jacob Vlijm
1

Mostrar aplicativos definidos pelo usuário no menu de som somente se eles forem executados

A solução abaixo é flexível e utilizável para várias aplicações de uma só vez, com uma posição no menu de som. O usuário pode definir (e alterar) quais aplicativos têm uma posição permanente no menu e quais devem ser removidos do menu de som após serem fechados.

insira a descrição da imagem aqui insira a descrição da imagem aqui

O que é e o que faz

A solução existe de um script que é executado a partir da inicialização (login). Ele permite que aplicativos definidos pelo usuário apareçam no menu de som, mas remove esses aplicativos do menu de som após o fechamento.

O script não afeta a funcionalidade dos arquivos da área de trabalho. Não pude notar nenhum efeito na carga do processador, o uso da memória é insignificante.

Como usar

  • Copie o script abaixo em um arquivo vazio, salve-o como cleanup_soundmenu.py

  • Na linha que começa com no_show =, são definidos aplicativos que devem ser limpos no menu após serem fechados. Dois exemplos são definidas: ['rhythmbox', 'vlc']. Os nomes são retirados de seus arquivos da área de trabalho, removidos .desktop.

  • Na linha, começando com cleanup_interval, o usuário pode definir o intervalo entre as verificações de limpeza. Por padrão, são 10 segundos.

  • Adicione a seguinte linha a Startup Applications(Dash> Startup Applications> Add):

    python3 /path/to/cleanup_soundmenu.py
    

No próximo login, o aplicativo definido será limpo do menu de som, se não estiver em execução.

O script

#!/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)
Jacob Vlijm
fonte
Sim, funciona, mas executar uma verificação a cada 10 segundos para um evento que pode ocorrer uma ou duas vezes por sessão parece extremamente ineficiente.
Lilley
@Lilley obter valores de gsettings é extremamente leve e esteja ciente do fato de que o sistema executa todos os tipos de loops constantemente.
Jacob Vlijm 11/03/2015
1

Solução simples Ubuntu 14.04 (apenas um comando, sem sudo, sem script).

Abra o aplicativo Terminal, copie, cole e execute um dos seguintes comandos. Depois disso, o indicador de som será limpo automaticamente após a saída do VLC.

  1. não deixe nenhuma entrada dentro do indicador de som:

    (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. deixe a entrada Rhythmbox dentro do indicador sonoro:

    (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. desfazer mudanças:

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

Este artigo sobre como adicionar esse recurso faz o cenário oposto:

Ferramentas -> Preferências -> tudo -> Interface -> Interface de Controle -> Interface de Controle D-Bus

Hedwig
fonte
3
Esta opção não está mais presente no VLC.
Aibara
D'oh ela existe para mim, talvez eu tenha uma versão antiga ..
Hedwig