Mam skonfigurowany system tak, że gdy otrzymuję nową pocztę, na ekranie pojawia się balon powiadomienia. Jest to czasami wygodne, a innym razem rozprasza. Czy bez konieczności odinstalowywania używanej przeze mnie integracji Gmaila, czy istnieje sposób centralnego przełączania, czy określone rodzaje powiadomień będą wyświetlane?
Innymi słowy, szukam aplikacji (lub interfejsu API), która pozwala mi zobaczyć listę „zarejestrowanych” aplikacji korzystających z usługi powiadomień i przełączać je jako włączone / wyłączone. Lub coś, co pozwala mi utworzyć jedno lub więcej wyrażeń regularnych, których można użyć do dopasowania nazwy aplikacji źródłowej lub zawartości bąbelków powiadomień, a jeśli wystąpi dopasowanie, do zablokowania powiadomienia.
notify-osd
znak
źródło
źródło
Odpowiedzi:
Możesz filtrować to na poziomie d-bus, ale wygląda to na dużo pracy. Najpierw zapoznaj się z tym postem, aby uzyskać informacje na temat działania systemu OSD
Uruchom dbus-monitor, zanim wyślesz polecenie „powiadom-wyślij” na osobnej konsoli.
powiadomienie-osd działa na dbus
ale nie ma żadnych dodatkowych ograniczeń dla tej usługi w /etc/dbus-1/system.d
Możesz więc utworzyć plik konfiguracyjny, który może odfiltrowywać zdarzenia powiadomień na podstawie ich źródła i uzyskać kontrolę, której szukasz. To najlepsze, co mogę zrobić bez zagłębiania się w problem i specyfikację dbus. Mam nadzieję, że to pomoże, a to, czego szukasz, powinno być łatwiejsze do skonfigurowania na początek.
źródło
Nie jest tak naprawdę źle, przynajmniej dla prymitywnego ogólnego rozwiązania.
Oto kopia szczegółów z mojej odpowiedzi na zeszłoroczny (wrzesień 2012) post w
Jak wyłączyć powiadomienia z menedżera sieci .
Zamień
string "NetworkManager"
na żądany RE, aby określić blokowanie.Aby dowiedzieć się, jaki wzorzec RE pasuje do wyszukiwania, należy uruchomić:
dbus-monitor "interface='org.freedesktop.Notifications'"
i spójrz na dane wyjściowe, gdy pojawiają się powiadomienia.
to znaczy. aby usunąć
notify-send
również wiadomości, użyj tegogrep
wiersza:Zastrzeżenie :
killall notify-osd
jest niedyskryminujące i całkowicie czyści stos powiadomień wszelkich oczekujących wiadomości, niezależnie od tego,NetworkManager
czynotify-send
jest to agent powiadamiający.„Uczciwe” rozwiązanie musi uwzględniać ewentualne warunki wyścigu, gdy pomiędzy określeniem czyszczenia powiadomień a wykonaniem go pojawia się kolejne powiadomienie, które powinno wyskoczyć i nie powinno być usuwane wraz z resztą.
Ponadto, jeśli powiadomienia oczekują, gdy nadejdzie obraźliwe, które ma zostać zablokowane, wszystkie zostaną usunięte. Sytuację tę można przynajmniej rozwiązać, wykonując kopię
dbus
oczekujących powiadomień, a następnie ponownie żądane powiadomienianotify-send
po zakończeniu czyszczenia.To trochę ręcznie pracochłonnej pracy!
W idealnym przypadku bezpośrednie użycie magistrali dbus
ukierunkowanie tylko na wybrane powiadomienia, niestety nie jest oczywiste ... jednak ...
Inna odpowiedź
Czy org.freedesktop.Notifications.CloseNotification (uint id) może być wyzwalany i wywoływany przez DBus?
pokazuje, jak używać
[1]
, przynajmniej znotify-send
, ale niestety nie do arbitralnego powiadamiania aps. choć niektóre aps. mają niestandardowe interfejsy do kontrolowania wyskakujących powiadomień.odniesienia:
źródło