Как настроить два монитора с помощью XRandR в Linux

Содержание
- Найти поддерживаемые разрешения дисплеев
- Как читать вывод xrandr
- Базовые команды XRandR для размещения и зеркалирования
- Добавление нового режима (modeline)
- Сохранение конфигурации навсегда
- GUI: ARandR и средства окружений рабочего стола
- Советы по отладке и распространённые ошибки
- Когда XRandR не помогает и альтернативы
- Методология быстрого устранения проблем
- Чек-листы для пользователя и администратора
- Краткий глоссарий
Найти поддерживаемые разрешения дисплеев
Сначала посмотрите, какие режимы (modes) доступны для подключённых дисплеев:
xrandr -q
В выводе вы увидите список выходов (например HDMI-A-1, DP-1, VGA-1) и для каждого — таблицу режимов (разрешение × частота). Звёздочка (*) означает выбранный в настоящий момент режим. Знак плюс (+) указывает режим, который XRandR считает оптимальным.
Важно: префикс типа кабеля (HDMI, DP, VGA, DVI) в имени выхода помогает однозначно идентифицировать подключение.
Как читать вывод xrandr
- Screen 0 — виртуальное «рабочее пространство», его размер равен сумме областей всех активных мониторов и их положений.
- Выходы перечислены с текущим состоянием: connected или disconnected.
- Под каждым выходом перечислены поддерживаемые разрешения и частоты.
Пример: если у HDMI-A-1 разрешение 1920×1080 и рядом стоит DP-1 с тем же разрешением, то Screen 0 может иметь ширину 3840×1080 при горизонтальном расширении.
Базовые команды XRandR для размещения и зеркалирования
Ниже — корректные примеры команд. Обратите внимание на пробелы между опциями — это важно.
- Расширить два монитора горизонтально (DP-0 слева от DP-1):
xrandr --auto --output DP-0 --mode 1920x1080 --left-of DP-1
xrandr --auto --output DP-1 --mode 1920x1080Расширить вертикально: замените –left-of на –above или –below.
Зеркалирование (DP-1 зеркалит DP-0):
xrandr --auto --output DP-1 --same-as DP-0- Установить частоту обновления (rate):
xrandr --auto --output DP-0 --mode 1920x1080 --rate 60- Выключить монитор:
xrandr --output DP-1 --off- Включить монитор и задать режим:
xrandr --auto --output DP-1 --mode 1920x1080Важно: XRandR не может установить режим или частоту, которые не объявлены в таблице EDID дисплея или не были созданы вами через newmode/addmode.
Добавление нового режима (modeline)
Если нужного разрешения или частоты нет в выводе xrandr, создайте его через cvt или gtf и добавьте в XRandR:
# создаём модель для 1920x1080 при 75 Hz
cvt 1920 1080 75
# cvt выведет строку типа:
# Modeline "1920x1080_75.00" 220.75 1920 2056 2264 2608 1080 1083 1089 1120 -hsync +vsync
# добавляем новый режим в X
xrandr --newmode "1920x1080_75.00" 220.75 1920 2056 2264 2608 1080 1083 1089 1120 -hsync +vsync
# связываем режим с выходом DP-0
xrandr --addmode DP-0 "1920x1080_75.00"
# применяем режим
xrandr --output DP-0 --mode "1920x1080_75.00"Примечание: используйте cvt для стандартных режимов; при редких EDID-ограничениях экспериментируйте осторожно — некорректные modeline могут приводить к нестабильной картинке.
Сохранение конфигурации навсегда
Если вы настроили мониторы вручную, эти настройки не сохранятся после перезагрузки по умолчанию. Ниже — несколько надёжных способов автоприменения при старте с примерами.
Важно: выбирайте один метод, иначе несколько автозапусков могут конфликтовать.
Скрипт в домашней папке
Создайте ~/monitorsetup.sh и сделайте исполняемым:
#!/bin/bash
xrandr --auto --output DP-0 --mode 1920x1080 --left-of DP-1
xrandr --auto --output DP-1 --mode 1920x1080chmod a+x ~/monitorsetup.shЗатем добавьте вызов этого скрипта в автозагрузку вашего окружения (GNOME: Startup Applications, KDE: Autostart, XFCE: Session and Startup), либо вызовите скрипт из ~/.xprofile или ~/.xinitrc.
Файл ~/.xprofile или ~/.xinitrc
Если вы входите в сессию через X (не Wayland), добавьте вызов скрипта в ~/.xprofile:
# в конце ~/.xprofile
~/monitorsetup.sh &или поместите команды напрямую в ~/.xinitrc перед exec …
systemd user unit (удобно и надёжно)
Создайте сервис:
~/.config/systemd/user/monitorsetup.serviceСодержимое:
[Unit]
Description=Apply XRandR monitor layout
After=graphical-session.target
[Service]
Type=oneshot
ExecStart=/home/USERNAME/monitorsetup.sh
[Install]
WantedBy=default.targetЗамените USERNAME на своё имя. Затем включите и запустите:
systemctl --user daemon-reload
systemctl --user enable --now monitorsetup.serviceЭтот способ удобен, если вы хотите, чтобы конфигурация применялась после инициализации графической сессии.
Автозапуск через .desktop
Создайте файл ~/.config/autostart/monitorsetup.desktop:
[Desktop Entry]
Type=Application
Name=Monitorsetup
Exec=/home/USERNAME/monitorsetup.sh
X-GNOME-Autostart-enabled=trueЭтот метод работает во многих окружениях рабочего стола.
GUI: ARandR и средства окружений рабочего стола
Большинство окружений (GNOME, KDE, XFCE) имеют встроенные средства настройки дисплеев. Если их нет или вы используете минималистичный менеджер окон, попробуйте ARandR — простую графическую оболочку для XRandR.
- Установите пакет arandr через менеджер пакетов вашей дистрибуции.
- Запустите arandr, расположите мониторы и сохраните конфигурацию: меню -> Save As -> shell script.

