Jak odczytać wiadomości NotifyOSD po ich wyświetleniu?

14

Chciałbym przeczytać listę wiadomości wyświetlanych notify-osdod czasu do czasu. Nadal używam 12.04, jeśli to ma znaczenie. czy to możliwe?

Te dwa pytania z 2010 r. Wskazują, że plik dziennika powinien istnieć pod adresem ~/.cache/notify-osd.log. Nie mam takiego pliku i chciałbym wiedzieć, czy jest to błąd (w którym to przypadku pytanie powinno zostać zamknięte) lub czy ten plik dziennika zależy od innego ustawienia (np. Ustawienia systemu -> Prywatność)?

Nie dbam o przechowywanie danych między restartami. Chcę tylko przeglądać wiadomości z bieżącej sesji.

EDYCJA: Dwie dobre odpowiedzi teraz, ale chciałbym wiedzieć, czy te wiadomości są gdzieś przechowywane (całkowite zgadnięcie, / tmp? RAM?) Przez krótki czas po pojawieniu się na ekranie. Musi istnieć jakiś bufor, który pojawia się jeden po drugim, po kilka sekund, nawet jeśli w ciągu minuty lub dwóch jest 20-30 powiadomień.

Nie wspomniałem w moim pierwotnym pytaniu, że nie jestem zainteresowany kolejnym wskaźnikiem PPA + lub nadmiernym zapisem na dysku, chcę tylko wiedzieć, czy można zobaczyć wiadomości przez krótki czas po ich pojawieniu się.

Moim przykładem użycia jest powrót i znalezienie utworu, który został odtworzony kilka minut temu w radiu strumieniowym. Mam go jako podkład muzyczny i od czasu do czasu melodia wbija mi się w głowę. Nie mogę wrócić, by zobaczyć, co zagrało 1-2 piosenki temu.

Tom Brossman
źródło
1
Powód, dla którego nie widzisz już dziennika: bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/904835
Seth
Jakiej aplikacji / odtwarzacza używasz do odtwarzania strumienia radiowego?
Basharat Sialvi
@BasharatSial Radiotray
Tom Brossman
1
@TomBrossman Radiotray musi history pluginśledzić wcześniej odtwarzane utwory.
Basharat Sialvi
@BasharatSial Dzięki, to chyba najprostsze rozwiązanie dla mnie.
Tom Brossman

Odpowiedzi:

6

Po dokładnym rozejrzeniu się (DUŻO) w 2011 roku znalazłem zmianę kodu dotyczącą notify-osddomyślnego braku wyświetlania pliku dziennika, ponieważ był on używany do celów debugowania i zapisywał na dysku twardym za każdym razem. Aby aktywować tę funkcję, możesz to zrobić na 2 sposoby, metodą tymczasową i bardziej trwałą.

Metoda tymczasowa

Otwórz terminal Piszę:

W przypadku systemów 64-bitowych:

sudo killall notify-osd
LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd &

Dla systemów 32-bitowych:

sudo killall notify-osd
LOG=1 /usr/lib/notify-osd/notify-osd &

Teraz zobaczysz w nim .cache/notify-osd.logplik i informacje debugowania.

Metoda stała (OSTRZEŻENIE: Globalna zmiana)

Aby uzyskać bardziej trwałe rozwiązanie, wykonaj następujące czynności (Globalna zmiana. Przeczytaj ostrzeżenie wspomniane przez Rinzwind poniżej. Wpłynie to na wszystkich i zabije kota!):

sudo nano /etc/environment

Dodaj następujący wiersz na końcu i zapisz:

LOG=1

Uruchom ponownie komputer, aby przetestować.

Metoda stała (zmiana specyficzna dla użytkownika)

Aby uzyskać bardziej trwałe rozwiązanie, wykonaj następujące czynności (Zmiana specyficzna dla użytkownika. Wpłynie to tylko na ciebie i psa. Kot nadal przeżyje.):

sudo nano ~/.bashrc

Dodaj następujący wiersz na końcu i zapisz:

