Из-за сломанного монитора мне нужно настроить только правую половину экрана

8

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

Простое xrandr -s 1274x1080получит правильное разрешение, но по центру. Использование --transform 1,0,-323,0,1,0,0,0,1переместит экран, но не займет правую сторону.

Я уже пытался поиграть с modelineиспользованием ссылки, приведенной в этом ответе , но он не двигает экран, что бы я ни менял.

Луис Пачеко
источник

Ответы:

5

Вы не ошиблись в этом --transformдействии!

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

- преобразовать a, b, c, d, e, f, g, h, i

(...)

Другими словами, координаты устройства (x 'y') преобразованного пикселя:

                 x' = (ax + by + c) / w'   and
                 y' = (dx + ey + f) / w'   ,
                 with  w' = (gx + hy + i)  .

Следовательно, чтобы сместить вывод вправо, уменьшить ось X на 2, оставить ось Y как есть и не выполнять никаких других операций (вращение, инверсия и т. Д.), Которые необходимо выполнить.

xrandr --output LVDS1 --transform 2,0,-1920,0,1,0,0,0,1

Выше я предположил, что ваше обычное разрешение - 1920x1080 (вы упомянули full hd, и так его называют). Очевидно, измените отображаемое имя на ваше.

Если сломана только небольшая часть монитора (не половина), вам необходимо выполнить некоторые вычисления:

a = 1/(1-broken_fraction)
c = (1-a)*resolution

так что если сломано 1/3, мы имеем = 1,5, с = -960:

xrandr --output LVDS1 --transform 1.5,0,-960,0,1,0,0,0,1

Конечно, вы можете изменить разрешение с помощью той же команды, и в этом случае может потребоваться некоторый пересчет.

jimmij
источник
Печально, что вы так и не получили ответа от пользователя. Молодцы, это хороший расчет и объяснение!
ReneFroger