Как быстро сменить раскладку клавиатуры в Linux: 5 проверенных способов

Смена раскладки клавиатуры в Linux — задача, с которой сталкивается каждый пользователь этой операционной системы. В отличие от Windows или macOS, где настройка языков интуитивно понятна, в дистрибутивах Linux процесс может отличаться в зависимости от используемого окружения рабочего стола (GNOME, KDE Plasma, XFCE) или даже от версии дистрибутива. Эта статья поможет разобраться, как добавить новую раскладку, настроить переключение между языками и устранить типичные проблемы — от отсутствия русского языка в списке до конфликтов горячих клавиш.

Особенность Linux заключается в гибкости: вы можете менять раскладку как через графический интерфейс за несколько кликов, так и через консольные команды для тонкой настройки. Мы рассмотрим оба подхода, а также расскажем, как сохранить настройки при перезагрузке системы и что делать, если клавиатура «забывает» выбранный язык. Отдельное внимание уделим горячим клавишам — их настройка часто вызывает вопросы у новичков.

Если вы используете Linux на ноутбуке с нестандартной клавиатурой (например, Lenovo ThinkPad или Dell XPS), некоторые сочетания клавиш могут работать иначе. В этом случае пригодятся советы по ручной правке конфигурационных файлов. А для тех, кто предпочитает минималистичные решения типа i3wm или Sway, мы подготовили отдельный раздел с командами для терминала.

1. Смена раскладки через графический интерфейс (GUI)

Самый простой способ изменить раскладку — воспользоваться стандартными настройками вашего окружения рабочего стола. Рассмотрим процесс на примере популярных DE: GNOME (используется в Ubuntu, Fedora), KDE Plasma (встречается в Kubuntu, Manjaro KDE) и XFCE (легковесное окружение для Xubuntu или Linux Mint XFCE).

В GNOME алгоритм такой:

  1. Откройте Настройки → Регион и язык.
  2. В разделе Источники ввода нажмите + (Добавить).
  3. В поисковой строке введите название языка (например, Russian) и выберите нужную раскладку (Русская или Русская (фонетическая)).
  4. Нажмите Добавить и закройте окно.

Для переключения между раскладками по умолчанию используется сочетание Super (Win) + Пробел. Изменить его можно в Настройки → Клавиатура → Сочетания клавиш → Переключение источника ввода.

📊 Какое окружение рабочего стола вы используете?
GNOME
KDE Plasma
XFCE
Другое
Не знаю

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

  • 🔹 Перейдите в Системные настройки → Ввод устройств → Раскладка клавиатуры.
  • 🔹 Нажмите Добавить... и выберите язык из списка (например, Russian → Russian (Winkeys) для стандартной раскладки).
  • 🔹 Вкладка Переключение раскладки позволяет настроить горячие клавиши (по умолчанию Alt+Shift или Ctrl+Shift).

Для XFCE инструкция еще проще:

  1. Откройте Настройки → Клавиатура → Макет.
  2. Нажмите Добавить и выберите язык (например, Russian → Russian).
  3. Используйте флажок Использовать сочетания клавиш для переключения макета, чтобы активировать Alt+Shift.
⚠️ Внимание: В некоторых дистрибутивах (например, Linux Mint с Cinnamon) меню настроек может называться иначе — Язык и регион или Языковая поддержка. Если не находите нужный раздел, воспользуйтесь поиском в главном меню.

2. Настройка раскладки через терминал (консоль)

Если графический интерфейс недоступен (например, на сервере без GUI или в минималистичных окружениях типа i3), раскладку можно изменить через терминал. Этот метод также полезен для автоматизации настроек при развертывании системы.

Основные команды для работы с раскладками:

  • 🔹 Просмотр текущей раскладки:
    setxkbmap -query | grep layout
  • 🔹 Смена раскладки на русскую (одноразово, до перезагрузки):
    setxkbmap ru
  • 🔹 Возврат к английской раскладке:
    setxkbmap us
  • 🔹 Добавление нескольких раскладок с переключением по Alt+Shift:
    setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle"

