Configurar notificações Unity para fechar ao clicar

5

Eu gosto dessas bolhas de notificação do Unity, mas a única coisa que eu realmente odeio é que eu não consigo clicar nelas.

Eu sei que quando eu fico acima deles eles se tornam quase transparentes e eu posso clicar neles na janela abaixo, mas eu prefiro um pequeno ícone (x) para poder fechá-lo.

Como alternativa, ele também pode fechar quando clicar em qualquer lugar, isso não importa.

É possível configurar isso no Ubuntu 15.04 com o Unity Desktop? Como eu faria isso?

    
por Byte Commander 01.08.2015 / 21:47

2 respostas

4

Alterar o comportamento do mouse sobre a notificação

Quase o que você pediu, e possivelmente o que você gostaria, um pequeno script de fundo muito claro (sem carga perceptível em seu sistema, se nenhuma notificação for executada, ele apenas aguardará / verificará para que um apareça) que irá alterar o efeito do mouse sobre as notificações do fade:

paradesaparecer(fechar):

Issosóteráefeitoseomousefordeforadaáreaparaaáreadenotificação,paratercertezadequevocênãoperderáasnotificaçõesseomousejáestivernaáreadenotificação,seomensagemélançada.

Comousar

  1. Oscriptprecisadexdotool

    sudoapt-getinstallxdotool
  2. copieoscriptabaixoemumarquivovazio,salve-ocomomanage_notifications.py

  3. Testeoscriptcomocomando:

    python3/path/to/manage_notifications.py

    comoscriptemexecução,abraumajaneladeterminaleexecuteocomando:

    notifysend'Thisisatest'

    agoramovaomouseparaanotificação.Emvezdedesvanecer,devedesaparecer.

  4. Setudofuncionarbem,adicione-oaosseusaplicativosdeinicialização:Dash>Aplicativosdeinicialização>Adicioneocomando:

    /bin/bash-c"sleep 15 && python3 /path/to/manage_notifications.py"
    

O script

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

w = int([s.split("x")[0] for s in subprocess.check_output(
    ["xrandr"]).decode("utf-8").split() if "+0+0" in s][0]
        )

def get_mouse():
    loc = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()[:2]
    return [int(n.split(":")[1]) for n in loc]

while True:
    time.sleep(1)
    try: 
        subprocess.check_output(["pgrep", "notify-osd"]).decode("utf-8")
        curloc1 = get_mouse(); t = 1
        while t < 10:
            time.sleep(1)
            curloc2 = get_mouse()
            test1 = curloc1[0] > w - 400 and curloc1[1] < 400
            test2 = curloc2[0] > w - 400 and curloc2[1] < 400
            if all([test1 == False, test2 == True]):
                subprocess.Popen(["pkill", "notify-osd"])
                break
            curloc1 = curloc2
            t = t+1
    except:
        pass
    
por Jacob Vlijm 02.08.2015 / 22:23
0
  1. Vá para Configurações - > Teclado - > Atalhos - > Personalizado.
  2. Vincule o comando xkill a um atalho de teclado (por exemplo, configurei o meu para Alt Deslocamento K )
  3. Sempre que você vir uma notificação, clique no atalho do teclado, passe o ponteiro sobre a notificação, clique nela e ela desaparece.
por Sergiy Kolodyazhnyy 09.08.2015 / 11:54