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

2.3 KiB
Raw Permalink Blame History

Порядок действий, если второй монитор показывает не в том разрешении

# Узнать 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 <название>

Мой скрипт

#!/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

Параметры для моих мониторов:

$ 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