Чтобы настройки сохранялись после перезагрузки, необходимо отредактировать конфигурационный файл /etc/default/keyboard (для систем на базе Debian/Ubuntu) или /etc/X11/xorg.conf.d/00-keyboard.conf (для Arch Linux и производных). Например:

Section "InputClass"

Identifier "system-keyboard"

MatchIsKeyboard "on"

Option "XkbLayout" "us,ru"

Option "XkbOptions" "grp:alt_shift_toggle"

EndSection

После редактирования файла перезапустите дисплейный менеджер (например, lightdm или gdm) или просто перезагрузите систему.

Убедитесь, что пакет xkb-data установлен|Проверьте текущую раскладку командой setxkbmap -query|Отредактируйте конфигурационный файл для постоянных изменений|Перезагрузите дисплейный менеджер или систему

-->

3. Горячие клавиши для переключения раскладки

По умолчанию в большинстве дистрибутивов Linux для переключения между раскладками используется сочетание Super (Win) + ПробелGNOME) или Alt+ShiftKDE и XFCE). Однако эти комбинации можно изменить под свои предпочтения.

Вот как это сделать в разных окружениях:

Окружение Путь к настройкам Сочетание по умолчанию
GNOME Настройки → Клавиатура → Сочетания клавиш → Переключение источника ввода Super + Пробел
KDE Plasma Системные настройки → Ввод устройств → Раскладка клавиатуры → Переключение раскладки Alt+Shift или Ctrl+Shift
XFCE Настройки → Клавиатура → Макет → Опции Alt+Shift
i3/Sway Редактирование файла ~/.config/i3/config или ~/.config/sway/config Настраивается вручную

Для минималистичных оконных менеджеров (например, i3 или Sway) настройка горячих клавиш выполняется через редактирование конфигурационного файла. Добавьте следующую строку в ~/.config/i3/config:

bindsym $mod+space exec --no-startup-id setxkbmap -layout "us,ru" -option "grp:toggle"

Где $mod — это ваша модификаторная клавиша (обычно Win или Alt).

⚠️ Внимание: Если после изменения горячих клавиш переключение раскладки перестало работать, проверьте конфликты с другими сочетаниями. Например, в KDE комбинация Ctrl+Shift может использоваться для переключения между окнами. В этом случае выберите другое сочетание, например, Caps Lock.

4. Решение типичных проблем с раскладкой

Даже после правильной настройки раскладки пользователи Linux иногда сталкиваются с неполадками. Рассмотрим самые распространенные из них и способы их устранения.

Проблема 1: Раскладка сбрасывается после перезагрузки.

  • 🔹 Причина: Настройки не сохранены в конфигурационном файле.
  • 🔹 Решение: Отредактируйте /etc/default/keyboard (для Debian/Ubuntu) или создайте файл /etc/X11/xorg.conf.d/00-keyboard.conf (для Arch Linux) с нужными параметрами.

Проблема 2: Не работает переключение раскладки в некоторых приложениях (например, в Terminal или LibreOffice).

  • 🔹 Причина: Конфликт с локальными настройками приложения или проблема с IBus/Fcitx.
  • 🔹 Решение: Перезапустите менеджер ввода:
    ibus restart

    или для Fcitx:

    fcitx-autostart

Проблема 3: Отсутствует нужная раскладка в списке (например, украинская или белорусская).

  • 🔹 Причина: Не установлен пакет с локалями для этого языка.
  • 🔹 Решение: Установите пакет локалей:
    sudo apt install locales

    Затем сгенерируйте нужную локаль:

    sudo locale-gen uk_UA.UTF-8

    И обновите настройки:

    sudo dpkg-reconfigure locales
sudo apt install --reinstall xkb-data

Это часто решает проблемы с поврежденными конфигурационными файлами.-->

5. Настройка раскладки для специфических клавиатур (ноутбуки, механические клавиатуры)

