XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux

Оригинал здесь

XRandR — расширение X сервера, позволяющее производить настройки режимов работы мониторов. Например, можно изменить разрешение, вывести изображение на внешний монитор, повернуть изображение и тому подобное. Утилита часто полезна для настройки корректного разрешения при подключении к внешнему монитору или телевизору.

Вывод доступных мониторов и режимов
Введя в терминале
xrandr
, мы увидим список интерфейсов по которым могут быть подключены мониторы и доступные режимы работы монитора (разрешение и частота смена кадров в герцах).
Пример вывода:
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024×600+0+0 (normal left inverted right x axis y axis) 223mm x 125mm
1024×600 60.0*+
800×600 60.3 56.2
640×480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)

Возможные названия интерфейсов:

LVDS1 — экран ноутбука;
VGA1 — экран, подключаемый через VGA;
DVI1 — экран, подключаемый через DVI;

Названия интерфейсов могут отличаться в зависимости от используемой видеокарты. Для последующей работы с конкретным интерфейсом, необходимо запомнить его название (например, VGA1 если мы работам на видео от Intel и подключаем монитор по VGA, который и хотим настроить через XRandR).

Изменение разрешения
Лучше всего рассмотреть пример:
xrandr —output LVDS1 —mode 800×600

Опция —output предназначена для указания на нужный интерфейс, а —mode собственно на выбираемый режим работы. Обратите внимание, что выбираемый режим должен быть указан в выводе команды
xrandr
(смотреть предыдущий раздел статьи).
Если нужный вам режим не прописан, то необходимо добавить его вручную. Это позволяет настроить монитор на правильное разрешение, при ситуации, когда в списке оно отсутствует (например, если при подключении 1080p монитора в программах настройки экрана доступно лишь намного меньшее разрешение). Данная проблема связана с тем, что некоторые мониторы и множество телевизоров почему-то не считают нужным передавать информацию о своём разрешении при подключении через VGA.
Создание нового режима
Если режим уже существует (смотреть перввую часть статьи), но не связан с нужным интерфейсом, то можно добавить режим таким образом:
xrandr —addmode VGA1 1024×600
— добавляем режим с разрешением 1024×600 и 60 Гц частотой для монитора, подключённого по VGA1.
Если режима ещё не существует, то сначала вызываем утилиту CVT (Coordinated Video Timing) с необходимым разрешением и частотой кадров в качестве параметров (в качестве примера добавим режим 1600×900 при 60Гц):
cvt 1600 900 60

Вывод утилиты cvt с нашими параметрами таков:
# 1600×900 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

Далее мы скопируем всё, что после Modeline при вызове xrandr с ключём создания нового режима:
xrandr —newmode «1600x900_60.00» 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Теперь осталось «привязать» созданный режим к нужному интерфейсу (в нашем примере к VGA1):
xrandr —addmode VGA1 1600x900_60.00

Наконец, мы можем выбрать нужное нам разрешение для монитора:
xrandr —output VGA1 —mode 1600x900_60.00

Режимы работы с несколькими мониторами
Отключение дисплея
Отключить не нужный в данный момент дисплей можно с помощью опции —off:
xrandr —output LVDS1 —off
— отключаем монитор ноутбука.
Расположение мониторов относительно друг-друга
xrandr —output VGA1 —right-of LVDS1
— монитор, подключённый по VGA1 будет располагаться «справа» от монитора ноутбука (переходить на внешний монитор необходимо будет через правый угол монитора ноутбука).
Аналогично используется опция —left-of
xrandr —output LVDS1 —primary
— монитор ноутбука становится основным.
Чтобы сделать виртуальный экран большего разрешения, чем физический (в таком режиме, чтобы увидеть всё изображение необходимо будет передвигать курсор за границы) применяем команду:
xrandr —output LVDS1 —mode 1024×600 —fb 1280×720 —panning 1280×720

После этого у вас будет виртуальное разрешение 1280×720 при 1024×600 физическом.

Поворот
Используйте следующие опции применительно к нужному интерфейсу:

  • —rotate normal
  • —rotate left
  • —rotate right
  • —rotate inverted (поворот на Пи радиан)

Сохранение настроек
Для активации необходимых настроек при старте, создайте файл ~/.xprofile (~/ указывает на расположение в домашней директории) и внесите в него необходимые строки команд xrandr.

Статья частично основана по материалам англоязычной документации.