В основному офіційному образі Ubuntu використовується середовище робочого столу GNOME, і тут з підтримкою попередніх способів перемикання розкладки все досить не просто. За замовчуванням для перемикання розкладки клавіатури використовуються сполучення клавіш Super+Space та Shift+Super+Space. Перше перемикає розкладку на наступну, а друге на попередню, як в Windows.
Але для користувачів які звикли використовувати для цього Alt+Shift та мають багато розкладок це може бути не дуже зручно. В цій статті ми розглянемо як налаштувати перемикання розкладки в Ubuntu так щоб можна було використовувати Alt+Shift і це працювало так як і раніше.
Зміст
Як це працює за замовчуванням?
Давайте спочатку розглянемо як це все працює в GNOME за замовчуванням. Швидке натискання Shift+Space дозволяє перемкнутись між двома останніми розкладками. Якщо ви затиснете Alt та натиснете Shift кілька раз, то на екрані з'явиться список доступних розкладок і ви зможете вибрати ту яку треба.

Сполучення клавіш Shift+Super+Space завжди перемикає на попередню розкладку без привязки до останніх використаних. В Windows перемикання розкладок працює приблизно так само, там основний акцент робиться на те, що користувач буде вибирати розкладку в графічному інтерфейсі.
Але якщо ви маєте більше двох розкладок і хочете між ними швидко перемикатись, як це було з Alt+Shift, то це стає досить складно. Неможливо постійно пам'ятати яка розкладка була раніше і якщо ви перемикаєтесь швидко без очікування поки відкриється графічний інтерфейс, то складається враження що розкладка вибирається випадково.
Розробники GNOME вирішили реалізувати перемикання таким чином ще в 2016, в цій дискусії. Але тоді це мало кого турбувало, бо раніше можна було увімкнути використання Alt+Shift в Gnome Tweak Tool і все залишилось як раніше. Та нещодавно ситуація змінилась, тому що після переходу на Wayland метод перемикання розкладки який можна було увімкнути в Gnome Tweak Tool перестав працювати. Або якщо і працював то не корректно.
Як перемикати розкладку по Alt+Shift в Ubuntu
Давайте тепер розглянемо як таки налаштувати це все в Xorg та Wayland так щоб все працювало.
1. Дві розкладки в Wayland
Якщо ви маєте тільки дві розкладки, то все досить просто. Ви можете перепризначити Alt+Shift замість стандартної комбінації Super+Space. Ви завжди будете перемикатись між двома розкладками, а оскільки їх тільки дві, ніяких незручностей не буде. І все ще можна буде бачити панель вибору розкладки якщо затиснути Alt. Але це не налаштовується в графічному інтерфейсі, тому доведеться скористатись командою в терміналі:
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Shift>Alt_L']"

2. Три або більше розкладок в Wayland
Якщо ж розкладок більше, то можна налаштувати використання Alt+Shift замість Shift+Super+Space. Тоді ви зможете перемикати всі розкладки по черзі. А Super+Space все ще може використовуватись для того щоб перемикатись між останніми двома. Щоб це налаштувати виконайте команду:
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Alt>Shift_L']"
Єдиний мінус цього підходу в тому що розкладки будуть перемикатись в зворотному напрямку відповідно до того як вони розміщені в налаштуваннях. Також зверніть увагу що налаштовувати Shift+Alt для перемикання між двома розкладками не варто, тому що при швидкому перемиканні можна натиснути випадково комбінацію не в тій послідовності.
3. Розширення GNOME
На мою думку найпростіший спосіб змінити розкладку по Alt+Shift - це використовувати розширення GNOME. Найпопулярніше розширення для вирішення цієї задачі RX Input Layout Switcher. Його можна завантажити тут. Зразу я використовував своє розширення SwitchLayoutAltShift, але оскільки перше розширення більш популярне і працює краще, думаю, немає сенсу далі його підтримувати.
Розширення слідкує за станом клавіш модифікаторів, тому може точно визначити чи було натиснуто лише Alt+Shift чи якусь іншу комбінацію. А тому перемикання розкладки не повинно конфліктувати з іншими гарячими клавішами. Просто коли ви натискаєте Alt+Shift мова вводу міняється на наступну.

Розширення буде працювати як в X11 так і в Wayland. І воно просто перемикає розкладку без відображення панелі розкладок.
Оскільки згідно з політиками GNOME розширення не можуть мати доступ до клавіатури на екрані блокування, то вам може знадобитись ще розширення Primary Input on LockScreen для того щоб там розкладка клавіатури автоматично змінювалась на основну.
4. Спосіб для Xorg
Якщо ви все ще користуєтесь Xorg, то можете виконати наступну команду для активації перемикання розкладок по Alt+Shift:
gsettings set org.gnome.desktop.input-sources.xkb-options "['grp:alt_shift_toggle']"
Що стосується Wayland, то там цей спосіб все ще корректно не працює. Вже є баг репорт про те що одна і та сама розкладка може показуватись декілька раз, але ця проблема досі не виправлена.
Висновки
В цій статті було показано як встановити сполучення клавіш Alt+Shift для зміни мови вводу в Ubuntu. Ці способи також будуть працювати в інших Linux дистрибутивах які використовують GNOME. Як бачите тут є деякі складнощі, але в цілому все налаштовується.