私はtmuxを頻繁に使用し、notify-sendを使用して画面上の通知を行うスクリプトをいくつか持っています。私は、notify-sendが失敗する特定のケースを発見し、新しいtmuxセッションを開始する以外の回避策を見つけていません(明らかに理想的ではありません)。
新しいtmuxセッションを作成し、notify-sendを使用すると、通知が問題なくポップアップ表示されます。ただし、tmuxセッションからデタッチし、後で再接続すると、notify-sendは次のメッセージで失敗します。
$ notify-send test
(notify-send:26902): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
私は自分の作業を新しいtmuxセッションに移行する以外に解決策を見つけませんでした。これは、そもそもtmuxを使用する全体のポイントを無効にするため、理想的ではありません。何が起こっているのか分かりません。おそらく、端末と、notify-sendが使用するtmuxとの間で破壊されているIPCパスのようなものがありますか?既存のtmuxセッションを失うことなく、notify-sendの機能を復元するためにできることはありますか?
$DBUS_SESSION_BUS_ADDRESS
、それが動作していないtmuxセッションで設定されていることがわかりました。取り外しnotify-send
て通常の端末でテストし、動作していることを確認したところ、環境変数がまったく設定されていないことがわかりました!tmuxセッションで、設定を解除し$DBUS_SESSION_BUS_ADDRESS
、notify-send
正常に動作するようになりました!何がその変数を環境に導入したのかわかりませんが、今はまさに必要なことを行うソリューションがあります。ありがとう!