Zakładka: przycisk Zamknij na powiadomienie-osd?
ref:
Koncepcje, sprawdzone i wstępnie sprawdzone, bash
„wyłączone” wyskakujące okienko OSD jest pomyślane i wykluwane jako:
dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "member=Notify" | \
sed -u -e 's/.*/killall notify-osd/g' | \
bash
Można to uruchomić w terminalu lub jako zadanie w tle - zatrzymaj go, a wyskakujące graffiti zostanie wznowione.
OP stwierdził „Nie, nie mogę go wyłączyć”. Jeśli przez to oznacza, że system powiadomień NIE MOŻE być wyłączony przez użytkownika, to to rozwiązanie jest z tym zgodne. System jest nienaruszony. Jeśli to oznacza, że poser nie wie, jak to zrobić, to znowu rozwiązanie jest istotne.
Szczegóły wyjaśnione poniżej linii. Ostatecznym byłoby osadzenie wszystkiego na (w?) DBus, aby bezpośrednio wywołać
qdbus org.freedesktop.Notifications \
/org/freedesktop/Notifications \
org.freedesktop.Notifications.CloseNotification(uint id)
Bardzo, bardzo, bardzo naiwne szczątkowe rozwiązanie, które jest bardziej dowodem koncepcji niż praktycznej, w zasadzie „wyłącza” notify-osd
(lub przynajmniej jego skutki). Nie zapomnij go zakończyć po zakończeniu testowania! przez ETX'ng z <ctrl> -C lub zamykając okno terminala itp. Wykonuje swoją pracę, ale niezbyt pragmatycznie! ponieważ niestety inne prace cierpią, próbując wykonać swoje ...
while true; do killall notify-osd; done
(aby „usłyszeć” odpowiednią aktywność, którą możesz chcieć „ grep
wyjść”
notify-osd: no process found ....
)
Przetestuj go, uruchamiając go w oknie terminala i z innego okna terminalu, spróbuj:
notify-send "test 1" "now you see it not"
notify-send "test 2" "you see it not after test 1 evaporates"
notify-send "test 3" "finally after test 2 evaporates"
Zatrzymaj pierwszy proces, a następnie spróbuj ponownie.
Być może notify-osd
wskaźnik dla unity-panel-service
może wywołać killall notify-osd
. Przycisk zamykania na gorąco nie był (i nie może!) Znajdować się w oknie powiadomień, ale byłby dostępny na panelu wskaźników. Jest to całkowicie analogiczne do tej samej koncepcji, którą Unity ma dla systemu Windows. Użycie górnego paska do zamykania powiadomień jest podobne do sposobu, w jaki Unity wyrzuca menu okna z zamkniętymi, mini, maksymalnymi oknami do górnego paska menu.
Naprawdę eleganckie rozwiązanie miałoby wskaźnik pojawiający się, gdy aktywność DBus dla notify-osd
manifestów, i znikałby, gdy nie ma oczekujących powiadomień.
Może to również rozwiązać problem skumulowanych powiadomień - tylko jedno może być widoczne na raz, a jeśli czeka wiele powiadomień, każde musi wyparować, zanim pojawi się następny - zwykle nie można ich zobaczyć jednocześnie.
DBus-monitor
„ng notify-osd
interfejsu powiadomień będzie jednak zapewnić natychmiastowe potwierdzenie oczekiwaniu zawiadomień nawet jeśli jeden jest już wyświetlana. (O ile killall notify-osd
zostanie wydany natychmiast - presto poof!)
Wybierz Wszystkie, przeciągnij i upuść do okna terminala następujące testy:
notify-send "test 1" "now you see it"
notify-send "test 2" "you see it after test 1 evaporates"
notify-send "test 3" "finally after test 2 evaporates"
teraz zrób to samo z p {r}
notify-send "test 1" "now you don't"
notify-send "test 2" "you see it not! after test 1 evaporates"
notify-send "test 3" "NOT finally after test 2 evaporates"
killall notify-osd
notify-send "gonzo" "gone nada zip zilch"
killall notify-osd
W sugerowanym rozwiązaniem byłoby wyzwalane, gdy DBus monitor
wykrywa OSD wyskakujące grafitti aktywność.