Переключение языка клавиатуры в Linux: от горячих клавиш до ручной настройки

Если при наборе текста в Linux вместо русских букв появляются латинские символы (или наоборот), а сочетания Alt+Shift или Ctrl+Shift не работают — проблема в неправильно настроенной смене раскладки. В 80% случаев это происходит из-за сброса настроек после обновления системы или конфликта между несколькими методами переключения (например, когда одновременно активны сочетания клавиш в GNOME и Xorg). Первое, что нужно проверить: работает ли индикатор языка в панели задач и не сбились ли назначенные комбинации в параметрах системы.

В отличие от Windows, где смена раскладки настраивается в одном месте, в Linux за это могут отвечать сразу несколько компонентов: менеджер рабочего стола (GNOME, KDE Plasma, XFCE), сервер отображения (X11 или Wayland), а также консольные утилиты вроде setxkbmap. Если вы недавно обновили дистрибутив (например, с Ubuntu 22.04 на 24.04) или установили новую тему оформления, велик шанс, что настройки сбросились к значениям по умолчанию. Ниже разберём все способы — от базовых до продвинутых.

1. Горячие клавиши по умолчанию в популярных дистрибутивах

Большинство дистрибутивов Linux используют стандартные комбинации для смены языка, но они могут отличаться в зависимости от рабочего стола. Вот актуальные данные для самых распространённых окружений:

  • 🔹 GNOME (Ubuntu, Fedora, Debian): Super+Space (клавиша Windows) или Alt+Shift. В новых версиях Super+Space часто отключён по умолчанию.
  • 🔹 KDE Plasma (Kubuntu, KDE Neon): Alt+Shift или Ctrl+Shift. Можно настроить в «Системные настройки» → «Ввод».
  • 🔹 XFCE (Xubuntu, Linux Mint XFCE): Alt+Shift. Иногда требует ручной настройки в «Параметры» → «Клавиатура».
  • 🔹 Cinnamon (Linux Mint): Super+Space или Alt+Shift. Настраивается в «Параметры» → «Апплеты» → «Keyboard Layout».

Если стандартные сочетания не работают, проверьте:

  1. Активна ли русская раскладка в списке доступных языков (см. следующий раздел).
  2. Не конфликтуют ли настройки рабочего стола с системными (например, в GNOME Tweaks может быть отключено переключение).
  3. Не используется ли Wayland вместо X11 — в нём некоторые комбинации работают иначе.

2. Добавление и удаление раскладок через графический интерфейс

Прежде чем настраивать горячие клавиши, убедитесь, что нужные языки добавлены в систему. В большинстве дистрибутивов это делается через «Параметры» (или «Настройки») → «Регион и язык» (или «Клавиатура»). Рассмотрим процесс на примере Ubuntu 24.04 с GNOME:

  1. Откройте меню приложений и выберите «Настройки» (или нажмите Super и введите «настройки»).
  2. Перейдите в раздел «Клавиатура» → вкладка «Источники ввода».
  3. Нажмите «+» (Добавить) и найдите в списке «Русский» (или другой нужный язык). Выберите подходящую раскладку (обычно это «Русская» или «Русская (типографская)»).
  4. С помощью кнопок со стрелками отрегулируйте порядок раскладок — первая в списке будет использоваться по умолчанию.

В KDE Plasma путь немного другой:

  1. «Системные настройки» → «Региональные настройки» → «Клавиатура».
  2. Во вкладке «Раскладки» нажмите «Добавить» и выберите язык.
  3. Настройте переключение во вкладке «Переключение раскладок».
Как удалить ненужную раскладку?

В том же разделе «Источники ввода» выделите ненужный язык и нажмите на значок корзины (или кнопку «Удалить»). Если язык не удаляется, проверьте, не используется ли он в качестве основного для системы (это можно изменить в «Язык системы» в тех же настройках).

После добавления языка проверьте, появился ли индикатор раскладки на панели задач (обычно это аббревиатура типа «РУ»/«EN»). Если его нет, возможно, требуется перезагрузка сеанса (выйти из учётной записи и зайти снова).

3. Настройка горячих клавиш в GNOME, KDE и XFCE

Если стандартные комбинации не устраивают или не работают, их можно переназначить. Рассмотрим, как это сделать в разных окружениях.

