Ich habe mein System so konfiguriert, dass auf meinem Bildschirm eine Sprechblase angezeigt wird, wenn ich neue E-Mails erhalte. Dies ist manchmal praktisch und zu anderen Zeiten ablenkend. Gibt es eine Möglichkeit, zentral umzuschalten, ob bestimmte Arten von Benachrichtigungen angezeigt werden, ohne die von mir verwendete Google Mail-Integration deinstallieren zu müssen?
Mit anderen Worten, ich suche nach einer Anwendung (oder API), mit der ich entweder eine Liste der "registrierten" Apps anzeigen kann, die den Benachrichtigungsdienst verwenden, und diese als aktiviert / deaktiviert umschalte. Oder etwas, mit dem ich einen oder mehrere reguläre Ausdrücke erstellen kann, die verwendet werden können, um den Namen der Quellanwendung oder den Inhalt der Benachrichtigungsblase abzugleichen, und wenn eine Übereinstimmung auftritt, um die Benachrichtigung zu blockieren.
quelle
Antworten:
Sie können dies möglicherweise auf der D-Bus-Ebene filtern, aber es sieht nach viel Arbeit aus. Sehen Sie sich zuerst diesen Beitrag an, um einen Einblick in die Funktionsweise von osd zu erhalten
Starten Sie dbus-monitor, bevor Sie den Lauf 'notify-send' auf einer separaten Konsole senden.
notify-osd lebt auf dbus
Es gibt jedoch keine zusätzlichen Einschränkungen für diesen Dienst in /etc/dbus-1/system.d
So können Sie möglicherweise eine Konfigurationsdatei erstellen, mit der Sie Benachrichtigungsereignisse basierend auf ihrer Quelle herausfiltern und die gewünschte Steuerung erreichen können. Das ist das Beste, was ich tun kann, ohne mich mit dem Problem und der dbus-Spezifikation auseinanderzusetzen. Ich hoffe, das hilft, was Sie suchen, sollte zunächst einfacher zu konfigurieren sein.
quelle
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 .
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 Siegrep
stattdessen diese Zeile , um auch Nachrichten zu entfernen :Nachteil :
killall notify-osd
nicht-Diskriminieren und vollständig wischt die Benachrichtigungs Stapel aller ausstehenden Nachrichten unabhängig davon , obNetworkManager
odernotify-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 Benachrichtigungennotify-send
nach der Bereinigung erneut ausgestellt werden.Dies ist ein bisschen manuell arbeitsintensive Arbeit!
Ideal ist der direkte Einsatz von dbus
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 mitnotify-send
, aber leider nicht mit willkürlich benachrichtigenden aps umgeht. obwohl einige aps. Benutzerdefinierte Schnittstellen zur Steuerung von Popup-Benachrichtigungen.Querverweis:
quelle