XRandR — расширение X сервера, позволяющее производить настройки режимов работы мониторов.
Например, можно изменить разрешение, вывести изображение на внешний монитор, повернуть изображение
и тому подобное. Утилита часто полезна для настройки корректного разрешения при подключении к внешнему монитору или телевизору.
Вывод доступных мониторов и режимов
Введя в терминале команду
xrandr
мы увидим список интерфейсов по которым могут быть подключены мониторы и доступные режимы работы монитора
(разрешение и частота смена кадров в герцах).
Пример вывода:
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 223mm x 125mm
1024x600 60.0*+
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
Возможные названия интерфейсов:
LVDS1 — экран ноутбука;
VGA-0 — экран, подключаемый через VGA;
DVI1 — экран, подключаемый через DVI;
Названия интерфейсов могут отличаться в зависимости от используемой видеокарты. Для последующей работы с конкретным
интерфейсом, необходимо запомнить его название (например, VGA1 если мы работам на видео от Intel и подключаем монитор по VGA, который и хотим настроить через XRandR).
Изменение разрешения
Лучше всего рассмотреть пример:
xrandr --output LVDS1 --mode 800x600
Опция --output предназначена для указания на нужный интерфейс, а --mode собственно на выбираемый режим работы.
Обратите внимание, что выбираемый режим должен быть указан в выводе команды xrandr
Если нужный вам режим не прописан, то необходимо добавить его вручную. Это поможет настроить монитор на нужное разрешение, если в списке разрешений отсутствует правильное разрешение (например, если при подключении 1080p монитора
в программах настройки экрана доступно лишь намного меньшее разрешение).
Создание нового режима
Если режим уже существует (смотреть перввую часть статьи), но не связан с нужным интерфейсом, то можно добавить режим
таким образом:
xrandr --addmode VGA1 1024x600
— добавляем режим с разрешением 1024x600 и 60 Гц частотой для монитора, подключённого по VGA1.
Если режима ещё не существует, то сначала вызываем утилиту CVT (Coordinated Video Timing) с необходимым разрешением и
частотой кадров в качестве параметров (в качестве примера добавим режим 1600x900 при 60Гц):
cvt 1600 900 60
Вывод утилиты cvt с нашими параметрами таков:
# 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
Далее мы скопируем всё, что после 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 1024x600 --fb 1280x720 --panning 1280x720
После этого у вас будет виртуальное разрешение 1280x720 при 1024x600 физическом.
Поворот
Используйте следующие опции применительно к нужному интерфейсу:
--rotate normal
--rotate left
--rotate right
--rotate inverted (поворот на Пи радиан)
Сохранение настроек
Для активации необходимых настроек при старте, создайте файл ~/.xprofile (~/ указывает на расположение в домашней директории) и внесите в него необходимые строки команд xrandr.
или создаем баш скрипт в устанавливаем его в автозагрузку
#!/bin/bash
# ubuntu разрешение монитора
# 1. Открываем консоль. Узнаем список видеовыходов и поддерживаемых
# разрешений для каждого выхода командой
# Код:
# xrandr
#VGA-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
# 1360x768 59.8
# 1152x864 60.0
# 1024x768 60.0
# 800x600 60.3
# 640x480 59.9
#DVI-0 disconnected (normal left inverted right x axis y axis)
#S-video disconnected (normal left inverted right x axis y axis)
# 2. Создаем Modeline для нужного режима:
cvt 1024 768 85
# Первые два числа — разрешение, третье — частота обновления экрана.
# Команда выдаст примерно следующее:
# Код:# 1024x768 84.89 Hz (CVT 0.79M3) hsync: 68.68 kHz; pclk: 94.50 MHz
# Modeline "1024x768_85.00" 94.50 1024 1096 1200 1376 768 771 775 809 -hsync +vsync
# 3. Создаем режим:
# Код:
xrandr --newmode "1024x768_85.00" 94.50 1024 1096 1200 1376 768 771 775 809 -hsync +vsync
# (после --newmode вставляем вывод команды cvt без слова Modeline).
# 4. Добавляем новый режим к нужному выходу:
# Код:
xrandr --addmode VGA-0 "1024x768_85.00"
# 5. Вводим xrandr и видим, что режим добавился. Теперь можно запустить
# стандартную утилиту (Система > Параметры > Экран) и поставить всё, что
# нужно. Из консоли поменять разрешение монитора можно так:
# Код:
xrandr --output VGA-0 --mode "1024x768_85.00"
На этом пока все !