Коли ви під’єднуєте ноут до різних док-станцій або часто перемикаєтеся між офісом і домом, перескладати монітори щоразу — це біль. Я покажу, як один раз зберегти профілі й потім автоматично відновлювати їх у X11 через xrandr+autorandr, а у Wayland/Sway — через вбудовану конфігурацію або утиліту kanshi. Підійде і для початківців у термінал Linux, і для тих, хто любить GUI Linux 🖥️.

Головний How‑to: X11 з xrandr та autorandr

Зв’язка xrandr + autorandr — класика для надійного збереження та відновлення налаштувань. xrandr налаштовує екрани, autorandr зберігає профілі за EDID і підбирає потрібний профіль при зміні підключень.

Встановлення

Встановіть потрібні інструменти (оберіть свою систему):

# Debian/Ubuntu
sudo apt update && sudo apt install x11-xserver-utils autorandr

# Arch
sudo pacman -S xorg-xrandr autorandr

# Fedora
sudo dnf install xrandr autorandr

Налаштування та збереження профілю

Спочатку подивіться, як називаються ваші відеовиходи й які режими доступні:

xrandr

Приклад налаштування: зовнішній HDMI як головний ліворуч, вбудований eDP праворуч:

xrandr \
  --output HDMI-1 --primary --mode 1920x1080 --rate 60 --pos 0x0 \
  --output eDP-1  --mode 1920x1080 --pos 1920x0 --right-of HDMI-1

Коли розкладка вас влаштовує, збережіть профіль під осмисленою назвою (наприклад, "office"):

autorandr --save office

Потім підключіть інший комплект моніторів (або залиште лише вбудований) і збережіть ще один профіль, наприклад "home" або "solo":

# лише вбудований екран
xrandr --output eDP-1 --primary --mode 1920x1080 --rate 60 --pos 0x0 \
       --output HDMI-1 --off

autorandr --save solo

Перевірте перемикання:

autorandr --list            # побачити профілі
autorandr --change          # підібрати профіль під поточні підключення
autorandr --load office     # примусово завантажити конкретний

Автовідновлення профілю на вході в сесію

Найпростіше — запустити autorandr при старті графічної сесії. Варіант через systemd user:

mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/autorandr.service <<'EOF'
[Unit]
Description=Apply best monitor profile via autorandr
After=graphical-session.target

[Service]
Type=oneshot
ExecStart=/usr/bin/autorandr --change --default default

[Install]
WantedBy=graphical-session.target
EOF

systemctl --user daemon-reload
systemctl --user enable --now autorandr.service

Тепер при вході у сесію профіль підбиратиметься автоматично. Для гарячого оновлення під час підключення/відключення кабелів можна повісити гарячу клавішу у вашому WM/DE на команду:

autorandr --change --default default

Порада: створіть короткий допоміжний скрипт (це вже трохи про bash скрипти), щоб вручну швидко перемикатися:

mkdir -p ~/bin
cat > ~/bin/monitor-profile <<'EOF'
#!/usr/bin/env bash
set -e
# спроба автоматично підібрати; інакше fallback
autorandr --change --default default || autorandr office || autorandr solo
EOF
chmod +x ~/bin/monitor-profile

Wayland/Sway: профілі без болю через конфіг або kanshi

У Sway (Wayland) xrandr не працює — замість нього є власні команди та зручні профілі через kanshi. Це дуже стабільний спосіб для налаштування робочого столу з кількома екранами.

Дізнатися назви виходів

swaymsg -t get_outputs

Статичний профіль у ~/.config/sway/config

Додайте або змініть секції output у конфігу:

# приклад: зовнішній HDMI ліворуч, вбудований eDP праворуч
output HDMI-A-1 mode 1920x1080 position 0 0 scale 1
output eDP-1     mode 1920x1080 position 1920 0 scale 1

# перезавантажити конфіг без виходу з сесії:
swaymsg reload

Профілі з kanshi (рекомендовано)

kanshi автоматично вмикає профілі за наявними моніторами (схоже на autorandr, але для Wayland).

# Debian/Ubuntu
sudo apt install kanshi
# Arch
sudo pacman -S kanshi
# Fedora
sudo dnf install kanshi

