Я интенсивно использую 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. Я не уверен, что происходит. Возможно, существует какой-то путь IPC, который разрушается между терминалом и tmux, который использует notify-send, или что-то еще? Могу ли я что-нибудь сделать, чтобы восстановить функциональность notify-send, не теряя существующий сеанс tmux?
источник
$DBUS_SESSION_BUS_ADDRESS
было установлено в моем сеансе tmux, где он не работал. Я отсоединился и протестировалnotify-send
в обычном терминале, подтвердил, что он работает, и обнаружил, что переменная окружения вообще не установлена! В сеансе tmux я сбросил$DBUS_SESSION_BUS_ADDRESS
иnotify-send
теперь правильно работает! Я не знаю, что ввело эту переменную в среду, но теперь у меня есть решение, которое делает именно то, что мне нужно. Спасибо!