GNOME (Ubuntu, Fedora, Debian)

  1. Откройте «Настройки» → «Клавиатура» → «Сочетания клавиш».
  2. Прокрутите вниз до раздела «Типирование».
  3. Найдите пункт «Переключить на следующий источник ввода» и нажмите на текущую комбинацию.
  4. Зажмите новые клавиши (например, Caps Lock или Ctrl+Alt).

KDE Plasma

  1. «Системные настройки» → «Клавиатура» → «Раскладки».
  2. Во вкладке «Переключение раскладок» выберите нужное сочетание из выпадающего списка или нажмите «Настроить сочетания клавиш».

XFCE

  1. «Параметры» → «Клавиатура» → вкладка «Раскладка».
  2. В разделе «Опции раскладки» найдите «Клавиши для изменения раскладки» и выберите подходящую комбинацию.

Если нужной комбинации нет в списке (например, Caps Lock), её можно добавить вручную через терминал (см. раздел 5).

📊 Какую комбинацию вы используете для смены языка?
Alt+Shift
Ctrl+Shift
Super+Space
Caps Lock
Другую

4. Проблемы с переключением: причины и решения

Если язык не переключается несмотря на правильные настройки, причины могут быть следующими:

Симптом Вероятная причина Решение
Горячие клавиши не работают, но индикатор языка меняется Конфликт между настройками GNOME и Xorg Отключите переключение в setxkbmap (см. раздел 5) или сбросьте настройки через dconf reset
Язык меняется, но на экране отображаются не те символы Неправильная кодировка шрифта или локаль Установите правильную локаль: sudo dpkg-reconfigure locales
Переключение работает только в некоторых приложениях Приложение использует собственную систему ввода (например, JetBrains IDE) Настройте раскладку внутри программы или отключите её «родной» input method
Комбинации срабатывают с задержкой Загруженность системы или конфликт с IBus Перезапустите IBus: ibus restart или отключите его

Один из самых распространённых конфликтов — когда переключение настроено и в графическом интерфейсе, и в консольной утилите setxkbmap. Чтобы проверить, не мешает ли setxkbmap, выполните в терминале:

setxkbmap -query | grep options

Если в выводе есть строка вроде grp:alt_shift_toggle, значит, переключение дублируется. Чтобы сбросить настройки setxkbmap, используйте:

setxkbmap -option

5. Ручное управление раскладками через терминал

Для продвинутых пользователей или в случаях, когда графический интерфейс недоступен (например, на сервере без GUI), управление раскладками осуществляется через консольные команды. Основные утилиты:

  • 🐧 setxkbmap — изменяет раскладку и опции X11 в реальном времени.
  • 🐧 gsettings — управляет настройками GNOME.
  • 🐧 localectl — настраивает системную локаль и клавиатуру.
  • 🐧 loadkeys — используется в консоли (без X-сервера).

Примеры команд:

  • 🔧 Переключить раскладку на русскую в текущем сеансе X11:
    setxkbmap -layout us,ru -option grp:alt_shift_toggle

    Здесь us,ru — список раскладок, а grp:alt_shift_toggle — метод переключения (alt_shift_toggle меняет язык по Alt+Shift, grp:ctrl_shift_toggle — по Ctrl+Shift).

  • 🔧 Добавить русскую раскладку в GNOME:
    gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ru')]"
  • 🔧 Установить русскую раскладку по умолчанию в консоли (без GUI):
    sudo loadkeys ru
  • 🔧 Посмотреть текущие настройки:
    localectl status
    

    setxkbmap -query

Чтобы изменения сохранялись после перезагрузки, добавьте команду setxkbmap в автозагрузку. Для этого:

  1. Создайте файл ~/.xprofile (если его нет): touch ~/.xprofile.
  2. Добавьте строку с командой, например:
    setxkbmap -layout us,ru -option grp:alt_shift_toggle
  3. Сделайте файл исполняемым: chmod +x ~/.xprofile.

1. Убедитесь, что X-сервер запущен (команда echo $DISPLAY должна вернуть :0 или подобное).

2. Проверьте текущие раскладки: localectl list-x11-keymap-layouts.

3. Если используете Wayland, setxkbmap может не работать — используйте gsettings.

4. После изменений перезагрузите сеанс или выполните setxkbmap -option для сброса.-->

