Откройте приложение с графическим интерфейсом в командной строке

Как мы можем открыть Gtk и другие приложения графического интерфейса через командную строку с Wayland?

Когда я пытаюсь открыть базовый скрипт PyGTK или Gedit, я получаю эту ошибку:

chris@fluffie:~/workspace/wiki-web$ gedit
No protocol specified
Unable to init server: Could not connect: Connection refused
(gedit:13376): Gtk-WARNING **: cannot open display:

Настройка $DISPLAY просто немного изменяет ошибку.
Большинство решений , которые я нашел для этого, вращаются вокруг попытки запуска этих приложений от имени пользователя root и хотят, чтобы вы запускали xhost:

chris@fluffie:~/workspace/wiki-web$ xhost si:localuser:root                                                                                 
xhost:  unable to open display ""

Что, похоже, не помогает (так как я думаете, что предполагается изменять только права доступа?)

Есть идеи, как запустить мои скрипты на python?

Добавление хвоста моего .bashrc с обновлениями, которые я сделал для него:

# Make CapsLock behave like Ctrl
setxkbmap -option ctrl:nocaps
# make press-release CapsLock behave like Escape
xcape -e 'Control_L=Escape' -t 500
alias nose2="python3 /home/chris/.local/lib/python3.5/site-packages/nose2/__main__.py"
export PATH=$PATH:/home/chris/bin
export USER="chris" 
#export DISPLAY=":0"
#export DEPTH="16"
#export GEOMETRY="1280x1024"
#export OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
export EDITOR="vim"
export SYSTEMD_EDITOR="/usr/bin/vim"
export TERM="tmux" 

Редактировать:
Похоже, это проблема с tmux. Я могу открыть gedit или мой скрипт на dinky python через терминал, если он находится за пределами tmux. Поэтому мне просто нужно выяснить, как исправить tmux (или почему это невозможно сделать).

1
задан 13 January 2018 в 18:07

1 ответ

Вы дважды правы - это проблема tmux, и большинство решений просто говорят, что нужно запускать с правами root, что чаще всего является неправильным ответом.

Tmux не импортирует все автоматически в свою сессию. Вы можете указать конкретные переменные, которые вы хотите быть доступными в сеансе, используя update-environment в вашем ~/.tmux.conf:

set -g update-environment 'DISPLAY TERM XAUTHORITY WINDOWID'

Для связанных с SSH проблем xhost, включите SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION в этот список.

0
ответ дан 13 January 2018 в 18:07

Другие вопросы по тегам:

Похожие вопросы: