Как переключить раскладку клавиатуры на Raspberry Pi: пошаговое руководство

Если после установки Raspberry Pi OS (ранее Raspbian) клавиатура печатает не те символы, а сочетания Alt+Shift или Ctrl+Space не работают — проблема в неверных настройках раскладки. Чаще всего это происходит из-за автоматического выбора английской раскладки (us) при первом запуске или после обновления системы. В 90% случаев достаточно перенастроить параметры в графическом интерфейсе или отредактировать конфигурационный файл /etc/default/keyboard вручную.

Особенность Raspberry Pi — использование легковесного окружения рабочего стола PIXEL (на базе LXDE), где стандартные методы смены языка могут не срабатывать. Например, в консольном режиме (tty) переключение раскладки требует установки дополнительного ПО вроде loadkeys, а в графическом интерфейсе — корректировки настроек iBus или fcitx. Ниже разберём все актуальные способы для Raspberry Pi 4/5 и Zero 2 W на базе Raspberry Pi OS Bullseye/Bookworm.

1. Проверка текущей раскладки и диагностика проблемы

Прежде чем менять настройки, убедитесь, что проблема именно в раскладке, а не в драйвере клавиатуры. Выполните в терминале команду:

cat /etc/default/keyboard

Обратите внимание на параметры:

  • 🔹 XKBMODEL — модель клавиатуры (обычно pc105 для стандартных USB-клавиатур).
  • 🔹 XKBLAYOUT — основная раскладка (например, us, ru, de).
  • 🔹 XKBVARIANT — вариант раскладки (например, phonetic для русской фонетической).
  • 🔹 XKBOPTIONS — дополнительные опции (здесь может быть прописано сочетание для переключения, например grp:alt_shift_toggle).

Если в выводе указано XKBLAYOUT="us", а вам нужна русская раскладка — проблема в конфигурации. Если параметры верные, но переключение не работает, проверьте:

  • 🔌 Подключена ли клавиатура к USB-порту Raspberry Pi (на некоторых моделях Zero требуется OTG-адаптер).
  • 🖥️ Работает ли клавиатура в BIOS другого ПК (исключите аппаратную неисправность).
  • 🔄 Перезагрузите устройство — иногда изменения применяются только после ребута.
⚠️ Внимание: Если в выводе команды cat /etc/default/keyboard отсутствует файл или параметры — ваша система использует устаревший метод настройки (например, через raspi-config). Переходите к методу 2.

2. Настройка раскладки через raspi-config (рекомендуемый способ)

Самый надёжный способ изменить раскладку — использовать встроенный инструмент конфигурации raspi-config. Он автоматически обновляет все необходимые файлы и применяет изменения без ручного редактирования. Выполните:

sudo raspi-config

Далее:

  1. Выберите пункт 5 Localisation OptionsI3 Change Keyboard Layout.
  2. В списке Keyboard model оставьте Generic 105-key (Intl) PC (или выберите свою модель).
  3. В Keyboard layout укажите страну (например, Russian для русской раскладки).
  4. В Key to toggle layout выберите сочетание клавиш (рекомендуется Alt+Shift или Caps Lock).
  5. Сохраните изменения и перезагрузите Raspberry Pi.

После перезагрузки проверьте работу раскладки в терминале и графическом интерфейсе. Если сочетание клавиш не срабатывает, вернитесь в raspi-config и повторите шаги, выбрав другое сочетание (например, Ctrl+Shift).

Подключена ли клавиатура к USB-порту Raspberry Pi?|Есть ли доступ к терминалу (локальному или по SSH)?|Сделан ли бэкап важных файлов (на случай сбоя)?|Выбран ли правильный язык системы в настройках локализации?-->

3. Ручное редактирование файла /etc/default/keyboard

Если raspi-config не помог или вы предпочитаете ручную настройку, отредактируйте конфигурационный файл:

sudo nano /etc/default/keyboard

