Что на самом деле означает DISPLAY =: 0.0?

45

Что на :0.0самом деле означает? Я знаю, что :0это первый X-сервер, который запускается на локальной машине, :1второй и т. Д. Но что это за .0часть после :0? Существуют ли другие комбинации? (например :0.0-something)

Справочная информация: я пытаюсь улучшить начальный текст шмеля, который в настоящее время предполагает, что :0это активный дисплей. Это не тот случай, если я переключаю пользователей. Поэтому я хотел проверить $DISPLAYпеременную, прежде чем передать ее vglclient.

Lekensteyn
источник
2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature помог мне понять некоторые из этих терминов. Этот ответ также имеет полезную информацию.
Waldyrious

Ответы:

52

Формат переменного отображения является [host]:<display>[.screen].

host относится к имени хоста сети, а если отсутствует, означает подключение к локальной машине через сокет домена unix.

Каждый хост может иметь несколько дисплеев, и каждый дисплей может иметь несколько экранов. Экраны больше не используются, поскольку xinerama и теперь xrandr объединяют несколько экранов в один логический экран.

CAMH
источник
4
Спасибо, я только что нашел нужную страницу руководства, Xserver(1)указанную в DISPLAY NAMESразделе X(7). Обратитесь к этой странице руководства для деталей.
Лекенштейн
5
И как мне получить список доступных дисплеев для определенного хоста? В идеале в рамках сеанса SSH, где я вошел в систему на хосте с клиентского ПК.
con-f-use
3
Часть дисплея также используется на X поверх SSH. Каждому новому соединению SSH с включенной переадресацией X назначается другой дисплей, поскольку эти экраны внутренне соответствуют смещению номера порта TCP, например DISPLAY=localhost:10.0, заставит клиента localhostперенаправить графический вывод на порт хоста 6010. Это необходимо для пересылки SSH X, потому что если у вас есть несколько подключений к одному и тому же компьютеру, ваша программа должна отправлять разные выходы на разные порты, чтобы SSH-сервер мог перенаправить вывод X в соответствующий пункт назначения.
RAKK
4
@Raza: открываемые номера портов TCP: 6000 + display_number. Для хоста дисплея: 0.0, то есть порта 6000. Для хоста дисплея: 10.0, то есть порта 6010. Обратите внимание, что переадресация SSH X11 выполняется через порт 22, а не через порты X11.
Camh
1
@Claudiu: DISPLAY =: 0 будет использовать сокет домена unix, DISPLAY = localhost: 0 будет использовать сокет домена Интернета (IP). Вероятно, ваш X-сервер не прослушивает конечную точку TCP / IP. Я не знаю сокет домена Unix по умолчанию.
camh