Ограничение размера рабочего стола в Linux

790
Utkarsh Sinha

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

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

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

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

enter image description here

0
возможно дублирование [Как использовать только часть экрана, как если бы монитор был меньше?] (http://superuser.com/questions/129310/how-to-use-only-part-of-screen-as «если монитор был меньше», http://superuser.com/questions/166948/how-to-trick-windows-7-to-use-only-a-part-of- экран? lq = 1, http://superuser.com/questions/369702/splitting-one-giant-monitor-as-if-it-was-two-picture-in-picture?lq=1 Ƭᴇcʜιᴇ007 10 лет назад 0
Решение для Windows было рассмотрено в связанных вопросах @ techie007. Редактирование вашего вопроса так, чтобы оно относилось только к Linux, должно предотвратить его закрытие. Говоря о Linux: какой дистрибутив и окружение рабочего стола вы используете? Dennis 10 лет назад 0
Спасибо @ techie007, я редактировал вопрос, чтобы теперь быть только для Linux. Utkarsh Sinha 10 лет назад 0
Использование ObjectDock на Windows, безусловно, решило проблему. Нужно выяснить, Linux сейчас. Utkarsh Sinha 10 лет назад 0

1 ответ на вопрос

1
curiousrabbit

Мы будем использовать два инструмента для достижения нашей цели. Первый - 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 

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

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

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

Похожие вопросы