¿Es posible bloquear NotifyOSD para una aplicación?

1

¿Hay alguna forma de evitar que NotifyOSD (o XFCE-Notify) muestre notificaciones de una aplicación en particular?

    
pregunta Borsook 09.08.2011 - 01:24

1 respuesta

2

Sí, pero con advertencias ... killall notify-osd es agresivo ... hacer esto con gracia requiere que las notificaciones pendientes se guarden antes de que el ofensivo desencadene killall notify-osd y luego las restablezca preservando la integridad cronológica.

ref:
¿Botón Cerrar en notificar-osd?
sería bueno si: Can org.freedesktop.Notifications .CloseNotification (uint id) se activa e invoca a través de DBus?

Supervise D-Bus para encontrar notificaciones de eliminación que se originen en la aplicación elegida. Ejecute este script en un terminal o como una tarea en segundo plano, cambiando ap_name_to_silence al nombre de la aplicación elegida para la regulación:

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

La estructura básica Notify en dbus-monitor "interface='org.freedesktop.Notifications'" es

    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

prueba el silenciador con estos mensajes que indican que "silenced notification" está ausente:

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

Marcador:
Es ¿Es posible bloquear NotifyOSD para una aplicación?

    
respondido por el George Rowell 25.09.2012 - 05:00