Приведите файл к следующему виду (пример для русской и английской раскладок с переключением по Alt+Shift):

XKBMODEL="pc105"

XKBLAYOUT="us,ru"

XKBVARIANT=","

XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"

Расшифровка параметров:

Параметр Значение Пример
XKBLAYOUT Список раскладок через запятую (первая — основная). us,ru или de,fr
XKBVARIANT Варианты раскладок (например, фонетическая для русского). phonetic или оставьте пустым
XKBOPTIONS Опции переключения и индикации. grp:alt_shift_toggle или grp:ctrl_shift_toggle
grp_led Индикатор активной раскладки (например, scroll для Scroll Lock). grp_led:scroll или grp_led:caps

После сохранения (Ctrl+OEnterCtrl+X) перезагрузите систему:

sudo reboot
⚠️ Внимание: Если после редактирования файла клавиатура перестала работать вовсе, подключитесь к Raspberry Pi по SSH с другого устройства и верните исходные настройки или воспользуйтесь командой sudo dpkg-reconfigure keyboard-configuration.

4. Настройка раскладки в графическом интерфейсе (PIXEL)

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

  1. Откройте Main MenuPreferencesMouse and Keyboard Settings.
  2. Перейдите на вкладку Keyboard.
  3. Нажмите Add... и выберите нужный язык (например, Russian).
  4. Установите галочку Use keyboard layout options и настройте сочетание для переключения.

В Raspberry Pi OS Bookworm (на базе Debian 12) вместо PIXEL может использоваться Wayland, где настройки раскладки управляются через iBus или fcitx. Если стандартный метод не сработал:

  • 🐧 Установите iBus:
    sudo apt install ibus
  • 🔄 Добавьте раскладку через ibus-setup (доступно в меню Preferences).
  • 🔧 Перезапустите iBus:
    ibus restart

5. Переключение раскладки в консольном режиме (tty)

В текстовой консоли (tty1tty6, доступ по Ctrl+Alt+F1F6) раскладка управляется утилитой loadkeys. Установите её:

sudo apt install console-data console-setup

Затем загрузите нужную раскладку (например, русскую):

sudo loadkeys ru

Для постоянного применения отредактируйте файл /etc/rc.local (создайте его, если отсутствует):

sudo nano /etc/rc.local

Добавьте строку перед exit 0:

/usr/bin/loadkeys ru

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

  • 🔹 loadkeys us — английская.
  • 🔹 loadkeys ru — русская.
  • 🔹 loadkeys de — немецкая.
⚠️ Внимание: В консольном режиме не работают горячие клавиши для переключения — только ручная смена через loadkeys. Для автоматического переключения потребуется скрипт на Bash с привязкой к сочетанию клавиш (например, через xbindkeys в графическом режиме).

Английскую (us)|Русскую (ru)|Немецкую (de)|Французскую (fr)|Другую-->

6. Устранение распространённых ошибок

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

Ошибка 1: Не работает сочетание клавиш

Причина: конфликт с другими горячими клавишами или неверные опции в XKBOPTIONS.

  • 🔧 Проверьте текущие опции:
    setxkbmap -query
  • 🔄 Принудительно установите сочетание:
    setxkbmap -option grp:alt_shift_toggle
  • 📝 Добавьте команду в автозагрузку (для графического режима).

Ошибка 2: Раскладка сбрасывается после перезагрузки

Причина: не сохранены настройки в /etc/default/keyboard или конфликт с lightdm.

  • 🔧 Переконфигурируйте клавиатуру:
    sudo dpkg-reconfigure keyboard-configuration
  • 🔄 Переустановите пакет keyboard-configuration:
    sudo apt install --reinstall keyboard-configuration

Ошибка 3: В консоли отображаются неверные символы

Причина: неверный шрифт или кодировка консоли.

  • 🔧 Установите шрифт с поддержкой кириллицы:
    sudo apt install console-cyrillic
  • 🔄 Измените кодировку консоли в /etc/default/console-setup:
    CHARMAP="UTF-8"
Список поддерживаемых раскладок в Raspberry Pi OS

В системе доступны следующие раскладки (полный список в /usr/share/X11/xkb/rules/base.lst):

- us (Английская)

- ru (Русская)

- de (Немецкая)

- fr (Французская)

- es (Испанская)

- it (Итальянская)

- ua (Украинская)

- by (Белорусская)

- kz (Казахская)

Для фонетических вариантов используйте параметр XKBVARIANT (например, "ru" + "phonetic").

7. Альтернативные методы: xkb, setxkbmap, fcitx

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

Метод 1: setxkbmap (временное изменение)

Команда позволяет менять раскладку "на лету" без редактирования конфигов. Примеры:

  • 🔹 Установить русскую раскладку:
    setxkbmap -layout ru
  • 🔹 Добавить две раскладки (us + ru) с переключением по Alt+Shift:
    setxkbmap -layout us,ru -option grp:alt_shift_toggle
  • 🔹 Посмотреть текущие настройки:
    setxkbmap -print -verbose 10

Метод 2: fcitx (для сложных конфигураций)

Fcitx — продвинутая система ввода, поддерживающая несколько языков, темы и плагины. Установите её:

sudo apt install fcitx fcitx-config-gtk fcitx-ui-classic

Затем:

  1. Добавьте в ~/.xprofile строки:
    export GTK_IM_MODULE=fcitx
    

    export QT_IM_MODULE=fcitx

    export XMODIFIERS=@im=fcitx

    fcitx-autostart

  2. Перезагрузитесь и настройте fcitx через графический интерфейс (fcitx-configtool).

Метод 3: Ручное редактирование xkb

Для опытных пользователей: скопируйте стандартную раскладку и модифицируйте её:

mkdir -p ~/.xkb/symbols

cp /usr/share/X11/xkb/symbols/us ~/.xkb/symbols/custom

nano ~/.xkb/symbols/custom

Затем примените её:

setxkbmap -layout custom

FAQ: Частые вопросы по раскладке на Raspberry Pi

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

Причиной может быть обновление пакетов keyboard-configuration или xkb-data. Верните настройки через sudo raspi-config или проверьте целостность файла /etc/default/keyboard. Если проблема повторяется, зафиксируйте версию пакета:

sudo apt-mark hold keyboard-configuration

🔹 Как сделать, чтобы индикатор раскладки показывался на панели задач?

В PIXEL по умолчанию нет визуального индикатора. Установите расширение lxpanel:

sudo apt install lxpanel

Затем добавьте апплет Keyboard Layout Switcher через настройки панели (Panel PreferencesAdd Panel Applet).

🔹 Можно ли использовать Caps Lock для переключения раскладки?

Да, для этого отредактируйте XKBOPTIONS в /etc/default/keyboard:

XKBOPTIONS="grp:caps_toggle"

После перезагрузки Caps Lock будет переключать языки. Чтобы отключить стандартное поведение Caps Lock, добавьте:

XKBOPTIONS="grp:caps_toggle,caps:none"

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

Некоторые приложения (особенно на Java или Qt) игнорируют системные настройки. Решения:

  • 🔧 Установите fcitx и настройте его как основной метод ввода.
  • 🔄 Перезапустите приложение после смены раскладки.
  • 📝 Для LibreOffice проверьте настройки в ToolsOptionsLanguage Settings.

🔹 Как настроить раскладку для Bluetooth-клавиатуры?

Bluetooth-клавиатуры настраиваются аналогично USB, но могут требовать дополнительных драйверов. Сначала подключите устройство:

bluetoothctl

scan on

pair [MAC-адрес]

connect [MAC-адрес]

Затем настройте раскладку через raspi-config или /etc/default/keyboard. Если клавиши работают некорректно, обновите прошивку Raspberry Pi:

sudo rpi-update