У меня есть дисплей, и самый правый край моего монитора сломан! Чтобы заставить его работать, я пытаюсь каким-то образом ограничить рабочий стол пикселями, которые на самом деле работают.

Это будет означать:

  • Указатель не должен входить в черную область никогда
  • Окна, если они развернуты, должны занимать только те пиксели, которые работают.

Я использую Ubuntu 13.10! Любые условия, которые я могу исследовать, были бы великолепны!

1 ответ1

1

Мы будем использовать два инструмента для достижения нашей цели. Первый - cvt, а второй - xrandr.

Прежде всего, вы должны знать, сколько места вы хотите обрезать и с какой стороны экрана. В моем случае у меня были битые пиксели в верхней части экрана моего ноутбука, занимающие около 20 пикселей (предположительно), поэтому я хотел уменьшить размер экрана в верхней части экрана и их, а не чтобы они покрывали верхнюю часть заголовков , Я расскажу вам, как я это сделал, вы можете принять его в соответствии с вашей ситуацией.

Итак, я начал с запуска xrandr, чтобы увидеть размер моего дисплея

$ xrandr 
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 32767 x 32767
LVDS1 connected primary 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1280x800       60.0*+   50.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        60.0     59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
TV1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Так что размер экрана 1280х800

Поскольку я предполагаю, что пиксели заняли 20 пикселей в верхней части экрана, поэтому новое значение будет 1280x780.

ВТОРОЙ: werun cvt, чтобы мы могли получить «магические значения» для этого размера:

 $ cvt 1280 770
# 1280x770 59.91 Hz (CVT) hsync: 47.93 kHz; pclk: 79.75 MHz                                                                 
Modeline "1280x770_60.00"   79.75  1280 1344 1472 1664  770 773 783 800 -hsync +vsync

Важная часть начинается с "Modeline" - значения, указанные в этой строке, - это те, которые вам нужно будет передать xrandr, чтобы на экране появилось новое значение. Xrandr делает это, используя то, что называется "режим".

Третье: пришло время создать новый режим, используя значения, которые мы получили из cvt.

Команда, которая позволяет нам сделать это (используя значения, которые я получил выше) выглядит следующим образом:

$ xrandr --newmode 1280x770   79.75  1280 1344 1472 1664  770 773 783 800 -hsync +vsync

ЧЕТВЕРТЫЙ: мы добавляем этот новый режим к тем, которые доступны в xrandr. Это делается с помощью команды --addmode в xrandr. В моем конкретном случае я добавлял его в LVDS1.

Итак, команда будет:

$ xrandr --addmode LVDS1 1280x770

ПЯТЫЙ: Мы проверяем, был ли новый режим добавлен в xrandr. Это делается с помощью:

$ xrandr -q

Я получил:

    $ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 32767 x 32767
LVDS1 connected primary 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1280x800       60.0*+   50.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        60.0     59.9  
   1280x770       59.9
VGA1 disconnected (normal left inverted right x axis y axis)
TV1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Вы можете видеть, что это было добавлено и теперь перечислено внизу - 1280x770 59,9

Так что теперь время запустить новый режим! Мы делаем это, запустив:

$ xrandr --output LVDS1 --mode 1280x770

Экран должен погаснуть и снова включиться с примененным новым режимом и уменьшенным размером экрана.

В результате появляется черная полоса в верхней части экрана, где мышь и приложения используют ее как границу экрана.

Итак, последний шаг - запуск этой команды при входе в систему, чтобы мне не приходилось с ней справляться. Способ сделать это зависит от вашего рабочего стола и выходит за рамки этого ответа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .