Буває, відкриваєте IDE — хочете англійську, а в браузері — українську. Було б класно, якби система сама пам’ятала розкладку для кожного вікна чи програми, правда ж? Сьогодні покажу, як увімкнути автоматичне перемикання клавіатурних розкладок у GNOME та KDE: і per-window (на рівні вікон), і per-application (на рівні застосунків). Обіцяю прості інструкції і трішки корисних трюків 🙂

Що означає per-window і per-application

- Per-window: кожне вікно має власну активну розкладку. Перемкнули розкладку у вікні A — у вікні B вона не зміниться.
- Per-application: усі вікна одного застосунку ділять одну розкладку між собою. Наприклад, обидва вікна браузера матимуть однакову активну розкладку.

Обидва підходи корисні для налаштування робочого столу: перший — коли часто стрибаєте між різними задачами, другий — коли хочете узгодженість у межах однієї програми.

GNOME: увімкнення per-window

Через термінал (швидко)

GNOME має вбудовану підтримку per-window. Все вмикається однією командою у термінал Linux:

# Увімкнути per-window
gsettings set org.gnome.desktop.input-sources per-window true

# Перевірити значення
gsettings get org.gnome.desktop.input-sources per-window

Зазвичай перезапускати сесію не потрібно, але якщо ефект не з’явився, у Xorg можна натиснути Alt+F2, ввести r і Enter (перезапуск GNOME Shell). У Wayland для повного застосування налаштування інколи потрібний вихід/вхід у сесію.

Через GUI (dconf Editor)

Якщо ви любите GUI Linux і без команд:

  1. Встановіть редактор налаштувань dconf (якщо його немає):
# Debian/Ubuntu
sudo apt install dconf-editor

# Fedora
sudo dnf install dconf-editor

# Arch
sudo pacman -S dconf-editor
  1. Відкрийте dconf Editor і перейдіть: org → gnome → desktop → input-sources.
  2. Увімкніть перемикач per-window.

GNOME: per-application (через розширення)

У чистому GNOME є глобальний режим і per-window. Режиму “per-application” немає «з коробки», але його додають розширення GNOME Shell, наприклад «Per Application Keyboard Layout». Загальна схема така:

  1. Встановіть менеджер розширень (зручно керувати):
# Debian/Ubuntu (GNOME 43+)
sudo apt install gnome-extensions-app gnome-browser-connector

# Fedora Workstation
sudo dnf install gnome-extensions-app gnome-browser-connector

# Arch (GNOME Extra зазвичай містить інструменти)
sudo pacman -S gnome-browser-connector
  1. Відкрийте сайт розширень: extensions.gnome.org.
  2. Знайдіть «Per Application Keyboard Layout» (або подібне) і увімкніть.
  3. У налаштуваннях розширення виберіть політику «per application» (назви можуть відрізнятися).

Зверніть увагу: підтримка може залежати від версії GNOME і Wayland/Xorg. Якщо розширення працює нестабільно у Wayland, спробуйте Xorg-сесію або інше розширення з аналогічною функцією.

KDE Plasma: per-window і per-application з коробки

Через GUI (простий шлях)

  1. Відкрийте Система → Налаштування → Пристрої вводу → Клавіатура → Розкладки.
  2. Увімкніть «Надати можливість вибору кількох розкладок» (якщо ще не ввімкнено).
  3. Знайдіть «Політика перемикання» (Switching Policy) і виберіть один із варіантів:
    • Global — одна розкладка для всієї сесії;
    • Desktop — окремо для кожного віртуального стільниці;
    • Application — спільна для всіх вікон певної програми;
    • Window — окремо для кожного вікна.
  4. Застосуйте зміни.

Через термінал (точні налаштування)

У KDE ці параметри зберігаються у файлі ~/.config/kxkbrc. Можна змінити їх командою kwriteconfig5:

# Per-window
kwriteconfig5 --file kxkbrc --group Layout --key SwitchMode "Window"

