web-dev-qa-db-fra.com

Configurez les notifications Unity pour fermer en un clic

J'aime ces bulles de notification d'Unity, mais la seule chose que je déteste vraiment, c'est que je ne peux pas cliquer dessus.

Je sais que lorsque je survole au-dessus d'eux, ils deviennent presque transparents et que je peux cliquer dessus dans la fenêtre ci-dessous, mais je préférerais une petite icône (x) pour pouvoir la fermer.

Alternativement, il peut également fermer lorsque vous cliquez n'importe où dessus, cela n'a pas d'importance.

Est-il possible de configurer cela sur Ubuntu 15.04 avec Unity Desktop? Comment je ferais ça?

5
Byte Commander

Changer le comportement de la souris au-dessus de la notification

Presque ce que vous avez demandé, et peut-être ce que vous pourriez aimer, un minuscule script d'arrière-plan très clair (aucune charge visible sur votre système, que ce soit sans notification s’exécute, il ne fera qu’attendre/en vérifier l’apparition) qui modifiera l’effet de survol des notifications de fondu:

enter image description here

enter image description here

disparaître (fermer):

enter image description here

Cela ne prendra effet que si la souris est déplacée de l'extérieur de la zone dans la zone de notification , pour vous assurer de ne pas manquer les notifications si votre souris est déjà dans la zone de notification si le message est lancé.

Comment utiliser

  1. Le script a besoin de xdotool

    Sudo apt-get install xdotool
    
  2. copiez le script ci-dessous dans un fichier vide, enregistrez-le sous le nom manage_notifications.py

  3. Test-exécuter le script par la commande:

    python3 /path/to/manage_notifications.py
    

    avec le script en cours d'exécution, ouvrez une fenêtre de terminal et exécutez la commande suivante:

    notify send 'This is a test'
    

    déplacez maintenant la souris sur la notification. Au lieu de disparaître, il devrait disparaître.

  4. Si tout fonctionne correctement, ajoutez-le à vos applications de démarrage: Dash> Applications de démarrage> Ajoutez la commande:

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

Le scénario

#!/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
4
Jacob Vlijm
  1. Allez dans Paramètres -> Clavier -> Raccourcis -> Personnalisé.
  2. Liez la commande xkill à un raccourci clavier (par exemple, j’ai mis le mien à AltShiftK )
  3. Chaque fois que vous voyez une notification, cliquez sur le raccourci clavier, placez le pointeur de la souris sur la notification, cliquez dessus, puis elle disparaît.
0