ARandR генерирует корректные xrandr-команды и позволяет экспортировать shell-скрипт для автозапуска.
Советы по отладке и распространённые ошибки
- «Requested mode not supported» — режим не поддерживается дисплеем. Проверьте вывод xrandr -q или создайте модель через cvt/gtf.
- Проблемы с EDID — некоторые мониторы или док-станции передают некорректный EDID. Попробуйте использовать другой кабель или другой порт, обновите прошивку монитора/дока.
- Окружение сбрасывает настройки — некоторые DE при запуске перезаписывают конфигурацию. В этом случае используйте systemd user unit с задержкой или вызывайте скрипт после загрузки сессии.
- Несовместимость частот — вы не сможете поднять частоту выше, чем поддерживает самый медленный монитор, если DE/композитор ограничивает общую частоту.
Важно: если вы используете ноутбук с гибридной графикой (NVIDIA + Intel), иногда настройки XRandR могут конфликтовать с драйверами (особенно проприетарной NVIDIA). В таких случаях изучите документацию драйвера или рассмотрите использование nvidia-settings.
Когда XRandR не помогает и альтернативы
- Wayland: XRandR работает только под X11. На Wayland настройка дисплеев зависит от compositor’а (GNOME Shell, KDE Plasma, Sway). Для Sway используется swaymsg/swayconfig; для GNOME — настройки дисплея в Shell.
- Проприетарные драйверы: иногда лучше использовать утилиты производителя (nvidia-settings) для сложных конфигураций.
Методология быстрого устранения проблем
- Запустить xrandr -q и записать имена выходов и доступные режимы.
- Попробовать применить желаемый режим вручную через xrandr.
- Если режим недоступен — создать modeline через cvt и добавить его.
- Если команды работают вручную, сохранить их в скрипт и настроить автозапуск.
- Если поведение сбрасывается — проверить автозапуск DE и конфликтующие сервисы.
- В крайнем случае проверить драйверы и EDID (поменять кабель/порт).
Чек-листы
Чек-лист для обычного пользователя:
- Выполнить xrandr -q и зафиксировать имена выходов.
- Проверить доступные режимы и выбрать подходящие.
- Применить xrandr-команды вручную и убедиться в работе.
- Сохранить команды в ~/monitorsetup.sh и сделать исполняемым.
- Добавить скрипт в автозагрузку через DE или systemd user unit.
Чек-лист для администратора/инженера поддержки:
- Проверить вывод xrandr -q и EDID через dmesg или /var/log/Xorg.0.log.
- При отсутствии режима — сгенерировать modeline через cvt.
- Проверить конфликтующие автозапуски в DE и systemd.
- Тестировать на другом кабеле/порту и обновить прошивки при необходимости.
- Рассмотреть использование nvidia-settings или Wayland-средств при специфичных драйверах.
Когда и зачем переходить на Wayland
Wayland — современная альтернатива X11. У неё иной подход к управлению выводами: compositor определяет политики. При успешной миграции многие проблемы с XRandR исчезают, но перенос может требовать адаптации: новые инструменты, разные конфигурационные файлы и особенности драйверов.
Совет: тестируйте Wayland в отдельной сессии перед окончательным переходом.
Decision flowchart
flowchart TD
A[Начать: проблема с дисплеем?] --> B{xто у вас: X11 или Wayland?}
B -->|X11| C[xrandr -q]
B -->|Wayland| D[Использовать compositor/DE средства]
C --> E{Есть нужный режим?}
E -->|Да| F[Применить xrandr и сохранить скрипт]
E -->|Нет| G[Создать modeline через cvt и добавить через xrandr --newmode]
G --> F
F --> H[Настроить автозапуск: ~/.xprofile или systemd user]
H --> I[Проверить при перезагрузке]Короткий глоссарий
- XRandR — утилита для динамической настройки экранов в X11.
- Mode (режим) — комбинация разрешения и других параметров (частота и пр.).
- EDID — данные, которые монитор сообщает системе о своих возможностях.
- Modeline — строка с характеристиками видеорежима, создаваемая cvt/gtf.
Заключение
XRandR остаётся мощным и гибким инструментом для настройки нескольких мониторов под X11. Правильное чтение вывода xrandr, умение создавать modeline при необходимости и надёжное сохранение конфигурации (скрипты, systemd, .desktop) позволят вам контролировать рабочее пространство без привязки к DE. Если вы используете Wayland или проприетарные драйверы, изучите соответствующие средства управления дисплеями в целевой среде.
Важно: тестируйте изменения по шагам и сохраняйте рабочие скрипты, чтобы быстро возвращаться к рабочей конфигурации.
Image credit: Minh Phuc via Pexels; все скриншоты — автор
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента