Como posso ocultar o ícone do indicador de email do Empathy?

4

Desde que configurei o Empathy, tenho um novo ícone mostrado na barra de ícones do indicador. Este ícone permanece visível mesmo se eu fechar o Empathy.

Como posso ter esse ícone desaparecendo quando não estou usando o Empathy?

    
por orschiro 16.02.2016 / 18:39

2 respostas

3

Inspirado pela resposta do cl-netbox, você pode automaticamente remover o ícone depois que empathy fechar. Isso pode ser feito executando (iniciando) empathy por meio de um script de wrapper. Tanto quanto eu posso ver, isso não tem desvantagem. A única desvantagem possível é que a opção de clicar com o botão direito do mouse para abrir com não funciona, mas isso não se aplica a empathy .

O wrapper só seria executado durante e somente enquanto a empatia estivesse sendo executada, aguardando o fechamento, portanto a solução é muito específica.

O que faz

  • Quando a empatia é executada (através do wrapper), um pequeno script é iniciado, fazendo duas coisas:

    • olhe (marque) para o indicador empathy ficar visível, pelo comando:

      gsettings get com.canonical.indicator.messages applications
      

      Isso retornará uma lista de indicadores atuais. Se o indicador empathy não estiver incluído, o script o adiciona à lista e define a lista alterada pelo comando:

      gsettings set com.canonical.indicator.messages applications <newlist>
      
    • Em seguida, o script procura a existência de uma janela empathy
      Se não existir mais nenhuma janela de empatia, o script buscará novamente a lista de indicadores e removerá o indicador da mesma maneira.

  • Em seguida, o script wrapper é encerrado e seu ícone é removido do painel.

O wrapper

#!/usr/bin/env python3
import subprocess
import time

key = "com.canonical.indicator.messages"

def hide_icon(icon, mode):
    # function to remove the targeted icon from the list
    current = eval(subprocess.check_output([
        "gsettings", "get", key, "applications"
        ]).decode("utf-8").strip())
    if mode == "h":
        try:
            current.remove(icon)
        except ValueError:
            pass
    elif mode == "s":
        if not icon in current:
            current.append(icon)
    subprocess.call([
        "gsettings", "set", key, "applications", str(current)
        ])

# run empathy
subprocess.Popen(["empathy"])
# make sure the icon shows
hide_icon('empathy.desktop', "s")

while True:
    time.sleep(3)
    try:
        # get the pid of empathy
        pid = subprocess.check_output(["pgrep", "empathy"]).decode("utf-8").strip()
    except subprocess.CalledProcessError:
        break
    else:
        try:
            # see if the pid of empathy is still in the window list...
            wlist = subprocess.check_output(["wmctrl", "-lp"]).decode("utf-8")
            # ...if not, remove the icon from the list and break
            if not pid in wlist:
                hide_icon('empathy.desktop', "h")
                break
        except subprocess.CalledProcessError:
            pass

Como configurar

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

  • Teste o script com o comando:

    python3 /path/to/no_indicator.py
    

    O ícone deve desaparecer se você fechar a empatia. Se tudo funciona bem:

  • Copie o arquivo global empathy.desktop para ~/.local/share/applications :

    cp /usr/share/applications/empathy.desktop ~/.local/share/applications
    
  • Abra o arquivo copiado localmente com gedit :

    gedit ~/.local/share/applications/empathy.desktop
    

    substitua a linha:

    Exec=empathy
    

    por:

    Exec=python3 /path/to/no_indicator.py
    
  • logo antes (acima) da linha, começando com Actions= , insira a linha:

    StartupWMClass=empathy
    

    Isso evita um ícone extra no Iniciador quando você executa empathy

  • Faça logout e volte em

por Jacob Vlijm 16.02.2016 / 21:07
2

Instale a ferramenta dconf-editor ... abra um terminal e execute:

sudo apt-get install dconf-editor  

Abra o Editor dconf , navegue até com canônico indicador mensagens .

Remova 'empathy.desktop' no painel direito, saia e volte.

Agora, o ícone do Empathy não aparece mais na barra de indicadores.

Nota:

Na próxima vez que você abrir o Empathy, o ícone irá reaparecer e você terá que repetir o procedimento.
Quando você quiser remover permanentemente o ícone, você deve executar o seguinte comando:

sudo apt-get remove indicator-messages  

A desvantagem é que o ícone do Thunderbird também será removido - então a decisão depende de você ...

    
por cl-netbox 16.02.2016 / 18:57