В главном официальном образе Ubuntu используется окружение рабочего стола GNOME, и здесь с поддержкой предыдущих способов переключения раскладки всё довольно непросто. По умолчанию для переключения раскладки клавиатуры используются комбинации клавиш Super+Space и Shift+Super+Space. Первая переключает раскладку на следующую, а вторая на предыдущую, как и в Windows.
Но для пользователей, привыкших использовать Alt+Shift и имеющих много раскладок, это может быть не очень удобно. В этой статье мы рассмотрим, как настроить переключение раскладки по Alt+Shift в Ubuntu.
Содержание статьи
Как это работает по умолчанию?
Давайте сначала рассмотрим, как это всё работает в 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. Как видите, здесь есть некоторые сложности, но в целом всё настраивается.
Вау! спасибо. Каждый заход на этот сайт прибавляет к качеству жизни 🙂