tech-tips/Программное обеспечение/ОС и загрузчики/Linux/Ubuntu - Debian/Разрешение второго монитора (Ubuntu v18+).md

74 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

Порядок действий, если второй монитор показывает не в том разрешении
```shell
# Узнать id монитора:
xrandr --listmonitors
# Получить Modeline (в кавычках будет название, оно дальше пригодится):
cvt -r 1920 1080
# либо
gtf 1920 1080 60
# Скопировать всё после слова Modeline до конца строки
# Создать режим:
xrandr --newmode <Modeline>
# Добавить режим к монитору:
xrandr --addmode <id монитора> <название>
# Удалить режим у монитора:
xrandr --addmode <id монитора> <название>
# Перейти в параметры и выбрать для монитора добавленное
# разрешение в списке доступных
# Либо применить сразу командой:
xrandr --output <id монитора> --mode <название>
```
## Мой скрипт
```shell
#!/bin/bash
# https://www.notion.so/axenov/Ubuntu-v18-5bfba696c176484bb2d249791a4c7f60
# cvt 1600 900
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
# Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
# gtf 1600 900 60
# 1600x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 119.00 MHz
# Modeline "1600x900_60.00" 119.00 1600 1696 1864 2128 900 901 904 932 -HSync +Vsync
# set -x
width=1600
height=900
display="HDMI-2"
modename="${width}x${height}_aaa"
modeline=$(cvt ${width} ${height} | grep "Modeline")
# modeline=$(gtf ${width} ${height} 60 | grep "Modeline")
params=$(echo "$modeline" | sed "s|^\s*Modeline\s*\"[0-9x_.]*\"\s*||")
echo "Set resolution ${width}x${height} on display $display:"
echo "$modename $params"
xrandr --output $display --mode 800x600
if $(xrandr | grep -q "$modename"); then
xrandr --delmode $display $modename
xrandr --rmmode $modename
fi
xrandr --newmode $modename $params
xrandr --addmode $display $modename
xrandr --output $display --mode $modename
```
Параметры для моих мониторов:
```shell
$ cvt 1600 900
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
$ gtf 1600 900 60
Modeline "1600x900_60.00" 119.00 1600 1696 1864 2128 900 901 904 932 -HSync +Vsync
```