6. Особенности переключения в Wayland

Wayland — современный протокол отображения, который постепенно заменяет X11 в большинстве дистрибутивов. В нём многие низкоуровневые инструменты вроде setxkbmap работают иначе или не работают вовсе. Если вы используете Wayland (проверить можно командой echo $XDG_SESSION_TYPE), учитывайте следующие нюансы:

  • ⚠️ Комбинации, назначенные через setxkbmap, игнорируются. Используйте настройки GNOME/KDE или gsettings.
  • ⚠️ Некоторые приложения (например, Steam или Wine) могут «не видеть» смену раскладки. Решение — запускать их с переменной SDL_VIDEODRIVER=x11.
  • ⚠️ Индикатор языка может отображаться некорректно в некоторых DE (например, в KDE Plasma под Wayland).

Чтобы принудительно использовать X11 (если Wayland вызывает проблемы):

  1. На экране входа в систему (после выбора пользователя) нажмите на шестерёнку «Настройки сеанса».
  2. Выберите вариант с пометкой «X11» или «Xorg».
  3. Введите пароль и войдите в систему.

В Ubuntu 22.04+ и Fedora 36+ Wayland используется по умолчанию. Если вам критично важно переключение через setxkbmap, временно вернитесь к X11 или настройте альтернативные методы (например, через ibus).

gsettings get org.gnome.desktop.input-sources sources

Это вернёт список в формате [('xkb', 'us'), ('xkb', 'ru')], где первый элемент — текущая раскладка.-->

7. Альтернативные методы: IBus, Fcitx и xkb-switch

Если стандартные способы не устраивают, можно использовать специализированные менеджеры ввода:

  • 🦜 IBus — популярный фреймворк для ввода нелатинских символов (китайский, японский, русский). Устанавливается командой:
    sudo apt install ibus

    После установки добавьте русский язык через ibus-setup и назначьте горячие клавиши.

  • 🦜 Fcitx — более гибкая альтернатива IBus, поддерживает плагины и темы. Установка:
    sudo apt install fcitx fcitx-config-gtk

    Настройка осуществляется через fcitx-configtool.

  • 🦜 xkb-switch — утилита для быстрого переключения раскладок из терминала или скриптов. Установка:
    sudo apt install xkb-switch

    Пример использования:

    xkb-switch -s us  # переключить на английскую
    

    xkb-switch -s ru # переключить на русскую

    xkb-switch -n # показать текущую раскладку (0 — первая в списке, 1 — вторая)

Эти инструменты полезны, если:

  • 🔸 Вам нужно переключать языки в скриптах (например, для автоматического ввода паролей).
  • 🔸 Стандартные методы конфликтуют с приложениями (например, в Wine или играх).
  • 🔸 Вы используете редкие раскладки (например, Койра или ЙЦУКЕН).

Для Fcitx и IBus не забудьте добавить их в автозагрузку:

im-config -n fcitx  # для Fcitx

im-config -n ibus # для IBus

ibus restart

или

fcitx restart
-->

8. Переключение языка в консоли (без графического интерфейса)

Если вы работаете в текстовой консоли (например, на сервере или в tty1), для смены раскладки используйте команду loadkeys. По умолчанию в большинстве дистрибутивов доступны только английская (us) и локальная раскладка (например, ru для русской системы).

Основные команды:

  • 🖥️ Посмотреть доступные раскладки:
    ls /usr/share/keymaps/i386/qwerty/

    (путь может отличаться в зависимости от дистрибутива).

  • 🖥️ Загрузить русскую раскладку:
    sudo loadkeys ru
  • 🖥️ Вернуться к английской:
    sudo loadkeys us
  • 🖥️ Установить раскладку по умолчанию (сохранится после перезагрузки):
    sudo localectl set-keymap ru

Если нужной раскладки нет в списке, её можно сгенерировать из X11-кемапа:

sudo ckbcomp -layout ru /usr/share/keymaps/i386/qwerty/ru.map.gz

sudo loadkeys ru

В некоторых дистрибутивах (например, Arch Linux) может потребоваться ручная настройка файла /etc/vconsole.conf:

KEYMAP=ru

FONT=cyr-sun16

Как переключаться между раскладками в консоли без loadkeys?

Если loadkeys не поддерживает переключение, можно использовать скрипт:

#!/bin/bash

if grep -q "keymap.*us" /etc/vconsole.conf; then

sudo sed -i 's/keymap.*us/keymap ru/' /etc/vconsole.conf

sudo loadkeys ru

else

sudo sed -i 's/keymap.*ru/keymap us/' /etc/vconsole.conf

sudo loadkeys us

fi

Сохраните его как switch_kb.sh, сделайте исполняемым (chmod +x switch_kb.sh) и запускайте по мере необходимости.

Обратите внимание: в консоли нет горячих клавиш для переключения — придётся либо использовать скрипты, либо каждый раз вводить loadkeys.

Частые вопросы (FAQ)

Почему после обновления Ubuntu перестали работать горячие клавиши для смены языка?

Это типичная проблема при переходе на новую версию GNOME или смене протокола с X11 на Wayland. Решения:

  1. Проверьте, не сбились ли настройки в dconf:
    dconf dump /org/gnome/desktop/input-sources/

    Если вывод пустой, настройки сбросились. Восстановите их через графический интерфейс.

  2. Если используете Wayland, попробуйте вернуться к X11 на экране входа.
  3. Сбросьте настройки IBus:
    ibus reset-config
Как сделать, чтобы язык переключался по Caps Lock?

Эта клавиша по умолчанию не используется для смены раскладки, но её можно переназначить:

  1. В GNOME:
    gsettings set org.gnome.desktop.input-sources xkb-options "['grp:caps_toggle']"
  2. В X11 (через setxkbmap):
    setxkbmap -option grp:caps_toggle
  3. Чтобы отключить стандартное поведение Caps Lock (чтобы она не включала заглавные буквы), добавьте:
    setxkbmap -option caps:none

После этого Caps Lock будет работать как переключатель языка.

Можно ли назначить разные комбинации для разных приложений?

Да, но это требует дополнительных инструментов:

  • 🔧 В KDE Plasma это делается через «Системные настройки» → «Клавиатура» → «Раскладки» → «Дополнительные настройки».
  • 🔧 В GNOME потребуется расширение Gnome Shell Extensions (например, Per Application Keyboard Layout).
  • 🔧 Для X11 можно использовать xbindkeys + скрипты на xkb-switch.

Пример скрипта для xbindkeys:

#!/bin/bash

if [ "$(xprop -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}') _NET_WM_PID | awk '{print $3}')" = "1234" ]; then

setxkbmap -layout us # для PID 1234 (например, Terminal) всегда английская

else

setxkbmap -layout us,ru -option grp:alt_shift_toggle # для остальных — переключение

fi

Почему в некоторых играх (например, в Steam) не работает переключение языка?

Проблема связана с тем, что многие игры используют собственные системы ввода или запускаются с правами, ограничивающими доступ к X11/Wayland. Решения:

  • 🎮 Запускайте игру с переменной окружения:
    SDL_VIDEODRIVER=x11 %command%

    Steam это настраивается в свойствах игры → «Параметры запуска»).

  • 🎮 Используйте IBus или Fcitx вместо стандартных методов.
  • 🎮 В настройках игры найдите опцию «Use system keyboard layout» и включите её.
  • 🎮 Для Wine/Proton добавьте в ~/.config/environment.d/wine.conf:
    SDL_VIDEODRIVER=x11
    

    QT_QPA_PLATFORM=xcb

Как сбросить все настройки клавиатуры к заводским?

Если вы экспериментировали с настройками и хотите вернуть всё «как было», выполните следующие команды в зависимости от вашего окружения:

  • 🔄 Для GNOME:
    dconf reset -f /org/gnome/desktop/input-sources/
    

    gsettings reset org.gnome.desktop.input-sources xkb-options

  • 🔄 Для KDE Plasma:
    kwriteconfig5 --file kxkbrc --group Layout --key Options ""
    

    qdbus org.kde.kded5 /kded org.kde.kded5.reparseConfiguration

  • 🔄 Для X11 (сброс setxkbmap):
    setxkbmap -layout us  # сброс к английской
    

    setxkbmap -option # сброс опций

  • 🔄 Для IBus:
    ibus reset-config

После сброса перезагрузите сеанс (выйдите из учётной записи и войдите снова).