Если при нажатии Alt+Shift или Super+Space раскладка клавиатуры в Linux не меняется, проблема кроется либо в несконфигурированных комбинациях, либо в отсутствии установленных языковых пакетов. В 80% случаев это решается через Настройки → Региональные стандарты, но иногда требуется правка файлов /etc/default/keyboard или ~/.config/dconf/user. Например, в Ubuntu 22.04 по умолчанию может быть отключён индикатор языка в панели задач, из-за чего пользователи ошибочно считают, что переключение не работает.
В этой статье разберём все актуальные методы смены раскладки — от стандартных сочетаний клавиш до ручного редактирования конфигов для GNOME, KDE Plasma и Xfce. Отдельно остановимся на типичных ошибках: когда раскладка сбрасывается после перезагрузки, когда индикатор языка исчезает, или когда система игнорирует горячие клавиши. Если вы используете сервер без графического интерфейса, ниже есть раздел с командами для setxkbmap и loadkeys.
1. Стандартное переключение через горячие клавиши
Большинство дистрибутивов Linux по умолчанию используют комбинации Alt+Shift (как в Windows) или Super+Space (типично для GNOME). Однако эти сочетания могут конфликтовать с другими программами или просто не работать из-за сброса настроек. Чтобы проверить текущую комбинацию:
- 🔹 Нажмите
Super(клавиша с логотипом Windows), введитеНастройкии выберитеКлавиатура→Источники ввода. - 🔹 В KDE Plasma путь будет:
Системные настройки→Ввод устройств→Раскладка клавиатуры. - 🔹 В Xfce откройте
Настройки→Клавиатура→ вкладкаМакет. - 🔹 Если раздел отсутствует, значит языковые пакеты не установлены (см. раздел 3).
Если комбинация сбросилась, восстановите её:
- В GNOME: перейдите в
Настройки → Клавиатура → Горячие клавиши, найдитеПереключить источник вводаи назначьте новое сочетание. - В KDE: в настройках раскладки нажмите
Дополнительно→Настроить варианты→Переключение групп.
2. Проблемы с индикатором языка в панели задач
Отсутствие индикатора раскладки — частая причина паники у новичков. В Ubuntu и Debian он может скрываться автоматически, если добавлен только один язык. Чтобы вернуть его:
- 🔧 В GNOME: выполните в терминале:
gsettings set org.gnome.desktop.input-sources show-all-sources trueЗатем перезагрузите сессию (
Alt+F2→r→Enter). - 🔧 В KDE Plasma: кликните правой кнопкой по панели →
Настроить панель→ добавьте виджетПереключатель раскладки клавиатуры. - 🔧 В Xfce: установите пакет
xfce4-xkb-pluginи добавьте его в панель черезНастройки → Панель.
Критическая ошибка: если индикатор исчез после обновления GNOME Shell до версии 42+, попробуйте сбросить настройки dconf:
dconf reset -f /org/gnome/desktop/input-sources/
Это вернёт стандартные комбинации и отобразит все добавленные раскладки.
3. Установка новых раскладок и языковых пакетов
Если нужного языка нет в списке, его требуется доустановить. В Debian/Ubuntu это делается через пакеты language-pack-*, в Arch Linux — через localectl. Инструкции для популярных дистрибутивов:
| Дистрибутив | Команда установки | Команда для применения |
|---|---|---|
| Ubuntu/Debian | sudo apt install language-pack-ru | sudo dpkg-reconfigure locales |
| Arch Linux | sudo pacman -S kde-l10n-ru (для KDE) | localectl set-x11-keymap ru,us |
| Fedora | sudo dnf install langpacks-ru | localectl set-keymap ru |
| OpenSUSE | sudo zypper install yast2-trans-ru | yast2 keyboard |
После установки перезагрузите систему или примените изменения через терминал:
setxkbmap -layout us,ru -option grp:alt_shift_toggle
Здесь us,ru — список раскладок, а grp:alt_shift_toggle — метод переключения.
Обновите список пакетов (sudo apt update)|Проверьте текущие раскладки (localectl status)|Установите шрифты для языка (sudo apt install fonts-*)|Перезагрузите сессию после изменений-->
4. Ручное редактирование конфигурационных файлов
Если графический интерфейс недоступен (например, на сервере) или настройки сбрасываются после перезагрузки, придётся править конфиги вручную. Основные файлы:
- 📄
/etc/default/keyboard— глобальные настройки для всех пользователей (влияет наttyи X11). - 📄
~/.config/dconf/user— настройки GNOME (можно редактировать черезdconf-editor). - 📄
~/.xprofileили~/.xinitrc— пользовательские скрипты для Xorg.
Пример редактирования /etc/default/keyboard для Ubuntu Server:
# Меняем строки на:
XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=",winkey" # для раскладки "Windows" (ЙЦУКЕН)
XKBOPTIONS="grp:alt_shift_toggle,terminate:ctrl_alt_bksp"
После сохранения примените изменения:
sudo setupcon --force
или перезагрузите систему.
Что делать, если после редактирования конфигов раскладка сбрасывается?
Проверьте права на файлы (ls -la /etc/default/keyboard — должен быть владельцем root).
Убедитесь, что нет конфликтующих строк в ~/.bash_profile или ~/.profile.
В Systemd-системах попробуйте sudo systemctl restart systemd-localed.
Если используете Wayland, некоторые настройки setxkbmap могут игнорироваться — переключитесь на Xorg временно.
5. Переключение раскладки в терминале (без GUI)
На серверах или в tty (виртуальной консоли) горячие клавиши часто не работают. Здесь поможет утилита loadkeys (для консоли) или setxkbmap (для X11). Основные команды:
- 🖥️ Посмотреть текущую раскладку:
setxkbmap -query | grep layout - 🖥️ Сменить раскладку на русскую (одноразово):
setxkbmap ru - 🖥️ Добавить две раскладки (US и RU) с переключением по
Alt+Shift:setxkbmap -layout us,ru -option grp:alt_shift_toggle - 🖥️ Для консоли (
tty), не X11:sudo loadkeys ru
Чтобы изменения применялись автоматически при входе в tty, добавьте строку в ~/.bashrc:
echo "loadkeys ru" >> ~/.bashrc
Важно: в некоторых дистрибутивах (например, Arch Linux) для tty требуется указать карту клавиш в /etc/vconsole.conf:
KEYMAP=ru
6. Решение типичных проблем
Если раскладка не переключается despite всех усилий, проверьте эти моменты:
⚠️ Внимание: В Ubuntu 22.04+ и Fedora 36+ с Wayland некоторые сочетания клавиш (например, Caps Lock для смены языка) могут не работать. Переключитесь на Xorg на экране входа в систему (шестерёнка рядом с кнопкой "Войти").
- 🔍 Конфликт с IBus или Fcitx: Эти менеджеры ввода (популярны в азиатских локалях) могут блокировать стандартное переключение. Проверьте:
ps aux | grep -E "ibus|fcitx"Если они запущены, убирайте их или настройте через
im-config. - 🔍 Сброшенные настройки после обновления: В Ubuntu это лечится командой:
sudo dpkg-reconfigure keyboard-configuration - 🔍 Не работает
Alt+Shiftв VMware или VirtualBox: Отключите в настройках ВМ опциюAuto-capture keyboardили используйтеHost Keyдля освобождения клавиш.
Если проблема остаётся, соберите диагностическую информацию:
setxkbmap -print -verbose 10
localectl status
gsettings list-recursively org.gnome.desktop.input-sources
Ищите строки с xkb_options или sources — они покажут текущие настройки.
7. Альтернативные методы переключения
Если стандартные способы не устраивают, рассмотрите эти варианты:
- 🎯 Xkb-switch: Утилита для переключения раскладок из скриптов. Установка:
sudo apt install xkbswitch # Debian/Ubuntuyay -S xkbswitch # Arch Linux (AUR)
Пример использования в скрипте:
xkbswitch -s us # переключить на английскуюxkbswitch -s ru # переключить на русскую
- 🎯 Пользовательские скрипты: Создайте в
~/.local/bin/switch-layoutфайл со содержимым:#!/bin/bashcurrent=$(setxkbmap -query | grep layout | awk '{print $2}')
if [ "$current" = "us" ]; then
setxkbmap ru
else
setxkbmap us
fi
Сделайте его исполняемым (
chmod +x ~/.local/bin/switch-layout) и назначьте на горячую клавишу. - 🎯 KSuperKey: Для KDE Plasma позволяет переназначить клавишу
Super(Win) на переключение раскладки. Установите через:sudo apt install ksuperkey
Для любителей минимализма подойдёт dmenu или rofi с кастомными скриптами. Например, этот код выведет меню выбора раскладки:
#!/bin/bash
layout=$(echo -e "us\nru" | rofi -dmenu -p "Выберите раскладку")
setxkbmap $layout
Как привязать скрипт к горячей клавише в GNOME?
Откройте Настройки → Клавиатура → Горячие клавиши → Пользовательские сочетания.
Нажмите "+", укажите путь к скрипту (например, /home/user/.local/bin/switch-layout).
Назначьте комбинацию, например, Super+Tab.
FAQ: Частые вопросы
Почему после обновления системы сбросились горячие клавиши для переключения раскладки?
Это типичная проблема при обновлении GNOME или KDE. В большинстве случаев помогает сброс настроек через:
gsettings reset org.gnome.desktop.input-sources xkb-options
Или переустановка пакета с языковыми настройками:
sudo apt install --reinstall gnome-control-center
Если используете KDE, проверьте целостность конфигов:
kbuildsycoca5 --noincremental
Как сделать, чтобы раскладка автоматически переключалась в зависимости от окна (например, в Telegram — русская, в терминале — английская)?
Для этого нужен менеджер окон с поддержкой правил, например, i3 или AwesomeWM. В i3 добавьте в конфиг (~/.config/i3/config):
for_window [class="Telegram"] exec --no-startup-id setxkbmap ru
for_window [class="URxvt"] exec --no-startup-id setxkbmap us
Для GNOME/KDE можно использовать скрипты с xdotool, которые отслеживают активное окно:
#!/bin/bash
while true; do
active_window=$(xdotool getactivewindow getwindowclassname)
if [[ $active_window == "telegram" ]]; then
setxkbmap ru
elif [[ $active_window == "terminal" ]]; then
setxkbmap us
fi
sleep 1
done
Внимание: такой скрипт потребляет ресурсы, запускайте его через nohup.
Можно ли использовать Caps Lock для переключения раскладки?
Да, но это требует правки xkb-опций. Добавьте в /etc/default/keyboard строку:
XKBOPTIONS="grp:caps_toggle"
Или примените временно:
setxkbmap -option grp:caps_toggle
В GNOME это можно сделать через GUI: Настройки → Клавиатура → Параметры раскладки → Caps Lock как переключатель группы.
Как добавить раскладку Colemak или Dvorak?
Эти раскладки устанавливаются как варианты (variant) стандартных макетов. Например, для Colemak:
setxkbmap -layout us -variant colemak
Чтобы сделать её постоянной, добавьте в /etc/default/keyboard:
XKBVARIANT="colemak"
Полный список вариантов для us можно посмотреть так:
localectl list-x11-keymap-variants us
Почему в некоторых программах (например, в играх или Wine) не работает переключение раскладки?
Это связано с тем, что приложения могут захватывать клавиатуру в обход системы. Решения:
- 🎮 Для Wine: добавьте в
winecfg(на вкладке "Библиотеки") переопределение дляimm32иuser32(установитеnative,builtin). - 🎮 Для игр: попробуйте запустить игру в оконном режиме или используйте
xdotoolдля эмуляции нажатий. - 🎮 В Steam: отключите в настройках запуска параметр
-nojoy(он может блокировать клавиатурные события).
Альтернатива — использовать AutoHotkey для Windows-игр через Proton.