LinuxForum.Fans
Тема

Принцип запуска графических приложений X-сервером

Автор: foo 4 сообщений 1578 просмотров
#205376

Я всегда думал, что взаимодействие клиентских приложений с X-сервером сводится к простому прослушиванию иксами определённого порта и отрисовке окошечек с помощью windows-менеджера, в зависимости от того, что ему туда накидают. То есть никакой разницы было ли приложение запущено из под консоли, или из под X-сервера быть не должно.
С этой точки зрения введенная в консоли

text
xterm -display 127.0.0.1:0.0

выглядит очень логично: мы указываем ip, номер монитора и номер рабочего стола, из которых легко получить номер порта (6000 + номер монитора). Но почему, тогда, команда

text
xterm

(! без аргументов) вызванная из под X-сервера всё так же корректно показывает окно терминала, при том, что она же запущенная из под консоли выдает "dilplay is not set"?
И аналогичное противоречие номер два: запуск

text
xset -display 127.0.0.1:0.0 r rate 200 25

из под X-сервера корректно изменяет авторепит клавиатуры, а при запуске из консоли ничего не меняется.

В чем подвох?

#205388

можно попробовать разгадать эту тайну при помощи strace. Попробую.

#205416

В иксах[console]$ echo $DISPLAY
:0.0[/console]

В консоли:[console]$ DISPLAY=:0.0 xterm &[/console]

Угадал?

#205612
bormant написал:

[console]$ DISPLAY=:0.0 xterm &[/console]
Угадал?

Да :). Спасибо.
А что на счёт второго вопроса?
[console]$ DISPLAY=:0.0 xset r rate 200 25[/console]
всё так же ничего не делает.
И если уж обобщить, то существует ли способ отслеживать используемые программой переменные окружения?

Войдите или зарегистрируйтесь, чтобы ответить.