Подробной гайд: Настройка xrandr для HDMI: автозапуск дисплея в Linux (X11, autostart, systemd)

Настройка xrandr для HDMI монитора в Linux. Автозапуск конфигурации дисплея при старте X11. Способы: autostart, xprofile, systemd.

2026.05.11                  


Подробной гайд: Настройка xrandr для HDMI: автозапуск дисплея в Linux (X11, autostart, systemd)Подробной гайд: Настройка xrandr для HDMI: автозапуск дисплея в Linux (X11, autostart, systemd) Вот подробный, пошаговый гайд по настройке xrandr для HDMI-выхода и добавлению команды в автозагрузку. Руководство учитывает современные особенности Linux (X11/Wayland, systemd, XDG Autostart).


Шаг 0. Важное предупреждение про Wayland

xrandr работает только в X11. Если у вас Wayland (GNOME, KDE Plasma, Sway, Hyprland и др. по умолчанию), команда не сработает.

Проверить сессию:

echo $XDG_SESSION_TYPE

Если вывод wayland → используйте настройки монитора в вашем DE или утилиты вроде wlr-randr/kanshi/hyprctl. Далее гайд рассчитан на X11.


Шаг 1. Узнаём точное имя выхода

Имена вроде HDMI-1 могут отличаться в зависимости от драйвера (Intel/AMD/NVIDIA). Возможные варианты: HDMI-1, HDMI-A-0, HDMI1, DP-1 и т.д.

xrandr | grep -i "connected"

Пример вывода:

HDMI-1 connected primary 1920x1080+0+0 ...
eDP-1 connected 1366x768+0+0 ...

Запомните точное имя (в примере HDMI-1). Далее будем использовать его.


Шаг 2. Формируем рабочую команду

Базовый синтаксис:

xrandr --output <ИМЯ> --auto --primary

Примеры полезных опций:

  • --mode 1920x1080 – явное разрешение
  • --rate 60 – частота обновления
  • --pos 0x0 – позиционирование
  • --rotate left – поворот
  • --output eDP-1 --off – отключить встроенный экран

Полный пример:

xrandr --output HDMI-1 --auto --primary --mode 1920x1080 --rate 60

Шаг 3. Тестирование

Выполните команду в терминале вручную:

xrandr --output HDMI-1 --auto --primary

Проверьте результат:

xrandr --query

Если монитор включился и настроился корректно → переходим к автозагрузке.


Шаг 4. Добавление в автозагрузку (3 способа)

Способ A: XDG Autostart (рекомендуется, работает в GNOME, KDE, XFCE, Cinnamon и др.)

1. Создайте файл автозапуска:
   mkdir -p ~/.config/autostart
   nano ~/.config/autostart/xrandr-hdmi.desktop
2. Вставьте содержимое:
   [Desktop Entry]
   Type=Application
   Name=xrandr HDMI-1 setup
   Comment=Configure HDMI monitor on X11 startup
   Exec=/bin/bash -c "sleep 3 && /usr/bin/xrandr --output HDMI-1 --auto --primary"
   Icon=display
   Terminal=false
   X-GNOME-Autostart-enabled=true
   NoDisplay=true
   Hidden=false

sleep 3 нужен, чтобы оконный менеджер успел инициализировать экраны до применения настроек. При необходимости увеличьте до 5. Укажите свой HDMI-1 и опции.

  1. Сохраните (Ctrl+O, Enter, Ctrl+X). При следующем входе в графическую сессию команда выполнится автоматически.

Способ B: ~/.xprofile (для чистого X11 / LightDM / SDDM)

Подходит, если вы используете минимальные WM или хотите гарантировать выполнение до загрузки DE.

nano ~/.xprofile

Добавьте:

export DISPLAY=:0
/usr/bin/xrandr --output HDMI-1 --auto --primary &

Сделайте файл исполняемым (необязательно, но рекомендуется):

chmod +x ~/.xprofile

~/.xprofile выполняется дисплей-менеджером при входе. Не работает в Wayland.


Способ C: systemd user service (продвинутый, надёжный)

1. Создайте юнит:
   mkdir -p ~/.config/systemd/user
   nano ~/.config/systemd/user/xrandr-hdmi.service
2. Содержимое:
   [Unit]
   Description=xrandr HDMI-1 configuration
   After=graphical-session.target
   Requires=graphical-session.target

   [Service]
   Type=oneshot
   Environment=DISPLAY=:0
   ExecStart=/usr/bin/xrandr --output HDMI-1 --auto --primary
   RemainAfterExit=yes

   [Install]
   WantedBy=graphical-session.target
3. Включите и запустите:
   systemctl --user daemon-reload
   systemctl --user enable --now xrandr-hdmi.service

Проверка статуса: systemctl --user status xrandr-hdmi.service

Логи: journalctl --user -u xrandr-hdmi.service -f


Шаг 5. Отладка и типичные проблемы

Симптом Решение
Cannot open display ":0" Вы запускаете команду вне графической сессии (из cron, tty, ssh). В автозагрузке сессии DISPLAY обычно уже выставлен. Если нужен явный: export DISPLAY=:0
Output HDMI-1 not found Имя выхода изменилось. Проверьте xrandr снова. Иногда помогает xrandr --listmonitors
Настройка сбрасывается после блокировки экрана Некоторые DE переписывают конфигурацию при блокировке. Добавьте команду в скрипт разблокировки или используйте xprofile/systemd с WantedBy=graphical-session.target
Команда выполняется, но монитор не включается Попробуйте --preferred вместо --auto, или явно укажите --mode и --rate. Проверьте кабель/порт.
xrandr не работает вообще Вы в Wayland. Используйте wlr-randr, kanshi или настройки DE.

Полезные советы

  1. Не используйте sudo для xrandr в пользовательской сессии. Это ломает права X11 cookie.
  2. Задержка sleep часто необходима. Без неё xrandr может сработать раньше, чем X-сервер зарегистрирует выход.
  3. Несколько мониторов: для сложных схем используйте arandr (GUI) → File → Save As → получите готовый скрипт.
  4. Обновление 2024–2026: в современных дистрибутивах ~/.xprofile постепенно вытесняется ~/.config/autostart/ и systemd --user. Способ A покрывает 95% случаев.