Wie kann ich NotifyOSD-Nachrichten lesen, nachdem sie angezeigt wurden?

14

Ich möchte eine Liste der Nachrichten lesen, die von notify-osdZeit zu Zeit angezeigt werden . Ich benutze immer noch 12.04, wenn es darauf ankommt. Ist das möglich?

Diese beiden Fragen aus dem Jahr 2010 weisen darauf hin, dass eine Protokolldatei unter vorhanden sein sollte ~/.cache/notify-osd.log. Ich habe keine solche Datei und möchte wissen, ob dies ein Fehler ist (in diesem Fall sollte diese Frage geschlossen werden) oder ob diese Protokolldatei von einer anderen Einstellung abhängt (wie Systemeinstellungen -> Datenschutz).

Das Speichern von Daten zwischen Neustarts ist mir egal. Ich möchte nur Nachrichten aus der aktuellen Sitzung durchsuchen.

BEARBEITEN: Zwei gute Antworten, aber ich würde gerne wissen, ob diese Nachrichten für einen kurzen Zeitraum nach dem Erscheinen auf dem Bildschirm irgendwo gespeichert sind (Total Guess, / tmp? RAM?). Es muss eine Art Puffer vorhanden sein, der nacheinander einige Sekunden lang angezeigt wird, auch wenn innerhalb von ein oder zwei Minuten 20 bis 30 Benachrichtigungen vorliegen.

Ich habe in meiner ursprünglichen Frage nicht erwähnt, dass ich nicht an einer weiteren PPA + -Anzeige oder übermäßigen Schreibvorgängen für Laufwerke interessiert bin. Ich möchte nur wissen, ob es möglich ist, die Meldungen kurz nach ihrem Erscheinen anzuzeigen.

Mein Anwendungsfall hierfür ist, zurückzugehen und herauszufinden, welcher Song vor ein paar Minuten auf einem Streaming-Radiosender abgespielt wurde. Ich habe es als Hintergrundmusik an und gelegentlich bleibt eine Melodie in meinem Kopf hängen, nachdem ich sie gehört habe. Ich kann nicht zurückgehen, um zu sehen, was vor 1-2 Songs gespielt wurde.

Tom Brossman
quelle
1
Der Grund, warum Sie das Protokoll nicht mehr sehen: bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/904835
Seth
Welche App / welchen Player verwendest du zum Abspielen von Radiostreams?
Basharat Sialvi
@BasharatSial Radiotray
Tom Brossman
1
@TomBrossman Radiotray muss history pluginden Überblick über zuvor gespielte Songs behalten.
Basharat Sialvi
@BasharatSial Danke, das ist wahrscheinlich die einfachste Lösung für mich.
Tom Brossman

Antworten:

6

Nachdem ich mich sorgfältig umgesehen hatte (VIEL), stellte ich 2011 eine Codeänderung fest, bei der es darum ging, notify-osdnicht standardmäßig in die Protokolldatei auszugeben, da dies zu Debugging-Zwecken verwendet und jedes Mal auf die Festplatte geschrieben wurde. Um diese Funktion zu aktivieren, haben Sie zwei Möglichkeiten: eine temporäre und eine permanente.

Temporäre Methode

Öffnen Sie das Terminal, und geben Sie Folgendes ein:

Für 64-Bit-Systeme:

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

Für 32-Bit-Systeme:

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

Jetzt sehen Sie die .cache/notify-osd.logDatei und die Debug-Informationen darin.

Permanente Methode (WARNUNG: Globale Veränderung)

Um eine dauerhaftere Lösung zu finden, gehen Sie wie folgt vor (Globale Änderung. Lesen Sie die unten von Rinzwind erwähnte Warnung. Dies wirkt sich auf alle aus und tötet die Katze!):

sudo nano /etc/environment

Fügen Sie am Ende die folgende Zeile hinzu und speichern Sie:

LOG=1

Starten Sie den Computer zum Testen neu.

Permanente Methode (benutzerspezifische Änderung)

Für eine dauerhaftere Lösung gehen Sie wie folgt vor (benutzerspezifische Änderung. Dies betrifft nur Sie und den Hund. Die Katze überlebt noch.):

sudo nano ~/.bashrc

Fügen Sie am Ende die folgende Zeile hinzu und speichern Sie:

LOG=1

Starten Sie den Computer zum Testen neu.

Sie sollten sehen, dass die Informationen in der .cache/notify-osd.logDatei angezeigt werden. Zum Beispiel das ich nach dem 2-fachen Trennen meiner Kabelverbindung:

GNU nano 2.2.6 Datei: .cache / notify-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
quelle
3
Kleine Warnung: Dies könnte eine schlechte Idee sein ... LOG = 1 in / etc / environment macht es zu einer systemweiten Variable und könnte Dinge kaputt machen ... Gott weiß, was auf LOG reagiert (ofc. Sie hätten es so etwas wie NOTIFYOSDLOG machen sollen) ). Vielleicht würde ich es für den Anfang zu bashrc für 1 Benutzer hinzufügen, nur um sicherzugehen.
Rinzwind
@ Rinzwind Ja, das dachte ich mir. Bashrc hinzugefügt.
Luis Alvarado
Danke Luis. Ich habe das akzeptiert, weil es kein weiteres PPA erfordert, was großartig ist. (Ich habe @Stump das Kopfgeld nur gegeben, weil Sie so viele Wiederholungen haben, dass Sie es nicht verpassen, ich hoffe, es macht Ihnen nichts aus).
Tom Brossman
1
@TomBrossman Ich werde dich hassen, bis Ubuntu Microsoft kauft ^^.
Luis Alvarado
15

Sie können die Paketindikator-Benachrichtigungen installieren, die die empfangenen Benachrichtigungen protokollieren. Sie können mit den folgenden installieren

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

Sie müssen sich abmelden und wieder anmelden. Es wird als Mailbox im oberen Bereich angezeigt und wird grün, wenn Sie neue Nachrichten erhalten.

Benachrichtigungen

Dies ist am 13.04, sollte aber auch am 12.04 funktionieren.

Stumpf
quelle
Dies zeigt keine Indikatorbenachrichtigungen + Taskleistensymbole inUbuntu 19.04(GNOME Shell)
MD an. Mohiuddin Ahmed
6

Dies zeigt alle Benachrichtigungsmeldungen vom Start bis zum Beenden an.

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

Kopieren Sie es und fügen Sie es in ein Terminalfenster ein ( Ctrl+ Alt+ T).

Um es zu stoppen, benutze Ctrl+ Coder schließe das Fenster.

Dies ist zwar nicht diskriminierend und grob, kann aber durch Ändern des grepregulären Ausdrucks genau überwacht werden, um die gewünschten Details eines bestimmten Benachrichtigungsmittels zu überwachen "member=Notify\|string". Der Text kann dann mit etc. massiert werden sed, awkum gut auszusehen.

Vor allem wäre es sinnvoll, das Skript so zu konfigurieren, dass es automatisch mit dem zu überwachenden Agenten ausgeführt wird.

Querverweis:
- explizite Details unter Gibt es eine Möglichkeit, den Benachrichtigungsverlauf anzuzeigen?

troll la la la
quelle
1
+1 Dies ist interessant, aber es muss bereits ausgeführt werden, um frühere Nachrichten anzuzeigen.
Tom Brossman
1
Genau This will show all notification messages **from the time it is started** until it is stopped. alle anderen vorgeschlagenen Lösungen müssen ausgeführt werden, bevor sie wirksam werden. Dies ist nicht anders, außer ... Um es "klebrig" zu machen, kann das Skript als Teil der Boot-Initialisierungsroutine eingebunden werden. Die Ausgabe kann auch an eine Protokolldatei weitergeleitet werden. Link hinzugefügt für mehr Details ref. Links hinzugefügt werden - viele, viele, viele
Troll la la la