OS Linux

XRandR: Точная настройка мониторов

XRandR: Точная настройка мониторов

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

Просмотр доступных мониторов и режимов работы:

xrandr

После ввода команды выведутся список интерфейсов по которым могут быть подключены мониторы и доступные режимы работы монитора (разрешение и частота смена кадров в герцах).
Пример вывода:

Screen 0: minimum 320 x 200, current 5760 x 1080, maximum 16384 x 16384
DisplayPort-0 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
HDMI-0 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 640mm x 360mm
   1920x1080     60.00*+  50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1920x1080i    60.00    50.00    59.94  
   1280x1024     60.02  
   1360x768      59.80  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       60.00    59.94  
DVI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1280x720      60.00  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08

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

  • LVDS-0 — экран ноутбука;
  • VGA-0 — экран, подключаемый через VGA;
  • DisplayPort-0 — экран, подключаемый через Display Port (DP);
  • DVI-0 — экран, подключаемый через DVI;
  • HDMI-0 — экран, подключаемый через HDMI;

Названия интерфейсов в зависимости от используемой видеокарты могут отличаться. Для работы с выбранным интерфейсом, необходимо запомнить его название.

Изменение разрешения

Лучше всего рассмотреть на примере:

xrandr --output HDMI-0 --mode 1280x1024

Флаг --output предназначен для выбора нужного интерфейса, а в --mode выставляем необходимое разрешение экрана. Обратите внимание, что выбираемые дисплей и разрешение должены быть указаны в выводе команды:

xrandr

Если необходимого разрешения экрана нет, то можно добавить его вручную. Это позволяет настроить монитор на необходимое разрешение, когда оно отсутствует в списке (например, если при подключении FullHD монитора в выборе настройки экрана доступно лишь намного меньшее разрешение). Эта проблема связана с тем, что некоторые контроллеры дисплеев не считают нужным передавать информацию о своём разрешении при подключении, в особенности через VGA.

Создание нового режима работы

Если режим работы монитора уже существует, но не связан с нужным интерфейсом, то можно добавить режим таким образом:

xrandr --addmode DVI-0 1920x1080

— добавляем режим работы с разрешением 1920x1080 и 60Гц частотой для монитора, подключённого по DVI-0.
Если режима ещё не существует, то сначала вызываем утилиту CVT (Coordinated Video Timing) с необходимым разрешением и частотой кадров в качестве параметров (для примера добавим режим 1680x1050 при 60Гц):

cvt 1680 1050 60

Ответ CVT в консоли с выбранными параметрами примерно такой:

# 1680x1050 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1680x1050_60.00" 118.25 1680 1696 1856 2112 1050 1053 1058 1084 -hsync +vsync

Копируем всё, что после Modeline и подставляем в конец строки при вызове xrandr с флагом --newmode для создания нового режима:

xrandr --newmode "1680x1050_60.00" 118.25 1680 1696 1856 2112 1050 1053 1058 1084 -hsync +vsync

И привязываем только что созданный режим к нужному интерфейсу (в нашем примере к DVI-0):

xrandr --addmode DVI-0 1680x1050_60.00

Теперь доступно для выбора необходимое разрешение для монитора:

xrandr --output VGA1 --mode 1680x1050_60.00

Отключение дисплея

Отключение определенного дисплея производится с помощью флага --off:

xrandr --output DVI-0 --off

Остальные включенные мониторы (HDMI-0 и DisplayPort-0) продолжают работать и HDMI-0 автоматически становится главным. На нем слева отображаются ярлычки и внизу панель.

Расположение мониторов относительно друг-друга

xrandr --output HDMI-0 --right-of DisplayPort-0

Монитор, подключённый по HDMI-0 будет располагаться "справа" от монитора подключенного через DisplayPort-0.

Аналогично используется опция --left-of

Так же, можно устанавливать мониторы по вертикали ключами --above и --below

xrandr --output HDMI-0 --above DisplayPort-0

Главным монитором является верхний (HDMI-0) и на нем слева находятся ярлыки и внизу панель Управления.

Определение монитора главным

xrandr --output HDMI-0 --primary

Ключ --primary делает монитор HDMI-0 - главным. Монитор может считаться главным, но все ярлыки и панель управления находятся на другом мониторе.

Увеличение разрешения экрана

Чтобы сделать виртуальный экран большего разрешения, чем физический (в таком режиме, чтобы увидеть всё изображение необходимо будет передвигать курсор за границы) применяем команду:

xrandr --output DVI-0 --mode 1680x1050 --fb 1920x1080 --panning 1920x1080

После выполнения команды у монитора DVI-0 станет виртуальное разрешение 1920x1080 при 1680x1050 физическом.

Поворот экрана

Для поворота экрана необходимо использовать нужные ключи к определенному интерфейсу:

--rotate normal

--rotate left

--rotate right

--rotate inverted (поворот на 180°)

Сохранение настроек по умолчанию

Для использования необходимых настроек при старте Linux, создайте файл .xprofile в домашней директории и внесите в него необходимые строки команд xrandr.

Навигация

Nmap - сетевой сканер инфраструктуры

« Предыдущая статья

FFmpeg - конвертация видеофайлов

Следующая статья »