NotifyOSDメッセージが表示された後、どのように読むことができますか?


14

notify-osd時々表示されるメッセージのリストを読みたいです。問題があれば、まだ12.04を使用しています。これは可能ですか?

2010年のこれら2つの質問は、ログファイルがに存在する必要があることを示しています~/.cache/notify-osd.log。そのようなファイルはありません。これがバグであるか(この場合はこの質問を閉じる必要があります)、またはこのログファイルが別の設定(システム設定->プライバシーなど)に依存するかどうかを知りたいですか?

再起動間でデータを保存する必要はありません。現在のセッションのメッセージを閲覧したいだけです。

編集: 2つの良い答えを今すぐですが、これらのメッセージが画面に表示された後、短い期間、どこに保存されているかを知りたい(合計推測、/ tmp?RAM?)。1〜2分で20〜30の通知がある場合でも、いくつかの種類のバッファが次々に表示され、それぞれ数秒存在する必要があります。

私は元の質問で、別のPPA +インジケータや過度のドライブ書き込みに興味がないことを言及していませんでした。メッセージが表示された後、しばらくの間メッセージを表示できるかどうかを知りたいだけです。

これの使用例は、数分前にストリーミングラジオ局で再生された曲を検索することです。バックグラウンドミュージックとして使用していますが、聞いた後に曲が頭に残ることがあります。1〜2曲前に再生したものを確認する方法はありません。


1
ログが表示されなくなった理由:bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/904835
セス

ラジオストリームの再生に使用しているアプリ/プレーヤーはどれですか?
バスハラトシャルビ

@BasharatSial Radiotray
トムブロスマン

1
@TomBrossman Radiotrayには、history plugin以前に再生した曲を追跡する機能があります。
バスハラトシャルビ

@BasharatSialありがとう、それはおそらく私にとって最も簡単な解決策です。
トムブロスマン

回答:


6

よく見て回った後(A LOT)notify-osd、デバッグ目的で使用され、毎回HDDに書き込まれるため、デフォルトでログファイルに出力しないようにすることに関する2011年のコード変更を見つけました。この機能を有効にするには、一時的な方法とより永続的な方法の2つの方法があります。

一時的な方法

ターミナルを開き、次のように入力します。

64ビットシステムの場合:

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

32ビットシステムの場合:

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

これで、.cache/notify-osd.logファイルとデバッグ情報が表示されます。

恒久的方法(警告:グローバル変更)

より恒久的な解決策については、次のことを行ってください(グローバル変更。以下のRinzwindが言及している警告をお読みください。これは全員に影響し、猫を殺します!)。

sudo nano /etc/environment

最後に次の行を追加して保存します。

LOG=1

コンピューターを再起動してテストします。

永続的な方法(ユーザー固有の変更)

より恒久的な解決策として、次のことを行います(ユーザー固有の変更。これはあなたと犬にのみ影響します。猫は生き残ります)。

sudo nano ~/.bashrc

最後に次の行を追加して保存します。

LOG=1

コンピューターを再起動してテストします。

.cache/notify-osd.logファイルに情報が表示され始めます。たとえば、これは有線接続を2回切断した後です。

GNU nano 2.2.6ファイル:.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

3
小さな警告:これは悪い考えかもしれません... / etc / environmentのLOG = 1はシステム全体の変数となり、何かを壊す可能性があります...神はLOGに何が反応するかを知っています。 )。たぶん初心者のために、たった1人のユーザーのためにbashrcに追加したいと思います。
リンツウィンド

@Rinzwindうん、そう思った。bashrcを追加しました。
ルイスアルバラード

ルイスありがとう。別のPPAを必要としないため、これを受け入れました。(@Stumpに賞金を与えたのは、見逃せないほど多くの担当者がいるからです。気にしないでください)。
トムブロスマン

1
@TomBrossman Ubuntuがマイクロソフトを買収するまで、私はあなたを憎むでしょう^^。
ルイスアルバラード

15

受け取った通知を追跡するパッケージインジケーター通知をインストールできます。以下でインストールできます

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

ログアウトして再度ログインする必要があります。トップパネルにメールボックスとして表示され、新しいメッセージを受信すると緑色に変わります。

通知

これは13.04にありますが、12.04でも動作するはずです。


これはにはインジケータの通知+システムトレイアイコン表示されていないUbuntu 19.04(GNOME Shell)
MDを。モヒウディンアーメド

6

これにより、開始してから停止するまでのすべての通知メッセージが表示されます。

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

コピーしてターミナルウィンドウに貼り付けることは(Ctrl+ Alt+ T)。

停止するには、Ctrl+を使用するCか、ウィンドウを閉じます。

これは非差別的で粗雑ですが、grep正規表現を変更することにより、特定の通知エージェントの希望する正確な詳細を監視するために細かく処理できます"member=Notify\|string"。テキストはsedawkなどで見栄えよくマッサージできます。

最後から2番目に、監視対象の選択したエージェントでスクリプトを自動的に実行するようにバインドすることが最も便利です。

クロスリファレンス:
- 通知履歴を表示する方法はありますか?


1
+1これは興味深いですが、過去のメッセージを表示するには既に実行されている必要があります。
トムブロスマン

1
正確 This will show all notification messages **from the time it is started** until it is stopped. に他のすべての提案されたソリューションは、有効になる前に実行する必要があります。これは例外ではありませんが、...「スティッキー」にするために、スクリプトをブート初期化ルーチンの一部として含めることができます。出力をログファイルにパイプすることもできます。詳細については、リンクを追加してください。追加されるリンク-多くの多くの
トロールラララ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.