Я активно використовую tmux і маю деякі сценарії, які використовують 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, не втрачаючи існуючого сеансу tmux?
$DBUS_SESSION_BUS_ADDRESS
встановлено на моєму сеансі tmux там, де він не працює. Я відключився і протестувавnotify-send
у звичайному терміналі, підтвердив, що він працює, і виявив, що змінна середовища взагалі не встановлена! У tmux сесії я вимикаю$DBUS_SESSION_BUS_ADDRESS
іnotify-send
тепер належним чином працює! Я не знаю, що ввело цю змінну в середовище, але тепер у мене є рішення, яке робить саме те, що мені потрібно. Дякую!