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?
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:
disparaître (fermer):
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é.
Le script a besoin de xdotool
Sudo apt-get install xdotool
copiez le script ci-dessous dans un fichier vide, enregistrez-le sous le nom manage_notifications.py
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.
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"
#!/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
xkill
à un raccourci clavier (par exemple, j’ai mis le mien à AltShiftK )