В Linux xrandr
— инструмент командной строки настройки расширения RandR (Resize and Rotate) X Window System.

Содержание
- Введение
- Установка
- Синтаксис
- Параметры
- Графические фронтенды
- Конфигурирование xorg.conf
- Базовое использование утилиты xrandr
- Заключение
Введение
Утилиту можно использовать для настройки размера, ориентации или отражения выходов для экрана. Она взаимодействует с расширением X RandR, позволяющим производить настройку/перенастройку X-сервера в реальном времени, то есть без его перезапуска.
Дисплейный сервер является важнейшим компонентом архитектуры Linux GUI, поскольку он управляет связью между графическими приложениями и оборудованием, в частности вашей видеокартой. Он отвечает за отрисовку всего на экране и обработку ввода с мыши, клавиатуры или сенсорного экрана.
Установка
Установка в Arch Linux
oleg@mobile:~:$ yay -S autилиandr
Sync Explicit (1): autилиandr-1.15-1
разрешение зависимостей...
проверка конфликтов...
Пакеты (3) xorg-xdpyinfo-1.3.4-2 xorg-xrandr-1.5.3-1 autилиandr-1.15-1
Будет загружено: 0,08 MiB
Будет установлено: 0,20 MiB
:: Приступить к установке? [Y/n] y
: Получение пакетов...
xorg-xrandr-1.5.3-1-x86_64 37,6 KiB 55,1 KiB/s 00:01 [###############################################] 100%
autилиandr-1.15-1-any 30,5 KiB 280 KiB/s 00:00 [###############################################] 100%
xorg-xdpyinfo-1.3.4-2-x86_64 16,0 KiB 172 KiB/s 00:00 [###############################################] 100%
Total (3/3) 84,1 KiB 81,2 KiB/s 00:01 [###############################################] 100%
(3/3) проверка ключей [###############################################] 100%
(3/3) проверка целостности пакета [###############################################] 100%
(3/3) загрузка файлов пакетов [###############################################] 100%
(3/3) проверка конфликтов файлов [###############################################] 100%
(3/3) проверка доступного места [###############################################] 100%
:: Обработка изменений пакета...
(1/3) установка xorg-xdpyinfo [###############################################] 100%
(2/3) установка xorg-xrandr [###############################################] 100%
(3/3) установка autилиandr [###############################################] 100%
Дополнительные зависимости для 'autилиandr'
bash-completion: auto-completion fили autилиandr in Bash [установлено]
zsh-completions: auto-completion fили autилиandr in ZSH
:: Запуск post-transaction hooks...
(1/3) Reloading system manager configuration...
(2/3) Reloading device manager configuration...
(3/3) Arming ConditionNeedsUpdate...
oleg@mobile:~:$
Установка в Ubuntu
В Ubuntu xrandr
, как правило, не нужно устанавливать отдельно, так как он является частью пакетов, отвечающих за управление X-сервером, и обычно уже включён в систему.
Если же утилита недоступна, то её можно установить с помощью следующей команды:
oleg@mobile:~:$ sudo apt install x11-xserver-utils
Синтаксис
oleg@mobile:~:$ xrandr [параметры]
Параметры
oleg@mobile:~:$--display <display> или -d <display>
--help
-o <orиmal,inverted,left,right,0,1,2,3> или --orientation <ormmal,inverted,left,right,0,1,2,3>
-q или --query
-s <size>/<width>x<height> или --size <size>/<width>x<height>
-r <rate> или --rate <rate> или --refresh <rate>
-v или --version
-x (reflect in x)
-y (reflect in y)
--screen <screen>
--verbose
--current
--dryrun
--nograb
--prop или --properties
--fb <width>x<height>
--fbmm <width>x<height>
--dpi <dpi>/<output>
--output <output>
--auto
--mode <mode>
--preferred
--pos <x>x<y>
--rate <rate> или --refresh <rate>
--reflect normal,x,y,xy
--rotate normal,inverted,left,right
--left-of <output>
--right-of <output>
--above <output>
--below <output>
--same-as <output>
--set <property> <value>
--scale <x>[x<y>]
--scale-from <w>x<h>
--transfилиm <a>,<b>,<c>,<d>,<e>,<f>,<g>,<h>,<i>
--filter nearest,bilinear
--off
--crtc <crtc>
--panning <w>x<h>[+<x>+<y>[/<track:w>x<h>+<x>+<y>[/<bилиder:l>/<t>/<r>/<b>]]]
--gamma <r>[:<g>:<b>]
--brightness <value>
--primary
--noprimary
--newmode <name> <clock MHz>
<hdisp> <hsync-start> <hsync-end> <htotal><vdisp> <vsync-start> <vsync-end> <vtotal> [flags...] Valid flags: +HSync -HSync +VSync -VSync +CSync -CSync CSync Interlace DoubleScan
--rmmode <name>
--addmode <output> <name>
--delmode <output> <name>
--listproviders
--setprovideroutputsource <prov-xid> <source-xid>
--setprovideroffloadsink <prov-xid> <sink-xid>
--listmonitилиs
--listactivemonitилиs
--setmonitили <name> {auto|<w>/<mmw>x<h>/<mmh>+<x>+<y>} {none|<output>,<output>,...}
--delmonitили <name></name></output>
Графические фронтенды
ARandR
Простой визуальный фронтенд для XRandR. Положения мониторов относительно друг друга отображаются графически и могут быть изменены перетаскиванием. https://christian.amsuess.com/tools/arandr/ || arandr
LXRandR
Инструмент для управления разрешением экрана и положением монитора для LXDE. Также работает в Openbox. https://github.com/lxde/lxrandr || GTK 2: lxrandr, GTK 3: lxrandr-gtk3
Конфигурирование xorg.conf
Рассмотрим, что можно удалить из xorg.conf
с RandR точки зрения.
Поскольку драйвер автоматически определяет режимы, некоторые параметры конфигурации в файле xorg.conf зачастую становятся бесполезными. Возможно, стоит удалить:
- HилиizSyncи VertRefreshиз Monitor раздела
- Режимы из Display подраздела в Screen разделе
- ModeLineиз Monitor раздела
Также нет необходимости сохранять статическую конфигурацию с двумя мониторами. Несколько советов по созданию миниатюрного xorg.conf
:
- Удалить двойные секции Device/ Screen/ Monitor, нужна одна
- Удалить MonitилиLayout опции и Screen строки из оставшегося Device раздела
- Удалить ServerLayout раздел(ы)
- Отбросить RightOf/ LeftOf индикацию оставшейся Screen строки в ServerLayout секции
Базовое использование утилиты xrandr
После удаления или обновления файла конфигурации xorg.conf
при запуске сервера некоторые выходы должны быть включены по умолчанию. Их верхние левые углы будут находиться в одной части изображения, но режимы, вероятно, будут разными.
Запуск утилиты без параметров
Все выходы можно настроить через xrandr
. Чтобы увидеть доступные выходы, просто выполните xrandr
:
$ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 4096 x 4096
VGA1 disconnected (nилиmal left inverted right x axis y axis)
LVDS1 connected 1280x800+0+0 inverted X and Y axis (nилиmal left inverted right x axis y axis) 261mm x 163mm
1280x800 59.8*+
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
DVI1 disconnected (nилиmal left inverted right x axis y axis)
TV1 disconnected (nилиmal left inverted right x axis y axis)
Здесь мы видим 4 выхода: VGA1, LVDS1, DVI1, TV1.
К LVDS1 подключена только внутренняя панель, поддерживающая 4 режима по 60 Гц, 1 режим по 56 Гц.
Режим, отмеченный звёздочкой *
, является текущим режимом.
Режим, отмеченный знаком +
является предпочтительным.
Большинство мониторов сообщают драйверу предпочтительный режим. И сервер/драйвер обычно выбирает его по умолчанию.
Соглашения о наименованиях выходных данных
При манипулировании VGA1 выходными свойствами следует использовать:
$ xrandr --output VGA1 <options>
Динамическое добавление/удаление мониторов
В настоящее время нет необходимости перезапускать X при подключении нового монитора. В RandR версии 1.2 можно подключать/отключать мониторы в любое время.
Выполнение следующей команды опросит все выходы и включит их в режиме по умолчанию:
$ xrandr --auto
Можно также можете отключить один выход, используя следующую команду:
$ xrandr --output LVDS1 --off
Это может быть полезно для некоторых некорректно работающих приложений, которые плохо поддерживают несколько выходов.
Кроме того, из-за ограничений CRTC часто требуется отключать один выход перед включением другого, поскольку большинство устройств поддерживают только два выхода одновременно.
Изменение режима
С помощью xrandr
вывода можно изменить LVDS1 режим на 1024x768:
$ xrandr --output LVDS1 --mode 1024x768
Частоту обновления также можно изменять, одновременно или независимо:
$ xrandr --output LVDS1 --mode 1024x768 --rate 75
$ xrandr --output LVDS1 --rate 75
Для возвращения в режим по умолчанию выполняется следующая команда:
$ xrandr --output LVDS1 --auto
Добавление новых режимов
При некоторых обстоятельствах некоторые режимы могут отсутствовать. Например, если монитор не предоставляет корректную информацию EDID. Или если на выходе не было CRTC при запуске, поскольку его использовал другой выход, который в это время был отключён.
Если режим существует, то его можно добавить к одному выходу с помощью следующей команды:
$ xrandr --addmode VGA1 800x600
Если режим не существует, вы можете сначала создать его, передав modeline
:
$ xrandr --newmode <ModeLine>
Изменение яркости
Для регулировки яркости экрана из терминала существуют 2 команды.
Первой командой в терминале снижаем яркость примерно на 50%:
$ xrandr --output eDP-1 --brightness .5
Второй командой увеличиваем яркость примерно до 75%:
$ xrandr --output eDP-1 --brightness .75
Заключение
Как следует из этой статьи использование утилиты Linux xrandr позволяет пользователю настроить дисплеи с учётом своих потребностей