... aber es sieht nach viel Arbeit aus ...
Es ist nicht wirklich schlecht, zumindest für eine grobe generische Lösung.
Hier ist eine Kopie der Details meiner Antwort auf den Post vom letzten Jahr (September 2012)
So deaktivieren Sie die Benachrichtigung vom Netzwerkmanager .
dbus-monitor "interface='org.freedesktop.Notifications'" \
| grep --line-buffered 'string "NetworkManager"' \
| sed -u -e 's/.*/killall notify-osd/g' \
| bash
Ersetzen string "NetworkManager"
mit dem gewünschten RE Blockierung zu bestimmen.
So erhalten Sie eine Vorstellung davon, welche RE-Musterübereinstimmung ausgeführt werden soll:
dbus-monitor "interface='org.freedesktop.Notifications'"
und sehen Sie sich die Ausgabe an, während die Benachrichtigungen angezeigt werden.
dh notify-send
Verwenden Sie grep
stattdessen diese Zeile , um auch Nachrichten zu entfernen :
| grep --line-buffered 'string "NetworkManager"\|string "notify-send"' \
Nachteil :
killall notify-osd
nicht-Diskriminieren und vollständig wischt die Benachrichtigungs Stapel aller ausstehenden Nachrichten unabhängig davon , ob NetworkManager
oder notify-send
ist der anmeldenden Agenten.
Eine "ehrliche" Lösung muss mögliche Rennbedingungen berücksichtigen, wenn zwischen der Bestimmung einer Benachrichtigungsbereinigung und dem anschließenden Ausführen eine weitere Benachrichtigung eingeht, die eingeblendet und nicht mit dem Rest bereinigt werden soll.
Wenn Benachrichtigungen anstehen, wenn die zu blockierende Benachrichtigung eingeht, werden alle Benachrichtigungen gelöscht. Diese Situation kann zumindest dadurch gelöst werden, dass eine Kopie der dbus
ausstehenden Benachrichtigungen erstellt wird und die gewünschten Benachrichtigungen notify-send
nach der Bereinigung erneut ausgestellt werden.
Dies ist ein bisschen manuell arbeitsintensive Arbeit!
Ideal ist der direkte Einsatz von dbus
method void org.freedesktop.Notifications.CloseNotification(uint id) [1]
es ist leider nicht selbstverständlich, genau auf die gewünschten Benachrichtigungen abzuzielen ... aber ...
Eine andere Antwort
Kann org.freedesktop.Notifications.CloseNotification (uint id) über DBus ausgelöst und aufgerufen werden?
zeigt, wie man [1]
zumindest mit notify-send
, aber leider nicht mit willkürlich benachrichtigenden aps umgeht. obwohl einige aps. Benutzerdefinierte Schnittstellen zur Steuerung von Popup-Benachrichtigungen.
Querverweis: