Я создаю утилиту, которая упрощает определение и добавление / удаление пользовательских разрешений с помощью cvt и xrandr, по крайней мере, до 2 командных входов.
Идея состоит в том, чтобы ввести собственное разрешение и частоту кадров (аналогично тому, как вы это делаете с cvt) на конкретном порту, если используете несколько, и посмотреть, может ли ваш монитор на указанном порту отображать его.
2-я команда - это простая запись y или n, если ваш экран не черный.
Вот тут-то и кроется хитрость, и проблема, с которой я сталкиваюсь ...
Если вы введете n
в запросе проверки, экран должен быть сброшен до предыдущего разрешения, которое также включает текущее разрешение при запуске.
Проблема, с которой я сталкиваюсь, заключается в невозможности получить текущую модельную линию при запуске утилиты.
Кто-нибудь знает способ получить Точную модельную линию для xrandr --output ##### --mode <mode>
или это не возможно?
Это довольно старый вопрос, но если кто-то столкнется с проблемой, вот ответ. Из командной строки проще всего использовать
> xrandr --verbose
[...]
DP-3 connected 1920x1080+0+0 (0x22d) normal (normal left inverted right x axis y axis) 641mm x 401mm
1920x1080 (0x22d) 148.500MHz +HSync +VSync *current +preferred
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
[...]
. Соответствующая линия модели может быть извлечена из чисел в выходных данных, например.
Modeline "1920x1080_60" 148.5 1920 2008 2052 2200 1080 1084 1089 1125 +HSync -Vsync
Если вам нужно исправить модельную линию, вы также можете вручную добавить эту модельную линию через xrandr.
> xrandr -d :1 --newmode "1920x1080_60" 148.5 1920 2008 2052 2200 1080 1084 1089 1125 +HSync -VSync
> xrandr --addmode DP-3 "1920x1080_60"
> xrandr --output DP-3 --mode "1920x1080_60"
Если вы пишете программу, вы, конечно, можете использовать libXrandr, особенно ее функцию XRRGetOutputInfo
для чтения нужной информации из XRRModeInfo
режима. структура.