Настройте Xorg на использование только части экрана

13

Мой экран имеет разрешение 1280 х 1024. Но, к сожалению, самый правый пояс в 200 пикселей поврежден и не может отобразить какое-либо изображение.

Как я могу установить, что Xorg будет обрабатывать мой экран как устройство 1080 x 1024?

Теперь я попробовал:

Virtual 1080 1024
Viewport 0 0

Это не работает правильно - изображение масштабируется по размеру по вертикали, а по горизонтали я могу перемещаться с помощью мыши.

Рок Краль
источник
2
Я открыл награду в поисках новых решений, возможно, более простых. Спасибо всем!
Рок Краль

Ответы:

8

Проверьте: http://howto-pages.org/ModeLines/ , у них есть хорошее объяснение модели Xorg. Затем перейдите по адресу http://xtiming.sourceforge.net/cgi-bin/xtiming.pl и введите спецификации для размера экрана, который вы можете использовать. Это даст вам Modeline, который вы можете добавить в свой файл xorg.conf.

Поля 4, 5, 6 и 7 соответствуют следующим значениям: HDisplay HSyncStart HSyncEnd HTotal.

Играя с полями 5 и 6, вы сможете перемещать видимую часть экрана влево или вправо, в зависимости от того, что вам нужно.

Тим Кеннеди
источник
Не могли бы вы объяснить это более подробно?
Рок Краль
конечно. думайте о hsync как о возврате каретки на пишущей машинке. Вспомните, как X-дисплеи управления были разработаны еще во времена CRT. HSyncStart говорит, что нужно начинать рисовать пиксели в определенном месте, и продолжать рисовать до тех пор, пока не будет HSyncEnd, в котором будет установлен сигнал HSync, сообщая CRT нарисовать следующую линию на экране. В эпоху ЖК, это наследие, но оно все еще работает. Играя с начальным и конечным полями горизонтальных линий, вы можете контролировать ширину экрана и на какой части физического носителя. Ссылка в посте имеет хорошее объяснение.
Тим Кеннеди
2

Вам нужно будет разобраться, как лучше всего использовать диспетчера, но:

Вы можете нормально запустить Xorg, который будет использовать весь экран в полном разрешении, например

Xorg :123 -ac

Ключ -ac отключает некоторые (все?) Ограничения Xorgs, которые он может иметь при разрешении клиентов. Затем вы запускаете Xephyr как единственный клиент (вы можете адаптировать разрешение, переданное как аргумент -screen, к вашим потребностям):

DISPLAY=:123 Xephyr :0 -screen 1720x1200

Xephyr - это своего рода «оверлейный Xserver», который взаимодействует с клиентами точно так же, как любой Xserver, но вместо того, чтобы заботиться о рендеринге и вводе (часть, с которой сталкивается пользователь), Xephyr полагается на другой Xserver для этого.

То, как вы комбинируете эти команды, во многом зависит от вашего варианта использования. В общем, такие приложения, как менеджеры сеансов, дают вам возможность предоставить команду, как вызывать Xserver.

Что я сделал, чтобы попробовать это:

Создать /root/.xinitrcс содержанием

Xephyr :0 -ac -once -query myxdmcphost -screen 1400x1200`

где 1400 - это ширина моего экрана -200 пикселей.

Затем я запускаю, xinit -- :123 -my -usual -xorg -options -for -my -computerи в результате я получаю экран входа в систему и сеанс, который фактически использует весь мой экран, но столбец шириной 200 пикселей с правой стороны.

Чтобы иметь тот же эффект, например, для GDM, вам нужно будет ввести xinitкоманду пару раз в gdm.confкачестве метода для вызова Xserver. Но я не могу сказать вам из головы, как это сделать.

Bananguin
источник
1
Xephyr не поддерживает аппаратное ускорение opengl, не подходит для любой современной DE или игры.
Рок Краль