LOG=1

Uruchom ponownie komputer, aby przetestować.

Powinieneś zobaczyć, jak informacje zaczynają się pojawiać w .cache/notify-osd.logpliku. Na przykład to ja po rozłączeniu 2 razy mojego przewodowego połączenia:

Plik GNU nano 2.2.6: .cache / powiadomienie-osd.log

[2013-05-04T18:49:55-00:00, NetworkManager ] Connected
Intel

[2013-05-04T18:50:26-00:00, NetworkManager ] Disconnected - you are now offline
Ethernet network

[2013-05-04T18:50:29-00:00, NetworkManager replaced] Connected
Intel
Luis Alvarado
źródło
3
Małe ostrzeżenie: może to być zły pomysł ... LOG = 1 w / etc / environment sprawia, że ​​jest to zmienna systemowa i może popsuć różne rzeczy ... Bóg wie, co reaguje na LOG (oczywiście, powinni byli zrobić coś w rodzaju NOTIFYOSDLOG ). Może na początek dodałbym to do bashrc dla 1 użytkownika, żeby się upewnić.
Rinzwind
@Rinzwind Tak, tak myślałem. Dodano bashrc.
Luis Alvarado,
Dzięki, Luis. Zaakceptowałem to, ponieważ nie wymaga to kolejnego PPA, co jest świetne. (Dałem nagrodę @ Stump tylko dlatego, że masz tyle przedstawicieli, że nie przegapisz tego, mam nadzieję, że nie masz nic przeciwko).
Tom Brossman
1
@TomBrossman Będę cię nienawidzić, dopóki Ubuntu nie kupi Microsoft ^^.
Luis Alvarado,
15

Możesz zainstalować pakiet wskaźnik-powiadomienia, które śledzą otrzymywane powiadomienia. Możesz zainstalować z następującymi

sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt-get update
sudo apt-get install indicator-notifications

Musisz się wylogować i zalogować ponownie. Pojawia się jako skrzynka pocztowa w górnym panelu i zmienia kolor na zielony, gdy otrzymujesz nowe wiadomości.

Powiadomienia

To jest 13.04, ale powinno działać również 12.04.

Kikut
źródło
To pokazuje brak powiadomień o wskaźnikach + ikony na pasku zadań wUbuntu 19.04(GNOME Shell)
MD. Mohiuddin Ahmed
6

Spowoduje to wyświetlenie wszystkich powiadomień od momentu uruchomienia do zatrzymania.

dbus-monitor "interface='org.freedesktop.Notifications'"    |     \
grep --line-buffered  "member=Notify\|string"

Skopiuj i wklej do okna terminala ( Ctrl+ Alt+ T).

Aby go zatrzymać, użyj Ctrl+ Club zamknij okno.

Jest to skuteczne, choć niedyskryminacyjne i surowe, ale można je ukarać jedynie za monitorowanie dokładnie pożądanych szczegółów konkretnego czynnika powiadamiającego poprzez zmianę grepwyrażenia regularnego "member=Notify\|string". Tekst może być masowane sed, awkitd., Aby dobrze wyglądać.

Przede wszystkim najbardziej przydatne byłoby powiązanie skryptu z automatycznym uruchomieniem z agentem, który ma być monitorowany.

odsyłacz:
- wyraźne szczegóły w Czy istnieje sposób przeglądania historii powiadomień?

troll la la la
źródło
1
+1 To interesujące, ale musi już działać, aby wyświetlić poprzednie wiadomości.
Tom Brossman
1
dokładnie This will show all notification messages **from the time it is started** until it is stopped. Wszystkie pozostałe proponowane rozwiązania muszą zostać wykonane, zanim będą skuteczne. Nie inaczej jest, z wyjątkiem ... Aby uczynić go „lepkim”, skrypt można włączyć jako część procedury inicjalizacji rozruchu. Dane wyjściowe można również potokować do pliku dziennika. dodano link, aby uzyskać więcej informacji ref. linki do dodania - wiele wiele wiele
troll la la la