![Несколько дисплеев X на одном мониторе](https://rvso.com/image/1493928/%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B5%D0%B2%20X%20%D0%BD%D0%B0%20%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC%20%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B5.png)
Я разрабатываю программное обеспечение для целевой системы, которая имеет 3 дисплея, по одному на каждый монитор: localhost:0.0
, localhost:0.1
,localhost:0.2
Хотя в целевой системе имеется 3 монитора, в моей системе разработки их всего 2. Чтобы программное обеспечение работало в системе разработки (в которой отсутствуют ожидаемые дисплеи), все окна выводятся localhost:0.0
вместо соответствующих им дисплеев, чтобы его можно было протестировать в системе разработки.
Иногда я действительнонуждатьсядля тестирования с 3 дисплеями, чтобы гарантировать, что каждый дисплей показывает то, что должен. Если я работаю в системе Windows, я могу запустить X-сервер в режиме, который дает мне 3 окна, каждое из которых является отдельным дисплеем: 0.0
, 0.1
, и 0.2
, затем я использую ssh с X-forwarding. Хорошо. Есть ли способ сделать что-то подобное в системе Linux?
Система Linux, которую я использую, представляет собой сервер Red Hat, к которому я подключаюсь через удаленный рабочий стол с компьютера Windows.
Есть ли способ запустить отдельные X-дисплеи на одном мониторе? Желательно иметь отдельное окно для каждого, но это не обязательно.
В поисках ответа я нашел множество вещей, которые могли бы оказаться полезными, если бы я их понимал (или если бы я был уверен, что они говорят об одном и том же).
Вот одно из решений, которое я попробовал: здесь на superuser есть вопрос под названием "Multiple X instances", который начинается с "I can run multiple X instances via startx -- :1
...". Я попробовал, но получил ошибки аутентификации PAM. Поиск в Google выдает только кучу людей, у которых эта проблема возникает только после su от root к другому пользователю, но у меня даже нет доступа root. Не уверен, что это вообще то, что мне нужно.
Еще один источник, который я нашел:Как запустить более одного X-дисплея?, что является еще одним вопросом суперпользователя: «Я хочу запустить два дисплея X, один по alt + F7 и один по alt + F8. Как мне это сделать?», на который можно ответить с помощью xinit
или startx
.
/ — самая многообещающая зацепка, с которой я сталкивался. Если это то, что мне нужно, и я просто делаю это неправильно, я могу создать отдельный вопрос о них startx
.xinit
решение1
Вы можете использоватьXгнездокоторый поддерживает до 3 экранов. Просто запустите
Xnest -scrns 3 :1
и вы получаете 3 окна, каждое из которых отображается для клиента X11 как настоящий экран на одном дисплее.
-scrns int Эта опция указывает количество экранов, создаваемых на вложенном сервере. Для каждого экрана Xnest создаст отдельное окно верхнего уровня. Каждый экран обозначается числом после точки в спецификации имени отображения клиента. Например, xterm -display :1.1 откроет клиент xterm(1)...
Вам не нужно быть пользователем root для запуска Xnest
или загрузки, если у вас есть доступ к репозиторию RPM.
yumdownloader xorg-x11-server-Xnest
и вы должны получить файл RPM, который вы можете распаковать с помощью
rpm2cpio thefilewegot.rpm | cpio -civd ./usr/bin/Xnest
тогда вы можете запустить этоusr/bin/Xnest :1 ...