Signet: bouton Fermer sur notify-osd?
ref:
Des concepts éprouvés, bash
la 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 " grep
sortir"
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-osd
indicateur pour l' unity-panel-service
invoquer 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-osd
manifestes 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-osd
interface 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-osd
est 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-osd
solution proposée serait déclenchée lors de la DBus monitor
détection d’une activité de graffiti dans une fenêtre OSD.