Я использую Ubuntu Gnome 15.10 с Gnome Shell 3.16. Недавно я заметил, что мой X11 работает не на :0.0
а на :1
. Я думал, что родной дисплей - монитор моего ноутбука - всегда должен быть :0.0
. Кто-нибудь сталкивался с такой вещью? Это нормально, как функция или что-то, или мой дисплей как-то угнан чем-то другим?
1 ответ
Нет, нет ничего , что требовало бы, чтобы "нативный дисплей" был :0
. Это всего лишь первый номер дисплея, который обычно свободен при запуске Xorg, но есть разные причины, по которым его не будет:
Когда вы используете диспетчер отображения, он также запускает графический экран входа в систему на первом доступном сокете. До сих пор большинство менеджеров дисплеев повторно использовали один и тот же X-дисплей для вашего рабочего стола, поэтому, если бы экран входа был на
:0
, ваши собственные программы также использовали бы:0
.Но ничто и не требует этого. Фактически, GNOME GDM начиная с версии 3.16 всегда запускает новый дисплей X, оставляя экран входа в систему все еще работающим на старом. Это делается главным образом для упрощения логики - сеансы на основе Wayland всегда начинаются с отдельного tty, поэтому GDM теперь обрабатывает сеансы X11 одинаково.
Большинство дисплеев дисплеев, в том числе, конечно, GDM, также поддерживают переключение пользователей - поэтому, если два пользователя войдут в одну систему, один получит
:0
а другой получит:1
, даже если оба используют один и тот же "родной" монитор и клавиатуру ,(Ну, теперь
:1
и:2
, если учесть новое поведение GDM.) То же самое, если вы вручную запуститеstartx
на нескольких tty - один будет:0
, один будет:1
, один будет:2
, и так далее.Также возможно, что Xorg был запущен в
:0
один раз, но потерпел крах и оставил устаревший сокет в/tmp/.X11-unix/X0
, заставляя диспетчера думать:0
все еще использовался.
Необязательный суффикс .0
указывает на экран в старом многоэкранном механизме до Xrandr. Это в основном бессмысленно в эти дни.
На самом деле аналогичная ситуация существует в Windows, где Terminal Services являются грубым эквивалентом X11. Вплоть до Windows XP первый пользователь получал сеанс 0, и многие службы предполагали, что они могут отображать там графические интерфейсы, несмотря на то, что они являются службами и технически находятся вне сеанса.
Помимо того, что это небезопасно, это также вызывало проблемы с переключением пользователей и удаленным рабочим столом, так как некоторые программы были совершенно непригодны для использования в сеансах, отличных от 0. В конце концов все стало так плохо, что Windows Vista начала резервировать сеанс 0 для сервисов, а логины пользователей теперь начинаются с 1.
Я надеюсь, что большинство диспетчеров дисплеев X11 также сделают это, просто чтобы сломать то, что предполагает DISPLAY=":0"
.