Как установить собственное разрешение?

77

Я попытался использовать xrandrдля установки 1680x1050 в качестве нового режима для выхода VGA, но он говорит:

sudo xrandr --addmode VGA-0 1680
X Error of failed request:  BadMatch (invalid parameter attributes)
Major opcode of failed request:  140 (RANDR)
Minor opcode of failed request:  18 (RRAddOutputMode)
Serial number of failed request:  35
Current serial number in output stream:  36
user216356
источник

Ответы:

128

Сначала сгенерируйте "modeline" с помощью cvt
Синтаксис: cvt width height refreshrate

cvt 1680 1050 60

это дает вам:

# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
Modeline "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

Теперь скажите это xrandr :

xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

Затем вы можете добавить его в таблицу возможных разрешений вывода по вашему выбору:

xrandr --addmode VGA-0 1680x1050_60.00

Изменения теряются после перезагрузки, для постоянной настройки разрешения создайте файл ~/.xprofileс содержимым:

#!/bin/sh
xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
xrandr --addmode VGA-0 1680x1050_60.00
Thom
источник
21
Возможно, подключенного устройства нет VGA-0. Если вы получили сообщение xrandr: cannot find output "VGA-0", попробуйте выполнить следующую команду: xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/"(source: xrandr в ArchWiki ). Результатом этой команды должен быть правильный идентификатор устройства.
Тридцатая
10
Вам не нужно sudo с xrandr
Panther
2
Я хотел бы добавить, что у меня та же самая ошибка - и вышеупомянутое не решает проблему вообще
TellMeWhy
3
Если вы работаете на виртуальной машине, дисплей обычно Virtual1вместо VGA-0.
CyberEd
5
Вам нужно заменить VGA-0 подключением вашего монитора. Используйте xrandr --listmonitors. См. Как исправить ошибку «xrandr: не удается найти вывод« VGA1 »»?
Хуман
14

Как установить пользовательское разрешение, указанное ранее. После выполнения других шагов, определенных для создания разрешения, выполните:

xrandr -s 1680x1050
GuiRitter
источник
4

Как установить пользовательское разрешение, указанное ранее при запуске нескольких мониторов . После выполнения других шагов, определенных для создания разрешения, выполните:

xrandr --output DVI-0 --mode 1680x1050

Замените DVI-0на свой идентификатор устройства, например,VGA-0

pokkie
источник
3

Благодаря тому и тому, что это в основном конфигурация одной команды, основанная на ответе с наибольшим количеством голосов .

RES="1920 1200 60" && \
DISP=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") && \
MODELINE=$(cvt $(echo $RES) | grep -e "Modeline [^(]" | sed -r 's/.*Modeline (.*)/\1/') && \
MODERES=$(echo $MODELINE | grep -o -P '(?<=").*(?=")') && \
cat > ~/.xprofile << _EOF
#!/bin/sh
xrandr --newmode $MODELINE
xrandr --addmode $DISP $MODERES
_EOF

Приведенная выше команда сгенерирует нужный ~/.xprofileфайл. Просто убедитесь, что вы используете разрешение (то есть RESпеременную) по своему вкусу. Больше информации здесь .

Tanasis
источник