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