... ale to wygląda na dużo pracy ...
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 .
dbus-monitor "interface='org.freedesktop.Notifications'" \
| grep --line-buffered 'string "NetworkManager"' \
| sed -u -e 's/.*/killall notify-osd/g' \
| bash
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 tego grep
wiersza:
| grep --line-buffered 'string "NetworkManager"\|string "notify-send"' \
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
czy notify-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 powiadomienia notify-send
po zakończeniu czyszczenia.
To trochę ręcznie pracochłonnej pracy!
W idealnym przypadku bezpośrednie użycie magistrali dbus
method void org.freedesktop.Notifications.CloseNotification(uint id) [1]
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 z notify-send
, ale niestety nie do arbitralnego powiadamiania aps. choć niektóre aps. mają niestandardowe interfejsy do kontrolowania wyskakujących powiadomień.
odniesienia: