Est-il possible de bloquer NotifyOSD pour une application?

1

Existe-t-il un moyen d'empêcher NotifyOSD (ou XFCE-Notify) d'afficher les notifications d'une application particulière?

    
posée Borsook 09.08.2011 - 03:24
la source

1 réponse

2

Oui, mais avec des mises en garde ... killall notify-osd est agressif ... pour ce faire, il faut que les notifications en attente soient enregistrées avant que le délinquant ne déclenche killall notify-osd , puis les rétablit en préservant l'intégrité chronologique.

ref:
Bouton Fermer sur notify-osd?
ce serait bien si: Can org.freedesktop.Notifications .CloseNotification (uint id) soit déclenché et appelé via DBus?

Surveiller D-Bus pour trouver les notifications de suppression provenant de l'application choisie. Exécutez ce script dans un terminal ou en tâche de fond, en remplaçant ap_name_to_silence par le nom de l'application choisi pour la limitation:

dbus-monitor "interface='org.freedesktop.Notifications'"                \
| grep --line-buffered  'string "ap_name_to_silence"'                   \
| sed -u -e  's/.*/killall notify-osd/g'                                \
| bash

Structure de base Notify dans dbus-monitor "interface='org.freedesktop.Notifications'" is

    method call sender=:1.278 -> dest=:1.151 serial=7 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
       string "notify-send"                          this is the app_name
       uint32 0                                      this is the replaces_id
       string ""                                     this is the app_icon
       string "test"                                 this is the summary
       string ""                                     this is the body
       array [                                       this is the actions pairs list
       ]
       array [                                       this is the hints dictionary
          dict entry(
             string "urgency"
             variant             byte 1
          )
       ]
       int32 -1                                      this is the expire_timeout

testez le silencieux avec ces messages en notant que "silenced notification" est absent:

notify-send "sum airy" "ephemeral corporeal content"; sleep 5; 

gdbus call --session                                             \
    -d  org.freedesktop.Notifications                            \
    -o /org/freedesktop/Notifications                            \
    -m  org.freedesktop.Notifications.Notify                     \
                        ap_name_to_silence                       \
                        42                                       \
                        gtk-dialog-info                          \
                        "The target"                             \
                        "silenced notification"                  \
                        []                                       \
                        {}                                       \
                        5000

notify-send "augend airy" "ephemeral corporeal content - ie. white moo juice\!" 

gdbus call --session                                             \
    -d  org.freedesktop.Notifications                            \
    -o /org/freedesktop/Notifications                            \
    -m  org.freedesktop.Notifications.Notify                     \
                        my_app_name                              \
                        42                                       \
                        gtk-dialog-info                          \
                        "Summary"                                \
                        "but now it's autumny and not wintery"   \
                        []                                       \
                        {}                                       \
                        5000

Signet:
possible de bloquer NotifyOSD pour une application?

    
réponse donnée George Rowell 25.09.2012 - 07:00
la source

Lire d'autres questions sur les étiquettes