# Per-application
kwriteconfig5 --file kxkbrc --group Layout --key SwitchMode "Application"

# Перезапустіть середовище клавіатури (або перелогіньтесь)
plasmashell --replace & disown  # обережно: перезапускає Plasma

Якщо не хочете перезапускати Plasma, просто вийдіть із сесії та зайдіть знову — налаштування точно застосується.

Альтернативні способи (X11 і cross-DE)

На X11 можна використати окремі демони, які реалізують розкладку «на вікно», наприклад kbdd. Це доречно, якщо ви не на GNOME/KDE або хочете гнучко скриптувати.

# Debian/Ubuntu
sudo apt install kbdd
kbdd &  # запустити у фоні

# Arch
sudo pacman -S kbdd
kbdd &

Такі рішення підходять для X11; у Wayland вони часто не працюють або працюють частково. Пам’ятайте про це, підбираючи трюки Linux під свою сесію.

GUI-спосіб: індикатори і гарячі клавіші

Не забудьте увімкнути індикатор розкладки в системній панелі: у GNOME його видно праворуч на панелі, у KDE — у системній шторці/панелі. Корисно налаштувати зручні шорткати перемикання. Для зручності та чистоти робочого процесу вкажіть одну комбінацію на зміну розкладки (наприклад, Super+Space) і приберіть дублікати.

FAQ

Перемикання per-window в GNOME не працює. Що робити?

Переконайтеся, що ключ per-window справді true: gsettings get org.gnome.desktop.input-sources per-window. Якщо ви на Wayland, вийдіть із сесії та зайдіть знову. На Xorg можна перезапустити GNOME Shell (Alt+F2, потім r).

У KDE політика не зберігається після перезапуску

Перевірте, чи не перезаписує файл ~/.config/kxkbrc якийсь скрипт автозапуску. Також відкрийте Налаштування → Клавіатура → Розкладки і підтвердіть, що опція «Надати можливість вибору кількох розкладок» активна.

Чи впливає Wayland/Xorg?

Так. GNOME’s per-window працює і в Wayland, і в Xorg, але розширення «per-application» можуть поводитися по-різному. У KDE все добре і в Wayland, і в Xorg.

Як швидко повернути глобальний режим?

GNOME: gsettings set org.gnome.desktop.input-sources per-window false.
KDE: kwriteconfig5 --file kxkbrc --group Layout --key SwitchMode Global, потім перелогіньтесь.

Індикатор мови не показує зміни для кожного вікна

У GNOME індикатор показує поточну активну розкладку для фокуса. Якщо в іншому вікні інша розкладка — це очікувано. У KDE можна увімкнути показ прапорів/тексту в індикаторі, щоб було наочніше.

Чи можна зробити винятки для конкретних програм?

У KDE — частково, завдяки політиці «Application». У GNOME точні винятки задають розширенням (залежить від функцій конкретного розширення). Альтернатива — скрипти з відстеженням активного вікна (X11), але це вже для ентузіастів.

Порада від Kernelka

Тримайте список розкладок коротким (2–3) — так перемикання швидше і менше плутанини. Для програмування зручно мати «per-application»: IDE — англійська, месенджер — українська. А для активного багатозадачності краще «per-window». І не бійтеся експериментувати — налаштування робочого столу у Linux створені саме для цього 😉

Підсумок

  • GNOME: per-window — вбудовано, вмикається через gsettings або dconf Editor.
  • GNOME per-application: через розширення GNOME Shell (залежить від версії та Wayland/Xorg).
  • KDE: глобально, per-desktop, per-application і per-window — доступні «з коробки» в Налаштуваннях.
  • CLI для точних змін: gsettings (GNOME) і kwriteconfig5 (KDE).
  • X11-альтернативи: kbdd та інші демони, але перевіряйте сумісність з вашою сесією.
  • Використовуйте індикатор і зручні шорткати, тримайте розкладок небагато.

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