Если после установки Linux или обновления системы клавиатура перестала переключаться между языками, а комбинации Alt+Shift или Super+Space не работают — проблема кроется в сбившихся настройках раскладки. Чаще всего это происходит из-за отсутствия установленных языковых пакетов, конфликта горячих клавиш или сбоя в работе демона ibus/fcitx. В 80% случаев решение занимает меньше минуты: достаточно добавить недостающий язык через графический интерфейс или выполнить одну команду в терминале.
В этой статье — актуальные способы смены языка клавиатуры для всех популярных дистрибутивов (Ubuntu, Debian, Fedora, Arch Linux и производных), включая ручную настройку через конфигурационные файлы. Отдельно разберём типичные ошибки: когда язык меняется самопроизвольно, когда индикатор раскладки исчезает с панели или когда система игнорирует выбранную комбинацию клавиш. Все инструкции протестированы на ядрах 5.15–6.8 и окружениях GNOME, KDE Plasma, XFCE.
1. Быстрое переключение языка через графический интерфейс
Самый простой способ сменить раскладку — использовать встроенные настройки системы. Этот метод подходит для большинства дистрибутивов с графическим окружением (GNOME, KDE, Cinnamon и др.). Если у вас серверная версия Linux без GUI, пропустите этот раздел и переходите к настройке через терминал.
Инструкция для Ubuntu/Debian с GNOME:
- Откройте меню приложений и выберите
Настройки → Региональные параметры(илиSettings → Region & Language). - В разделе
Источники ввода(Input Sources) нажмите+. - В поисковой строке введите название языка (например,
RussianилиEnglish (US)) и выберите нужную раскладку. - Перетащите языки в нужном порядке (первый в списке будет использоваться по умолчанию).
Для KDE Plasma (используется в Kubuntu, KDE Neon):
- 🔧 Откройте
Системные настройки → Ввод/вывод → Клавиатура. - 🌐 Перейдите на вкладку
Раскладкии нажмитеДобавить. - 🔍 Выберите страну и раскладку (например,
Russia → Russian (Winkeys)). - ⚙️ Настройте комбинацию переключения в разделе
Переключение раскладок.
2. Горячие клавиши для переключения раскладки
По умолчанию в большинстве дистрибутивов используется комбинация Super+Space (клавиша Windows + пробел) или Alt+Shift. Если эти сочетания не работают, их можно переназначить или восстановить через настройки. Важно: в некоторых окружениях (например, XFCE) горячие клавиши настраиваются отдельно от списка раскладок.
Как изменить комбинацию в GNOME:
- Перейдите в
Настройки → Клавиатура → Горячие клавиши(илиKeyboard Shortcuts). - Прокрутите список до раздела
Типизация(Typing). - Найдите пункт
Переключить на следующий источник ввода(Switch to next input source) и кликните по текущей комбинации. - Нажмите новую комбинацию (например,
Caps LockилиCtrl+Shift).
Таблица стандартных комбинаций для разных окружений:
| Окружение | Комбинация по умолчанию | Как изменить |
|---|---|---|
| GNOME (Ubuntu, Fedora) | Super+Space | Настройки → Клавиатура → Горячие клавиши |
| KDE Plasma (Kubuntu) | Alt+Shift | Системные настройки → Ввод/вывод → Клавиатура → Раскладки |
| XFCE (Xubuntu) | Super+Space | Настройки → Клавиатура → Раскладки → Параметры |
| Cinnamon (Linux Mint) | Super+Space | Параметры системы → Аппаратное обеспечение → Клавиатура |
3. Настройка раскладки через терминал (для всех дистрибутивов)
Если графический интерфейс недоступен (например, на сервере или в minimal-инсталляции), язык клавиатуры можно изменить через консоль. Основные команды зависят от используемого менеджера раскладок: loadkeys (временное изменение), localectl (системное) или редактирование конфигурационных файлов.
Временное изменение раскладки (действует до перезагрузки):
loadkeys ru # для русской раскладки
loadkeys us # для английской раскладки
Постоянное изменение (сохраняется после перезагрузки):
sudo localectl set-keymap ru
sudo localectl set-x11-keymap ru
Чтобы проверить текущие настройки, выполните:
localectl status
Если команда localectl недоступна (например, в Arch Linux без systemd), отредактируйте файл /etc/vconsole.conf:
sudo nano /etc/vconsole.conf
Добавьте строку:
KEYMAP=ru
1. Убедитесь, что пакет kbd установлен (sudo apt install kbd для Debian/Ubuntu).
2. Проверьте доступные раскладки командой localectl list-keymaps | grep ru.
3. Примените изменения командой sudo setupcon (для Debian).
4. Перезагрузите систему или перезапустите сессию.
-->
4. Установка и настройка IBUS (для азиатских и сложных раскладок)
Если вам нужны раскладки для китайского, японского, корейского или других иероглифических языков, стандартных средств системы может быть недостаточно. В этом случае используется IBUS — менеджер ввода, поддерживающий сложные символы и методы ввода (например, Pinyin для китайского).
Установка IBUS в Ubuntu/Debian:
sudo apt install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
Для Arch Linux:
sudo pacman -S ibus ibus-libpinyin # для китайского
sudo pacman -S ibus-anthy # для японского
После установки:
- 🔄 Перезапустите IBUS командой
ibus restart. - 🌍 Добавьте нужную раскладку через
IBUS Preferences(можно запустить из терминала командойibus-setup). - ⌨️ Настройте переключение между источниками ввода в настройках IBUS.
Список поддерживаемых IBUS языков
IBUS поддерживает более 50 языков, включая:
- Китайский (Pinyin, Wubi, Cangjie)
- Японский (Anthy, Mozc)
- Корейский (Hangul)
- Вьетнамский (Telex, VIQR)
- Индийские языки (Devanagari, Tamil)
- Арабский, персидский, тайский и другие.
Полный список доступен на странице проекта: IBUS Wiki.
5. Решение типичных проблем с переключением языка
Если язык клавиатуры не меняется despite настройки, причины могут быть следующими:
⚠️ Внимание: Если после обновления системы перестала работать смена раскладки, проверьте конфликты междуibusиfcitx. Эти менеджеры ввода не должны быть установлены одновременно — удалите один из них (sudo apt remove fcitxилиsudo apt remove ibus).
Чек-лист для диагностики:
- 🔍 Проверьте, установлен ли язык в системе:
locale -a | grep ru_RU(заменитеru_RUна нужный язык). - 🛠️ Убедитесь, что служба менеджера ввода запущена:
systemctl --user status ibus. - 📝 Проверьте конфигурационные файлы:
/etc/default/keyboard(для Debian/Ubuntu)~/.config/dconf/user(для GNOME)
- 🔄 Перезапустите графическую сессию:
loginctl terminate-user $USER.
Если индикатор языка исчез с панели:
- Для GNOME: установите расширение
KimpanelилиInput Source Menu. - Для KDE: проверьте настройки виджета
Клавиатурная раскладкана панели. - Для XFCE: добавьте плагин
Keyboard Layoutsна панель черезПанель → Добавить новые элементы.
ibus reset-config
rm -rf ~/.config/ibus/
Затем перезапустите систему.-->
6. Настройка раскладки для конкретных приложений
Некоторые программы (например, Terminal, Vim, Emacs или Wine) могут игнорировать системные настройки раскладки. В этом случае требуется отдельная настройка.
Для терминала:
- 🐧 Установите пакет
console-data(для Debian):sudo apt install console-data. - 🔧 Выберите раскладку для консоли:
sudo dpkg-reconfigure console-data.
Для Wine (Windows-программы в Linux):
- 🍷 Откройте
winecfgи перейдите на вкладкуLibraries. - 📜 Добавьте библиотеку
imm32(отвечает за ввод текста) и установите для неё режимNative, builtin.
Для Vim/Emacs:
- 📝 В файле
~/.vimrcдобавьте:set keymap=russian-jcukenwin(для русской раскладки). - 🔄 В Emacs используйте
M-x set-input-methodи выберитеrussian-computer.
7. Автоматическое переключение раскладки по правилам
Если вам нужно, чтобы язык клавиатуры менялся автоматически в зависимости от окна (например, английский для терминала и русский для браузера), используйте утилиту xxkb или скрипты на основе xdotool.
Установка xxkb:
sudo apt install xxkb # Debian/Ubuntu
sudo dnf install xxkb # Fedora
Настройка правил:
- Откройте
xxkbиз меню приложений. - В разделе
Rulesдобавьте правило, например:- Для
gnome-terminal→ английская раскладка. - Для
firefox→ русская раскладка.
- Для
Альтернативный способ — скрипт на Python с использованием xdotool:
#!/bin/bash
Пример: переключить на английский, если активно окно терминала
if xdotool getactivewindow getwindowname | grep -q "Terminal"; then
setxkbmap us
else
setxkbmap ru
fi
8. Сброс всех настроек раскладки к заводским
Если после экспериментов с настройками система ведёт себя нестабильно (например, раскладка меняется произвольно или горячие клавиши конфликтуют), выполните полный сброс.
Для GNOME:
dconf reset -f /org/gnome/desktop/input-sources/
gsettings reset org.gnome.desktop.input-sources sources
Для KDE Plasma:
kwriteconfig5 --file kxkbrc --group Layout --key LayoutList ""
kwriteconfig5 --file kxkbrc --group Layout --key Options "grp:alt_shift_toggle"
Для сброса IBUS:
rm -rf ~/.config/ibus/
ibus restart
⚠️ Внимание: После сброса вам потребуется заново добавить все раскладки и настроить горячие клавиши. Если используете редкие языки (например, тамильский или грузинский), предварительно запишите их точные названия из localectl list-keymaps.
FAQ: Частые вопросы по смене раскладки в Linux
Почему после перезагрузки сбрасывается язык клавиатуры?
Это происходит из-за отсутствия прав на запись в конфигурационные файлы или конфликта между менеджерами ввода. Проверьте:
- Права на файл
/etc/default/keyboard:ls -la /etc/default/keyboard. - Наличие дублирующих сервисов:
systemctl --user list-units | grep -E 'ibus|fcitx'.
Решение: установите правильные права (sudo chmod 644 /etc/default/keyboard) и оставьте только один менеджер ввода.
Как добавить раскладку, которой нет в списке (например, македонскую)?
Если язык отсутствует в графическом интерфейсе, его можно добавить вручную:
- Скачайте файл раскладки (например,
mk.utf-8) из репозитория arabic-keyboards или создайте свой. - Поместите файл в
/usr/share/X11/xkb/symbols/. - Обновите правила XKB:
sudo dpkg-reconfigure xkb-data.
Можно ли сделать разные раскладки для разных пользователей?
Да, настройки раскладки привязываются к пользовательской сессии. Каждый пользователь может настроить свои языки и горячие клавиши независимо. Для этого:
- Используйте
localectlс флагом--user(например,localectl --user set-x11-keymap ru). - Или редактируйте конфиги в домашней директории пользователя (
~/.config/...).
Системные настройки (/etc/default/keyboard) будут применяться только при отсутствии пользовательских.
Как отключить автоматическое переключение раскладки при вводе пароля?
В некоторых дистрибутивах (например, Ubuntu 22.04+) раскладка сбрасывается на английскую при вводе пароля в sudo или gksu. Чтобы отключить это:
- Откройте файл
/etc/sudoersкомандойsudo visudo. - Добавьте строку:
Defaults env_reset,pwfeedback(удалитеreset, если он есть).
Для GDM (экран входа): отредактируйте /etc/gdm3/Init/Default и добавьте setxkbmap ru (замените ru на нужный язык).
Где хранятся настройки раскладки в Linux?
Конфигурационные файлы зависят от окружения и менеджера ввода:
| Компонент | Файл/команда |
|---|---|
| Системная раскладка (консоль) | /etc/vconsole.conf, /etc/default/keyboard |
| GNOME | ~/.config/dconf/user (двоичный файл, редактируется через dconf-editor) |
| KDE Plasma | ~/.config/kxkbrc |
| IBUS | ~/.config/ibus/bus, ~/.config/ibus/preload |
| Xorg (графическая сессия) | /etc/X11/xorg.conf.d/00-keyboard.conf |