Переключение языков на клавиатуре в Linux часто становится головной болью для новичков — особенно если система установлена с минимальными настройками или используется нестандартная среда рабочего стола. В отличие от Windows или macOS, где смена раскладки обычно сводится к сочетанию Alt+Shift или Cmd+Space, в Linux этот процесс может зависеть от дистрибутива, менеджера окон и даже версии ядра. Но не стоит паниковать: после прочтения этой статьи вы сможете переключать языки за доли секунды — будь то через графический интерфейс, терминал или кастомные сочетания клавиш.
Основная проблема заключается в разнообразии инструментов: GNOME, KDE Plasma, Xfce и даже i3 предлагают свои способы управления раскладками. К тому же, некоторые дистрибутивы (например, Arch Linux или Debian в минимальной сборке) могут вообще не иметь предустановленных языковых пакетов. Мы разберём все сценарии — от базовой настройки до решения типичных ошибок вроде "залипания" раскладки или отсутствия русского языка в списке доступных.
Если вы только что установили Linux и видите на экране незнакомые символы вместо привычных букв — не спешите переустанавливать систему. Скорее всего, проблема решается парой команд в терминале или кликами в настройках. А для опытных пользователей мы подготовили раздел с продвинутыми трюками, включая привязку переключения к Caps Lock или автоматическое определение языка по активному окну.
1. Базовые способы переключения раскладки
Начнём с самого простого: стандартных методов, которые работают в большинстве дистрибутивов "из коробки". Если ваша система использует GNOME (например, Ubuntu, Fedora с рабочим столом по умолчанию) или KDE Plasma (Kubuntu, openSUSE), эти способы должны сработать без дополнительных настроек.
Самый универсальный вариант — использование панели задач. Обычно в правом верхнем или нижнем углу экрана отображается текущая раскладка (например, EN или RU). Кликните по этому индикатору левой кнопкой мыши — появится список доступных языков. Выберите нужный, и раскладка изменится мгновенно. В некоторых средах (например, Cinnamon) может потребоваться предварительно добавить виджет переключения языков на панель.
- 🔹 Горячие клавиши по умолчанию: В большинстве дистрибутивов используется комбинация
Super+Space(гдеSuper— это клавиша с логотипом Windows). Также распространеныAlt+ShiftиCtrl+Shift, но они могут конфликтовать с другими сочетаниями. - 🖱️ Контекстное меню: В некоторых средах (например, Xfce) можно кликнуть правой кнопкой по панели задач, выбрать
Добавить новые элементы→Переключатель раскладки клавиатурыи настроить отображение. - 📋 Системный трей: В KDE Plasma иконка раскладки может скрываться под стрелочкой в системном трее. Раскройте панель, найдите значок клавиатуры и выберите язык.
Если переключение не работает, проверьте, установлены ли вообще дополнительные раскладки. Для этого откройте Настройки → Региональные стандарты → Раскладка клавиатуры (путь может немного отличаться в зависимости от дистрибутива). В списке должны быть как минимум два языка — например, Английский (США) и Русский.
2. Настройка раскладок через терминал
Терминал — это мощный инструмент, который позволяет управлять раскладками даже без графического интерфейса. Этот метод особенно полезен для серверных версий Linux или если графическая оболочка suddenly crashed. Основные команды зависят от используемой системы инициализации: systemd (современные дистрибутивы) или ConsoleKit (устаревшие версии).
Первым делом проверьте, какие раскладки уже установлены в системе. Выполните команду:
localectl list-keymaps | grep -i "ru\|us"
Эта команда выведет список доступных раскладок, содержащих ru (русский) или us (английский). Если нужной раскладки нет, её придётся добавить вручную.
Чтобы установить новую раскладку (например, русскую), используйте:
sudo localectl set-keymap ru
sudo localectl set-x11-keymap ru
Первая команда меняет раскладку для консоли (TTY), вторая — для графического интерфейса (X11). После выполнения перезагрузите систему или перезапустите сессию.
- 🔧 Просмотр текущих настроек:
localectl statusпокажет активную раскладку, языковые параметры и кодировку. - 📝 Добавление нескольких раскладок: Отредактируйте файл
/etc/vconsole.conf, добавив строкуKEYMAP=us,ru(разделитель — запятая). - 🔄 Переключение в консоли: В TTY используйте
loadkeys ruдля временной смены раскладки без перезагрузки.
3. Горячие клавиши: как настроить и изменить
Стандартные сочетания клавиш для переключения языков (Super+Space, Alt+Shift) не всегда удобны. К счастью, в Linux их можно переназначить или добавить альтернативные варианты. Рассмотрим, как это сделать в популярных средах рабочего стола.
В GNOME (Ubuntu, Fedora, Debian с GNOME Shell):
- Откройте
Настройки → Устройства → Клавиатура. - Прокрутите вниз до раздела
Переключение раскладки. - Нажмите на текущее сочетание (например,
Super+Space) и введите новое, например,Caps Lock. - Чтобы добавить несколько сочетаний, используйте утилиту
gsettings:gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['space', ' Shift_L']"
В KDE Plasma:
- Перейдите в
Настройки системы → Ввод устройств → Раскладка клавиатуры. - Вкладка
Переключение→ настройте сочетания в разделеГлобальное сочетание клавиш. - Для продвинутых настроек откройте
Настроить KDE→Сочетания клавиши найдите действиеSwitch to Next Keyboard Layout.
В Xfce:
- Откройте
Настройки → Клавиатура → Раскладка. - Во вкладке
Параметрынайдите опциюКлавиши для изменения раскладки. - Выберите одно из предложенных сочетаний или нажмите
Добавить, чтобы создать своё.
| Среда рабочего стола | Путь к настройкам | Команда для сброса к стандартным клавишам |
|---|---|---|
| GNOME | Настройки → Устройства → Клавиатура |
gsettings reset org.gnome.desktop.wm.keybindings switch-input-source |
| KDE Plasma | Настройки системы → Ввод устройств → Раскладка клавиатуры |
kwriteconfig5 --file kxkbrc --group Layout --key Options "grp:alt_shift_toggle" |
| Xfce | Настройки → Клавиатура → Раскладка |
Удалите файл ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml |
| i3/Sway | Файл конфигурации ~/.config/i3/config |
Удалите строки с exec --no-startup-id setxkbmap |
Проверьте текущие сочетания в настройках среды|Убедитесь, что нужные раскладки добавлены|Перезагрузите сессию после изменений|Протестируйте новые клавиши в текстовом редакторе-->
4. Продвинутые методы: setxkbmap и xmodmap
Если стандартные настройки не устраивают, можно управлять раскладками на низком уровне с помощью утилит setxkbmap и xmodmap. Эти инструменты позволяют гибко настраивать не только языки, но и поведение модификаторов (например, сделать Caps Lock переключателем раскладки).
setxkbmap — это стандартная утилита для управления раскладками в X11. Например, чтобы переключаться между английской и русской раскладками по Caps Lock, добавьте в файл автозагрузки (например, ~/.xprofile) следующую строку:
setxkbmap -layout "us,ru" -option "grp:caps_toggle"
Опции для setxkbmap:
grp:alt_shift_toggle— переключение поAlt+Shift;grp:win_space_toggle— переключение поSuper+Space;grp:caps_toggle— переключение поCaps Lock;grp_led:scroll— индикация текущей раскладки наScroll Lock.
xmodmap позволяет переназначать клавиши на уровне X-сервера. Например, чтобы сделать Caps Lock переключателем раскладки, создайте файл ~/.Xmodmap со следующим содержимым:
clear Lock
keycode 66 = ISO_Next_Group
Затем примените настройки:
xmodmap ~/.Xmodmap
Как вернуть стандартное поведение Caps Lock?
Если вы переназначили Caps Lock через xmodmap и хотите вернуть его обратно, удалите или отредактируйте файл ~/.Xmodmap, а затем выполните команду setxkbmap -option (без аргументов), чтобы сбросить опции.
Внимание: изменения через xmodmap могут конфликтовать с настройками среды рабочего стола. Если после применения команд перестала работать смена раскладки в GUI, удалите файл ~/.Xmodmap и перезапустите сессию.
5. Решение типичных проблем
Даже после правильной настройки раскладок пользователи часто сталкиваются с багами: язык не переключается, индикатор не отображается или система "забывает" настройки после перезагрузки. Разберём самые распространённые случаи и их решения.
⚠️ Внимание: Если вы используете Wayland вместо X11 (например, в новых версиях GNOME или KDE), некоторые команды вродеsetxkbmapмогут не работать. В этом случае настраивайте раскладки через параметры среды или используйтеgsettings/kwrited.
Проблема 1: Раскладка сбрасывается после перезагрузки.
- 🔹 Решение для systemd: Убедитесь, что служба
systemd-localedактивна:sudo systemctl enable --now systemd-localed - 🔹 Решение для X11: Добавьте команду
setxkbmapв автозагрузку (например, в~/.xinitrcили~/.xprofile).
Проблема 2: Индикатор языка не отображается на панели.
- 🔹 Для GNOME: Установите расширение Kimpanel или проверьте, включён ли апплет
Input Sourcesвgnome-tweaks. - 🔹 Для KDE: Кликните правой кнопкой по панели →
Добавить виджеты→ найдитеKeyboard Layout.
Проблема 3: Горячие клавиши не работают.
- 🔹 Проверьте конфликты с другими сочетаниями (например,
Alt+Shiftможет быть занято менеджером окон). - 🔹 В i3 или Sway настройте переключение в конфигурационном файле:
bindsym $mod+space exec --no-startup-id setxkbmap -layout usbindsym $mod+Shift+space exec --no-startup-id setxkbmap -layout ru
Проблема 4: Некорректные символы при вводе (например, вместо "ё" печатается "~").
- 🔹 Убедитесь, что выбрана правильная вариация раскладки (например,
Russian (phonetic)вместоRussian (typewriter)). - 🔹 Проверьте переменную
LANG:localeЕсли вывод содержит
CилиPOSIX, установите правильную локаль:sudo locale-gen ru_RU.UTF-8export LANG=ru_RU.UTF-8
6. Настройка раскладок в консоли (TTY)
Переключение языков в текстовой консоли (TTY, доступной по Ctrl+Alt+F1-F6) отличается от графического интерфейса. Здесь нет горячих клавиш или индикаторов — только ручная смена раскладки командами. Если вам часто приходится работать в консоли, стоит настроить удобное переключение.
Первым делом проверьте, какие раскладки доступны в TTY:
ls /usr/share/keymaps/i386/qwerty/
Для временной смены раскладки используйте:
loadkeys ru
Чтобы сделать изменения постоянными, отредактируйте файл /etc/vconsole.conf:
KEYMAP=us
KEYMAP_TOGGLE=ru
Теперь вы сможете переключаться между английской и русской раскладками в консоли с помощью Scroll Lock (если опция поддерживается вашим терминалом).
Для более гибкой настройки создайте кастомный файл раскладки. Например, чтобы добавить поддержку украинской раскладки:
- Скопируйте базовый файл:
sudo cp /usr/share/keymaps/i386/qwerty/us.map.gz /usr/share/keymaps/i386/qwerty/ua-custom.map.gz - Распакуйте и отредактируйте его (например, с помощью
zcatиvim). - Добавьте строки для украинских символов.
- Примените новую раскладку:
loadkeys ua-custom
⚠️ Внимание: В некоторых дистрибутивах (например, Arch Linux) пакетkbd, содержащий утилитуloadkeys, может быть не установлен. Установите его командойsudo pacman -S kbd(для Arch) илиsudo apt install console-data(для Debian/Ubuntu).
7. Автоматизация: скрипты и утилиты
Если вам надоело вручную переключать раскладки или вы хотите автоматизировать процесс (например, привязать смену языка к определённому приложению), на помощь придут скрипты и сторонние утилиты. Рассмотрим несколько полезных инструментов.
1. xxkb — утилита для индикации и переключения раскладок в системном трее. Установите её из репозиториев:
sudo apt install xxkb # Debian/Ubuntu
sudo dnf install xxkb # Fedora
Затем добавьте в автозагрузку:
xxkb &
2. fbxkb — ещё один индикатор раскладки с поддержкой скинов и горячих клавиш:
sudo apt install fbxkb
Настройте его через графический интерфейс или файл конфигурации ~/.fbxkb.
3. Кастомные скрипты на Bash. Например, скрипт для переключения между двумя раскладками по клику на иконку:
#!/bin/bash
current_layout=$(setxkbmap -query | grep layout | awk '{print $2}')
if [ "$current_layout" = "us" ]; then
setxkbmap ru
else
setxkbmap us
fi
Сохраните его как toggle_layout.sh, сделайте исполняемым (chmod +x toggle_layout.sh) и привяжите к сочетанию клавиш или иконке на панели.
4. Автоматическое переключение по активному окну. С помощью утилиты xdotool и скрипта можно менять раскладку в зависимости от открытого приложения. Например, чтобы в Telegram всегда была русская раскладка:
#!/bin/bash
while true; do
active_window=$(xdotool getactivewindow getwindowname)
if [[ "$active_window" == "Telegram" ]]; then
setxkbmap ru
else
setxkbmap us
fi
sleep 1
done
Запускайте скрипт в фоне при старте системы.
FAQ: Частые вопросы по смене раскладки в Linux
Как добавить язык, которого нет в списке по умолчанию?
Если нужной раскладки (например, украинской или белорусской) нет в графических настройках, установите её через терминал:
- Проверьте доступные раскладки:
localectl list-keymaps | grep -i "ua" - Если раскладка есть, активируйте её:
setxkbmap -layout "us,ua" -option "grp:alt_shift_toggle" - Если раскладки нет, установите пакет с дополнительными языками:
sudo apt install console-data # Debian/Ubuntusudo dnf install kbd # Fedora
После этого язык появится в графических настройках.
Почему после обновления системы сбились настройки раскладки?
Это типичная проблема при обновлении пакетов, связанных с xkb или ibus. Чтобы восстановить настройки:
- Сбросьте конфигурацию
setxkbmap:setxkbmap -layout us,ru -option grp:alt_shift_toggle - Проверьте, не сбросились ли настройки в файлах:
~/.config/dconf/user(для GNOME);~/.config/kxkbrc(для KDE).
Если проблема повторяется, зафиксируйте настройки в файле автозагрузки (например, ~/.xprofile).
Можно ли сделать разные раскладки для разных приложений?
Да, но это требует дополнительных утилит. Самый простой способ — использовать xdotool в связке со скриптом, который отслеживает активное окно и меняет раскладку. Пример скрипта:
#!/bin/bash
while true; do
window=$(xdotool getactivewindow getwindowname)
if [[ "$window" == "LibreOffice" ]]; then
setxkbmap us
elif [[ "$window" == "Telegram" ]]; then
setxkbmap ru
fi
sleep 1
done
Запустите скрипт в фоне при старте системы. Для более сложных правил можно использовать wmctrl или написать расширение для GNOME Shell.
Как отключить автоматическое переключение раскладки при вводе пароля?
Некоторые дистрибутивы (например, Ubuntu) автоматически переключают раскладку на английскую при вводе пароля в sudo или при входе в систему. Чтобы отключить это поведение:
- Отредактируйте файл
/etc/default/keyboard: - Найдите строку
XKBOPTIONSи удалите из неё параметры вродеgrp:alt_shift_toggle. - Добавьте строку:
XKBOPTIONS="grp:win_space_toggle"(замените на нужное сочетание).
- Обновите конфигурацию:
sudo dpkg-reconfigure keyboard-configuration
После перезагрузки автоматическое переключение при вводе пароля отключится.
Как настроить переключение раскладки на Caps Lock в i3 или Sway?
В тайловых оконных менеджерах вроде i3 или Sway настройка раскладки осуществляется через конфигурационный файл. Откройте ~/.config/i3/config (или ~/.config/sway/config) и добавьте строки:
# Переключение на русскую раскладку
bindsym Caps_Lock exec --no-startup-id setxkbmap -layout ru
Переключение на английскую раскладку
bindsym Shift+Caps_Lock exec --no-startup-id setxkbmap -layout us
Альтернатива: переключение между двумя раскладками
bindsym $mod+space exec --no-startup-id setxkbmap -option grp:toggle
После сохранения файла перезагрузите i3 (Mod+Shift+R) или Sway (Mod+Shift+C).