Signet: bouton Fermer sur notify-osd?
ref:
Des concepts éprouvés, bashla solution "désactivée" de graffiti OSD pop-up éprouvée est conçue et hachurée comme suit:
dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "member=Notify" | \
sed -u -e 's/.*/killall notify-osd/g' | \
bash
Cela peut être exécuté dans un terminal ou en tâche de fond - arrêtez-le et les graffitis réapparaissent.
L'OP a déclaré "Non, je ne peux pas le désactiver". Si, par là, cela signifie que le système de notification NE DOIT PAS être désactivé par le poseur, cette solution est cohérente avec cela. Le système est intact. Si cela signifie que le poseur ne sait pas comment le faire, la solution est à nouveau pertinente.
Détails expliqués en dessous de la ligne. L’ultime serait d’intégrer tout dans (dans?) Le DBus, d’invoquer directement
qdbus org.freedesktop.Notifications \
/org/freedesktop/Notifications \
org.freedesktop.Notifications.CloseNotification(uint id)
Une solution rudimentaire très, très, très naïve, qui constitue davantage une preuve de concept que de la pratique, essentiellement une "désactivation" notify-osd(ou du moins ses effets). N'oubliez pas d'y mettre fin lorsque vous avez terminé les tests! par ETX'ng avec <ctrl> -C ou en fermant la fenêtre du terminal, etc. Il fait son travail, mais de manière peu pragmatique! car malheureusement, d'autres emplois souffrent d'essayer de faire le leur ...
while true; do killall notify-osd; done
(pour "entendre" une activité pertinente que vous voudrez peut-être " grepsortir"
notify-osd: no process found ....
)
Testez-le en l'exécutant dans une fenêtre de terminal et à partir d'une autre fenêtre de terminal, essayez de:
notify-send "test 1" "now you see it not"
notify-send "test 2" "you see it not after test 1 evaporates"
notify-send "test 3" "finally after test 2 evaporates"
Arrêtez le premier processus, puis réessayez les messages.
Peut-être un notify-osdindicateur pour l' unity-panel-serviceinvoquer killall notify-osd. Le bouton de fermeture «Hot Spotted» ne serait pas (et ne peut pas!) Résider dans la fenêtre de notification, mais il serait disponible dans le panneau des indicateurs. Ceci est tout à fait analogue au concept que Unity a pour Windows. L'utilisation de la barre supérieure pour la fermeture des notifications est similaire à celle utilisée par Unity pour exiler les menus de la fenêtre avec des mini, maxi-boîtes très proches de la barre de menus supérieure.
Une solution vraiment élégante aurait l'indicateur apparaître lorsque l'activité DBus pour les notify-osdmanifestes et disparaît lorsqu'il n'y a pas de notifications en attente.
Cela pourrait également résoudre le problème des notifications empilées - une seule peut être vue à la fois. Si plusieurs notifications sont en attente, chacune d’elles doit s’évaporer avant l’apparition de la suivante - elles ne peuvent généralement pas être vues simultanément.
DBus-monitor« ng de l' notify-osdinterface de notification , sera toutefois la reconnaissance immédiate de l' attente des avis , même s'il y a une montre déjà. (ET si killall notify-osdest publié immédiatement - presto poof!)
Tout sélectionner, glisser-déposer dans une fenêtre de terminal aux tests suivants:
notify-send "test 1" "now you see it"
notify-send "test 2" "you see it after test 1 evaporates"
notify-send "test 3" "finally after test 2 evaporates"
maintenant faire la même chose avec p {r} oof:
notify-send "test 1" "now you don't"
notify-send "test 2" "you see it not! after test 1 evaporates"
notify-send "test 3" "NOT finally after test 2 evaporates"
killall notify-osd
notify-send "gonzo" "gone nada zip zilch"
La killall notify-osdsolution proposée serait déclenchée lors de la DBus monitordétection d’une activité de graffiti dans une fenêtre OSD.