На работе у меня рабочий стол с монитором и несколько запущенных сеансов tmux. Дома я часто захожу на этот рабочий стол и захожу в свои сеансы tmux. Когда я ssh из дома, я не хочу использовать X11, поэтому я не использую -X
флаг. Когда я возвращаюсь на работу (после ssh'ing из дома) и использую эти сеансы tmux на рабочем столе, я больше не могу делать ничего, что порождает GUI. Я не могу открыть файлы в Evince. Когда я пытаюсь использовать matplotlib, я получаю : cannot connect to X server
сообщение.
После ssh'а и открытия существующего сеанса tmux из дома, как мне позже присоединить возможность открывать GUI на рабочем столе?
Похоже, что ssh'ing из дома заставляет сеанс tmux забыть, что он может порождать GUI.
РЕДАКТИРОВАТЬ:
-X
флаг сейчас или нет? Вы можете делать X11 только через SSH, если он установлен.Ответы:
Все, что мне нужно сделать, это установить переменную окружения DISPLAY в: 0.0. Я думаю, проблема заключалась в том, что я использую рыбную оболочку, и мне нужно использовать флаг -x, чтобы установить при этом:
источник
DISPLAY
может отличаться от:0.0
. Быстрый способ узнать это - создать новое окно tmux иecho $DISPLAY
там.echo $DISPLAY
вернулсяlocalhost:10.0
и работаетset DISPLAY localhost:0.0
сделал свое дело .bash
эквивалент или версию кросс-оболочки?set -x
просто увеличивает многословие для меня вbash
. @ IsaacS, ты должен былset DISPLAY localhost:10.0
вместо этого илиlocalhost:0.0
работал на тебя?export DISPLAY=:0.0
.$DISPLAY
?Я была такая же проблема. Я обычно использую
tmux
как часть настольной среды с несколькими мониторами X11, а иногда и ssh из chromebook, который не поддерживает X11 или набор$DISPLAY
. Ответ @chrisdembia работает, но требует измененияDISPLAY
в каждом новом окне до конца сеанса tmux, что является проблемой.Постоянное решение - удалить
DISPLAY
изupdate-environment
переменной tmux в настройках tmux. Вы можете увидеть свое текущее значение с помощью этой команды:Чтобы удалить его, я добавил эту строку в свой
~/.tmux.conf
файл, включая все, кромеDISPLAY
:Это дополнительно объясняется в разделе Сброс переменной оболочки DISPLAY в сеансе tmux через ssh , которая объясняет, почему
DISPLAY
она существует по умолчанию, для другого распространенного варианта использования.источник