Пользователи ноутбуков с нестандартными клавиатурами (например, Lenovo ThinkPad с TrackPoint или MacBook с Touch Bar) могут столкнуться с тем, что некоторые клавиши работают некорректно. То же касается механических клавиатур с дополнительными мультимедийными кнопками.

Для решения этих проблем используйте утилиту xev, которая показывает коды нажатых клавиш. Установите ее командой:

sudo apt install x11-utils

Затем запустите:

xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.keycode \([0-9]\). (., \(.\)).$/\1 \2/p'

Эта команда выведет коды нажатых клавиш. Например, если клавиша Print Screen не работает, вы можете переназначить ее через xmodmap:

xmodmap -e "keycode 107 = Print"

Для постоянного переназначения добавьте команду в файл ~/.xinitrc или ~/.xsession.

Если вы используете механическую клавиатуру с дополнительными слоями (например, Keychron или Ducky), может потребоваться ручная настройка через setxkbmap с указанием модели:

setxkbmap -model "pc105" -layout "us,ru" -variant ",winkeys" -option "grp:alt_shift_toggle"
Как настроить раскладку на MacBook под Linux?

На ноутбуках Apple клавиатура имеет нестандартную разметку (например, клавиша Command вместо Win). Чтобы раскладка работала корректно, используйте модель mac в setxkbmap:

setxkbmap -model "mac" -layout "us,ru" -option "grp:alt_shift_toggle"

Также установите пакет mbpfan для корректной работы функциональных клавиш (регулировка яркости, громкости и т.д.).

6. Альтернативные методы управления раскладкой

Помимо стандартных средств, в Linux существуют альтернативные утилиты для управления раскладками. Они полезны, если штатные настройки не устраивают или требуется расширенная функциональность.

1. IBus — популярный менеджер ввода, поддерживающий не только раскладки, но и методы ввода для азиатских языков (например, Pinyin для китайского). Установите его командой:

sudo apt install ibus

Затем добавьте нужные раскладки через:

ibus-setup

2. Fcitx — еще один мощный менеджер ввода, часто используемый в Arch Linux и его производных. Установка:

sudo pacman -S fcitx fcitx-configtool fcitx-im

После установки добавьте в ~/.xprofile строки:

export GTK_IM_MODULE=fcitx

export QT_IM_MODULE=fcitx

export XMODIFIERS=@im=fcitx

3. GNOME Tweaks — утилита для тонкой настройки GNOME, позволяющая менять раскладки и горячие клавиши. Установите ее:

sudo apt install gnome-tweaks

Затем откройте Дополнительные настройки → Клавиатура и мышь → Дополнительные параметры раскладки.

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

7. Автоматизация смены раскладки с помощью скриптов

Если вам часто приходится переключаться между раскладками в зависимости от задачи (например, английская для программирования, русская для переписки), можно автоматизировать процесс с помощью скриптов.

Пример скрипта на Bash, который переключает раскладку на русскую при открытии терминала:

#!/bin/bash

Переключение на русскую раскладку

setxkbmap -layout "ru"

Запуск терминала (например, gnome-terminal)

gnome-terminal

Сохраните скрипт в файл (например, ~/scripts/ru_terminal.sh), сделайте его исполняемым:

chmod +x ~/scripts/ru_terminal.sh

И добавьте ярлык на рабочий стол или в меню приложений.

Для более сложных сценариев (например, автоматическое переключение раскладки в зависимости от активного окна) можно использовать утилиту xdotool. Установите ее:

sudo apt install xdotool

Затем создайте скрипт, который будет отслеживать активное окно и менять раскладку:

#!/bin/bash

Получаем ID активного окна

active_window=$(xdotool getactivewindow)

Получаем класс окна

window_class=$(xdotool getwindowclassname "$active_window")

Если активное окно - терминал, переключаем на английскую раскладку

if [[ "$window_class" == "terminal" ]]; then

setxkbmap -layout "us"

else

setxkbmap -layout "ru"

fi

