Вы находитесь в режиме поиска по сайту.
7
июня
2021
11:52

Как сменить разрешение дисплея из командной строки Linux

7 июня 2021 11:52

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

На работе на ПК с операционной системой Linux Mint 19.3 имею широкоформатный дисплей с разрешением 1366 на 768 пикселей. Однажды загрузил компьютер с отключенным дисплеем и установилось разрешение 1024 на 768. Каким-то образом, это разрешение запомнилось и изображение стало растянутым.

Запуск диагностики основного дисплея выдал:

xrandr -d :0 -q
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94

Как видно, разрешение 1024x768 выбрано системой, помечено символом зведочка ( * ).

Решение проблемы

  1. Узнать модель дисплея (наклейка на задней крышке) - по модели установить максимально поддерживаемое разрешение.
    В данном случае 1366 на 768 px при частоте обновления 60 Гц.

  2. Выполнить команду cvt с параметрами, соответствующими разрешению и частоте обновления:

cvt 1366 768 60

В моём случае было выведено следующее:

# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

  1. Надо взять строчку и подать на вход xrandr, чтобы создать новый режим:

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

  1. Узнать название дисплея - выводится командой xrandr:
    xrandr -d :0 -q
    в моём случае VGA1

  2. Добавить дисплею новый, ранее созданный режим:

xrandr --addmode VGA1 1368x768_60.00

  1. Наконец, меняем режим дисплея:

sudo xrandr --output VGA1 --mode 1368x768_60.00

Дисплей может мигать и погаснуть. Если все пошло хорошо, изображение станет выбранного разрешения.

Если нужно, выполнить восстановление разрешения на 1024x768:
несколько раз нажимаем Enter и вводим в командную строку следующую команду

sudo xrandr --output VGA1 --mode 1024x768

Если нужно, повторяем смену режимя дисплея:
xrandr --output VGA1 --mode 1368x768_60.00

нажать "Enter"

Ввод пароля sudo каждый раз не требуется.

Постоянная установка разрешения дисплея при входе в Linux

Я прописал следующие три команды в исполнимый файл.

Вначале создал пустой файл в домашней папке
nano resolution.sh

И вставил в него 4 строки текста:

#!/bin/bash
xrandr --newmode "1368x768_60" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60
xrandr --output VGA1 --mode 1368x768_60

Сохранил файл.

Дал права
sudo chmod 700 resolution.sh

Добавил в автозагрузку (у меня оболочка LXQT):
Пуск - Параметры - Настройки LXQT - Настройки сеанса - Autostart - Add
sh /home/vladimir/resolution.sh.
Подтвердил и закрыл окно.

Вышел и вошел в систему, чтобы проверить. При входе дисплей мигнул и правильное разрешение дисплея применилось.
Также, командный файл resolution.sh можно запускать из окна Терминала.

Случай HDMI подлючения и нескольких мониторов

В отличие от рассмотренного выше подключения через VGA-кабель, при использовании нескольких мониторов, подключеных через интерфейсы HDMI, синтакс команды другой:

xrandr --newmode DVI-I-1 mode_name1 ...
xrandr --newmode DVI-I-2 mode_name2 ...
xrandr --addmode DVI-I-1 mode_name1
xrandr --addmode DVI-I-2 mode_name2
xrandr --output DVI-I-1 --mode mode_name1
xrandr --output DVI-I-2 --mode mode_name1

Названия интерфейсов мониторов можно получить при поможи той же команды "xrandr -q".

Источники:

Комментарии: 0


Похожие публикации