Створіть конфіг:

mkdir -p ~/.config/kanshi
cat > ~/.config/kanshi/config <<'EOF'
profile docked {
  output eDP-1 disable
  output DP-1 mode 2560x1440 position 0,0 scale 1
  output HDMI-A-1 mode 1920x1080 position 2560,0 scale 1
}

profile solo {
  output eDP-1 enable mode 1920x1080 position 0,0 scale 1
}
EOF

Увімкніть автозапуск як user‑сервіс:

systemctl --user enable --now kanshi
# дивитися логи, якщо щось не так
journalctl --user -u kanshi -f

Альтернативні способи

  • ARandR (X11, GUI) — намалювали схему, зберегли скрипт, інтегрували з autorandr.
  • GNOME/KDE — системні налаштування екранів працюють добре, але профілі залежать від DE; для крос‑сесійної стабільності X11 зручніше мати autorandr.
  • Dock/USB‑C з MST — імена виходів типу DP-1-1/DP-1-2; профілі все одно працюють, головне — зберігати їх з підключеними моніторами.

GUI-спосіб (коли не хочеться у термінал)

Іноді зручніше на початку налаштувати все мишкою, а вже потім зберегти профіль.

  • X11: встановіть ARandR, розташуйте монітори, збережіть скрипт і виконайте autorandr --save <ім'я> після застосування.
  • Wayland/Sway: використайте wdisplays (де доступно) для візуального налаштування, а потім опишіть стабільний профіль у kanshi.
# ARandR (X11)
sudo apt install arandr    # або pacman -S arandr / dnf install arandr

# wdisplays (Wayland, де доступно)
sudo apt install wdisplays # у деяких дистрибутивах може бути у Flatpak

Це все теж частина GUI Linux, і воно добре комбінується з автоматизацією.

FAQ

autorandr каже "No suitable configuration found" — що робити?

Переконайтеся, що профіль збережено з підключеними моніторами. Подивіться, що бачить система:

xrandr
autorandr --list
autorandr --detected

Як базовий варіант додайте профіль default або повісьте гарячу клавішу на autorandr --change --default default.

Підключаю через док, і назви виходів інші

autorandr прив’язується до EDID моніторів, тож зазвичай це не проблема. Збережіть профіль саме у тому середовищі (з доком), де ви ним користуватиметеся. Якщо EDID "стрибає" (рідко, але буває), додайте ручне перемикання гарячою клавішею.

У Sway профіль не застосовується

Перевірте, чи запущено kanshi та чи валідний конфіг:

systemctl --user status kanshi
journalctl --user -u kanshi -b

Також переконайтеся у правильних назвах виходів через swaymsg -t get_outputs.

Різний DPI/масштаб на моніторах

У X11 можна задати загальний DPI або масштаб через WM/DE; у Sway використовуйте scale для кожного монітора окремо (див. приклад вище). Це помітно покращує читабельність тексту.

NVIDIA пропрієтарний драйвер і xrandr

Працює, але інколи вередливий. Переконайтеся, що вимкнено старі інструменти складання (композитори), а налаштування робіть після завантаження сесії. Якщо дуже боляче, розгляньте Wayland/Sway+kanshi або користуйтеся інструментом DE для дисплеїв.

Порада від Kernelka ✨

Називайте профілі коротко і зрозуміло: office, home, solo. Тримайте один профіль default як запасний. І не соромтеся комбінувати автоматизацію та ручне переключення — так ви отримаєте максимум стабільності без зайвих нервів.

Підсумок

  • X11: налаштовуємо через xrandr, зберігаємо профілі autorandr, запускаємо на старті сесії.
  • Wayland/Sway: або статичні блоки output у конфігу, або динамічні профілі через kanshi.
  • Для зручності: ARandR та wdisplays дають швидкий GUI‑старт.
  • Гаряча клавіша на autorandr --change або невеликий скрипт — ваш план Б.
  • Так ви надійно автоматизуєте налаштування робочого столу під будь‑які монітори 💾.

Сподіваюся, тепер ваші монітори завжди на своїх місцях, а ви економите час і нерви. Якщо маєте свої трюки Linux — поділіться у коментарях!