8. Сброс настроек раскладки к заводским

Если после многочисленных экспериментов с настройками раскладка перестала работать корректно, проще всего сбросить все параметры к заводским. Это можно сделать несколькими способами.

Способ 1: Через графический интерфейс

  • 🔹 В GNOME: удалите все добавленные раскладки в Настройки → Регион и язык и добавьте их заново.
  • 🔹 В KDE: нажмите Сбросить к умолчаниям в разделе Раскладка клавиатуры.

Способ 2: Через терминал

Удалите конфигурационные файлы, отвечающие за настройки клавиатуры:

sudo rm /etc/default/keyboard

sudo rm -rf /etc/X11/xorg.conf.d/keyboard

Затем переустановите пакет keyboard-configuration:

sudo apt install --reinstall keyboard-configuration

Способ 3: Пересоздание конфигурационных файлов

Если проблема связана с поврежденными файлами в домашнем каталоге, удалите:

rm -rf ~/.config/dconf/

И перезагрузите систему. Это сбросит все пользовательские настройки GNOME (включая раскладку) к стандартным.

⚠️ Внимание: Удаление файлов в ~/.config/dconf/ сбросит все настройки GNOME, включая темы оформления, расширения и параметры рабочего стола. Перед выполнением этой операции сделайте резервную копию каталога.

FAQ: Частые вопросы о смене раскладки в Linux

Как добавить раскладку, которой нет в стандартном списке (например, татарскую или чувашскую)?

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

localectl list-x11-keymap-layouts

Если нужной раскладки нет в списке, установите дополнительные пакеты локалей:

sudo apt install locales-all

Затем добавьте раскладку через setxkbmap:

setxkbmap -layout "us,tt"  # для татарской раскладки
Почему после обновления системы исчезла возможность переключать раскладку?

Это частая проблема после обновления пакетов xkb-data или ibus. Попробуйте:

  1. Перезапустить менеджер ввода:
    ibus restart
  2. Переустановить пакеты:
    sudo apt install --reinstall xkb-data ibus
  3. Проверьте, не сбросились ли настройки в /etc/default/keyboard.
Можно ли настроить разные раскладки для разных приложений?

Да, но для этого потребуется использовать скрипты или специализированные утилиты вроде xxkb. Пример скрипта для автоматического переключения на английскую раскладку в терминале:

#!/bin/bash

# Получаем ID активного окна

win_id=$(xdotool getactivewindow)

# Получаем имя класса окна

win_class=$(xdotool getwindowclassname "$win_id")

# Если класс содержит "terminal", переключаем на английскую

if [[ "$win_class" == "terminal" ]]; then

setxkbmap -layout "us"

fi

Для работы скрипта установите xdotool:

sudo apt install xdotool
Как сделать так, чтобы раскладка автоматически переключалась при вставке текста из буфера обмена?

Для этого можно использовать утилиту autokey, которая позволяет создавать правила для автоматического переключения раскладки при определенных действиях. Установите ее:

sudo apt install autokey-gtk

Затем создайте новое правило:

  1. Откройте Autokey и выберите Новое → Скрипт.
  2. В качестве триггера укажите Горячая клавиша (например, Ctrl+V).
  3. В теле скрипта добавьте:
    import subprocess
    

    subprocess.call(["setxkbmap", "-layout", "us"]) # или "ru"

Теперь при нажатии Ctrl+V раскладка будет автоматически переключаться на указанную.

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

Проблема связана с тем, что многие игры (особенно через Steam или Wine) захватывают клавиатуру на низком уровне, игнорируя настройки системы. Решения:

  • 🔹 Используйте внутренние настройки игры для смены языка.
  • 🔹 Запускайте игру с параметром -nojoy (если поддерживается), чтобы отключить захват устройств ввода.
  • 🔹 Настройте отдельную горячую клавишу для переключения раскладки через AutoHotkey (для Wine) или xbindkeys.

Для Steam также можно попробовать отключить Steam Input в настройках игры.