XRandR налаштування режимів роботи з дисплеями (моніторами) у GNU

Оригінал тут

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) 125mm 1024×600 60.0*+ 800×600 60.3 56.2 640×480 59.9 VGA1 роз'єднаний (normal left inverted right x axis y axis)

Можливі назви інтерфейсів:

LVDS1 - екран ноутбука; VGA1 - екран, що підключається через VGA; DVI1 - екран, що підключається через DVI;

Зміна роздільної здатності Найкраще розглянути приклад: 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 9

Тепер залишилося «прив'язати» створений режим до потрібного інтерфейсу (у нашому прикладі до 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 (поворот на Пі радіан)

Збереження налаштувань Для активації необхідних налаштувань під час старту створіть файл

/ вказує на розташування в домашній директорії) та внесіть до нього необхідні рядки команд xrandr.

Стаття частково заснована на матеріалах англомовної документації.