Можно ли заблокировать NotifyOSD для одного приложения?

Есть ли способ запретить NotifyOSD (или XFCE-Notify) отображать уведомления от одного конкретного приложения?

1 ответ

Решение

Да, но с оговорками... killall notify-osd агрессивно... чтобы сделать это изящно, необходимо, чтобы ожидающие уведомления были сохранены до того, как нарушитель вызовет killall notify-osd а затем восстановить их, сохраняя хронологическую целостность.

ссылка:
Кнопка закрытия на уведомлении-OSD?
было бы неплохо, если бы: Может ли org.freedesktop.Notifications.CloseNotification(uint id) запускаться и вызываться через DBus?

монитор D-Bus найти уведомления для удаления, которые исходят из выбранного приложения. Запустите этот скрипт в терминале или в качестве фоновой задачи, изменив ap_name_to_silence на имя ап выбранной для регулирования:

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

основной Notify структура в dbus-monitor "interface='org.freedesktop.Notifications'" является

    отправитель вызова метода =:1.278 -> dest=:1.151 serial=7 path=/org/freedesktop/Notifications; интерфейс =org.freedesktop.Notifications; member= строка уведомления " notify -send" это имя приложения uint32 0 это строка replaceces_id "" это строка app_icon "test" это строка резюме "" это массив body [это список пар действий ] массив [это запись в словаре подсказок словаря (строка "срочность", байт 1)
       ]
       int32 -1 это expire_timeout 

проверить глушитель с этими сообщениями, отмечая "silenced notification" отсутствует:

уведомить-отправить "sum airy" "эфемерное телесное содержание"; спать 5; 

gdbus call --session \
    -d org.freedesktop.Notifications \
    -o / org / freedesktop / Уведомления \
    -m org.freedesktop.Notifications.Notify \
                        ap_name_to_silence \
                        42 \
                        gtk-dialog-info \
                        "Цель" \
                        "молчаливое уведомление"                  \
                        []                                       \
                        {}                                       \
                        5000

уведомить-отправить "augend airy" "эфемерное телесное содержимое - т.е. белый му-сок \!" 

gdbus call --session \
    -d org.freedesktop.Notifications \
    -o / org / freedesktop / Уведомления \
    -m  org.freedesktop.Notifications.Notify                     \
                        my_app_name                              \
                        42                                       \
                        gtk-dialog-info                          \
                        "Резюме" \
                        "но теперь это осень, а не зима"                  \
                        []                                       \
                        {}                                       \
                        5000

Закладка:
Можно ли заблокировать NotifyOSD для одного приложения?

Другие вопросы по тегам