... ama çok fazla iş gibi görünüyor ...
En azından kaba bir genel çözüm için gerçekten çok kötü değil.
İşte cevabımdan geçen yılın (Eylül 2012) gönderisine kadar olan detayların bir kopyası
Ağ yöneticisinden bildirim nasıl devre dışı bırakılır .
dbus-monitor "interface='org.freedesktop.Notifications'" \
| grep --line-buffered 'string "NetworkManager"' \
| sed -u -e 's/.*/killall notify-osd/g' \
| bash
string "NetworkManager"
Engellemeyi belirlemek için istenen RE ile değiştirin .
Hangi RE kalıbının hangi aramanın eşleşeceğine dair bir fikir edinmek için:
dbus-monitor "interface='org.freedesktop.Notifications'"
ve bildirimler açılırken çıktıya bakın.
yani. notify-send
iletileri kaldırmak için grep
bunun yerine bu satırı kullanın:
| grep --line-buffered 'string "NetworkManager"\|string "notify-send"' \
Uyarı :
killall notify-osd
olmayan ayırt tamamen bekleyen mesaj bildirim yığını olup olmadığını önüne almadan temizlik bezi NetworkManager
veya notify-send
bildiren bir ajandır.
"Dürüst" bir çözümün, bir bildirim tasfiyesinin belirlenmesi ile daha sonra yapılması arasında olası yarış koşullarını hesaba katması gerekir.
Ayrıca, engellenecek rahatsız edici kişi geldiğinde bildirimler beklenirse, tümü temizlenir. Bu durum, en azından dbus
beklemedeki bildirimlerin bir kopyasını alarak ve daha notify-send
sonra tasfiyeden sonra istenenleri yeniden göndererek çözülebilir .
Bu biraz emek yoğun bir iş!
İdeal olarak, doğrudan dbus kullanımı
method void org.freedesktop.Notifications.CloseNotification(uint id) [1]
sadece istenen bildirimleri özel olarak hedeflemek, ne yazık ki belli değil ...
Başka bir cevap
org.freedesktop.Notifications.CloseNotification (uint id) DBus üzerinden tetiklenebilir ve çağrılabilir mi?
" aps" [1]
ile en azından nasıl kullanılacağını notify-send
fakat ne yazık ki keyfi bildirimde bulunmadığını gösterir. bazı aps rağmen. pop-up bildirimleri kontrol etmek için özel arayüzlere sahip.
çapraz referanslar .: