Как я могу скрыть почтовый значок индикатора Сочувствия?

Так как я настроил Сочувствие, мне показали новый значок в панели кнопок индикатора. Этот значок остается видимым, даже если я закрываю Сочувствие.

Как у меня может быть этот значок, исчезают если не с помощью Сочувствия?

enter image description here

4
задан 6 April 2016 в 12:57

2 ответа

Вдохновленный статьей-netbox' ответ, можно автоматически удалить значок после empathy завершения. Это может быть сделано путем выполнения (запуск) empathy через сценарий обертки. Насколько я вижу, это не имеет никакой оборотной стороны. Единственная возможная оборотная сторона была бы то, что опция щелчка правой кнопкой открыться не работает, но это не относится empathy.

Обертка только работала бы во время, и только целый, сочувствие работает, ожидая ее для закрытия, таким образом, решение очень конкретно.

Что это делает

  • Когда сочувствие выполняется (через обертку), маленький сценарий запускается, делая две вещи:

    • посмотрите (проверяют) на empathy индикатор, чтобы быть видимым, командой:

      gsettings get com.canonical.indicator.messages applications
      

      Это возвратит список текущих индикаторов. Если empathy индикатор не включен, сценарий добавляет его к списку и устанавливает измененный список командой:

      gsettings set com.canonical.indicator.messages applications <newlist>
      
    • Затем сценарий ищет существование empathy окно
      Если никакое окно сочувствия больше не существует, сценарий выбирает список индикаторов снова и удаляет индикатор таким же образом.

  • Затем обертка - сценарий завершает себя, и Ваш значок удален из панели.

Обертка

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

Как настроить

  • Скопируйте сценарий в пустой файл, сохраните его как no_indicator.py

  • Тестовый прогон сценарий с командой:

    python3 /path/to/no_indicator.py
    

    Значок должен исчезнуть при закрытии сочувствия. Если все хорошо работает:

  • Скопируйте глобальное empathy.desktop файл к ~/.local/share/applications:

    cp /usr/share/applications/empathy.desktop ~/.local/share/applications
    
  • Откройте локально скопированный файл с gedit:

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

    замените строку:

    Exec=empathy
    

    :

    Exec=python3 /path/to/no_indicator.py
    
  • незадолго до (выше) строки, начиная с Actions=, вставьте строку:

    StartupWMClass=empathy
    

    Это должно предотвратить дополнительный значок в Средстве запуска, когда Вы работаете empathy

  • Выйдите из системы и въезжайте задним ходом

3
ответ дан 1 December 2019 в 09:33

Установите dconf-editor, инструмент... открывает терминал и выполняется:

sudo apt-get install dconf-editor  
<час>

Открытый dconf Редактор , перейдите к com в †’ канонический в †’ индикатор в †’ сообщения .

enter image description here

Удаляют 'empathy.desktop' на правой панели, выходят из системы и въезжают задним ходом.

enter image description here

Теперь значок Empathy больше не появляется в панели индикатора.

<час>

Примечание:

В следующий раз, когда Вы открываете Empathy, значок вновь появится, и необходимо повторить процедуру.
, Когда Вы хотите постоянно удалить значок, необходимо выполнить следующую команду:

sudo apt-get remove indicator-messages  

оборотная сторона, что значок Thunderbird будет также удален - таким образом, решение будет ваше дело...

2
ответ дан 1 December 2019 в 09:33

Другие вопросы по тегам:

Похожие вопросы: