Добавление раскладки клавиатуры на Raspberry Pi: полное руководство

Мини-компьютер Raspberry Pi стал незаменимым инструментом для энтузиастов, разработчиков и даже офисных пользователей. Однако после первой установки операционной системы многие сталкиваются с неожиданной проблемой: система игнорирует родную раскладку клавиатуры или предлагает только английскую. Это создаёт дискомфорт при наборе текста, особенно если вы работаете с кириллицей или специальными символами.

В отличие от традиционных ПК, где смена языка происходит за два клика, на Raspberry Pi этот процесс требует ручной настройки через консоль или графический интерфейс. Причём методы отличаются в зависимости от версии ОС: Raspberry Pi OS (ранее Raspbian), Ubuntu Server или Debian. В этой статье мы разберём все актуальные способы — от редактирования конфигурационных файлов до использования утилиты raspi-config, а также решим типичные ошибки, такие как "сбитые" символы после переключения или отсутствие индикатора языка.

Особое внимание уделим нюансам для разных моделей Raspberry Pi (от Pi 3 до Pi 5) и версий ОС. Если вы подключаетесь к устройству по SSH или используете его в режиме headless (без монитора), вам пригодятся команды для удалённой настройки. А для тех, кто предпочитает графический интерфейс, мы покажем, как настроить переключение раскладок через меню Desktop Environment.

1. Подготовка: проверка текущей раскладки и кодировки

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

Выполните в терминале команду:

setxkbmap -query

Она выведет текущие настройки, например:

rules:      evdev

model: pc105

layout: us

variant: ,

options:

Если в поле layout указано us, значит активна американская раскладка. Обратите также внимание на поле model — оно должно соответствовать вашей физической клавиатуре (например, pc104 для ноутбуков, pc105 для стандартных клавиатур).

📊 Какую ОС вы используете на Raspberry Pi?
Raspberry Pi OS (32-bit)
Raspberry Pi OS (64-bit)
Ubuntu Server
Debian
Другую

Проверьте кодировку локали командой:

locale

В выводе найдите строки LANG и LC_CTYPE. Для корректной работы с кириллицей они должны содержать UTF-8, например:

LANG=ru_RU.UTF-8

LC_CTYPE="ru_RU.UTF-8"

⚠️ Внимание: Если в выводе locale есть строка POSIX или C, это означает, что локаль не настроена. В таком случае после добавления раскладки символы могут отображаться как ????.

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

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

Выполните в терминале:

sudo raspi-config

Далее:

  1. Перейдите в Localisation Options (навигация клавишами /, выбор — Enter).
  2. Выберите Keyboard.
  3. В списке моделей клавиатур укажите вашу (обычно Generic 105-key (Intl) PC).
  4. На вопрос о раскладке выберите OtherRussian (или другой нужный язык).
  5. Укажите вариант раскладки (например, Russian - Winkeys для стандартной русской).
  6. Настройте комбинацию для переключения (обычно Alt+Shift или Ctrl+Shift).
  7. Сохраните изменения и перезагрузите систему.

Обновите систему командой sudo apt update && sudo apt upgrade|

Подключите клавиатуру напрямую к Raspberry Pi (не по USB-хабу)|

Убедитесь, что у вас есть права sudo (введите sudo whoami — должно вернуть root)|

Сделайте резервную копию текущих настроек командой cp /etc/default/keyboard /etc/default/keyboard.bak

-->

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

setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle"
⚠️ Внимание: В некоторых версиях Raspberry Pi OS Lite (без графического интерфейса) утилита raspi-config может не сохранять настройки раскладки в файле /etc/default/keyboard. В этом случае используйте метод ручного редактирования (см. следующий раздел).

3. Ручное редактирование конфигурационного файла

Если raspi-config не помог или вы используете другую ОС (например, Ubuntu Server), настройте раскладку вручную через файл /etc/default/keyboard.

Откройте файл в редакторе nano:

sudo nano /etc/default/keyboard

Найдите строки и измените их согласно таблице ниже:

Параметр Значение для английской + русской раскладки Описание
XKBMODEL "pc105" Модель клавиатуры (105 клавиш для стандартной PC-клавиатуры)
XKBLAYOUT "us,ru" Список раскладок (первая — основная, вторая — дополнительная)
XKBVARIANT "" или "winkey" Вариант раскладки (например, winkey для русской с расположением клавиш как в Windows)
XKBOPTIONS "grp:alt_shift_toggle,grp_led:scroll" Опции: переключение по Alt+Shift и индикация на Scroll Lock

Пример готового файла:

# Keyboard configuration file

XKBMODEL="pc105"

XKBLAYOUT="us,ru"

XKBVARIANT=""

XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"

BACKSPACE="guess"

Сохраните изменения (Ctrl+OEnter) и закройте редактор (Ctrl+X). Затем примените настройки:

sudo setupcon

4. Настройка переключения раскладок в графическом интерфейсе

Если вы используете Raspberry Pi OS Desktop (с графической оболочкой PIXEL), можно настроить раскладки через меню:

Шаги:

  1. Откройте главное меню (значок малины в левом верхнем углу).
  2. Перейдите в PreferencesMouse and Keyboard Settings.
  3. Во вкладке Keyboard нажмите Keyboard Layout.
  4. Нажмите Add и выберите нужный язык (например, Russian).
  5. Установите галочку Use system defaults, если хотите использовать настройки из /etc/default/keyboard.
  6. На вкладке Options настройте комбинацию для переключения (например, Alt+Shift).

В графическом режиме также доступен индикатор текущей раскладки на панели задач. Если он не отображается:

  • 🔹 Кликните правой кнопкой по панели задач → Add / Remove Panel Items.
  • 🔹 Добавьте Keyboard Layout Switcher.
  • 🔹 Настройте отображение флага или аббревиатуры языка.

Если после настройки символы отображаются некорректно (например, ???? вместо кириллицы), проверьте шрифты в системе. Установите пакет с поддержкой кириллицы:

sudo apt install fonts-freefont-ttf ttf-mscorefonts-installer

5. Решение типичных проблем

Даже после правильной настройки могут возникать ошибки. Разберём самые распространённые:

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

Причина: настройки не применяются в виртуальных консолях (ttY1–ttY6). Решение:

sudo dpkg-reconfigure keyboard-configuration

В процессе выберите:

  • 🔹 Модель клавиатуры: Generic 105-key PC.
  • 🔹 Раскладку: Russian (или другую нужную).
  • 🔹 Комбинацию переключения: Alt+Shift.

5.2. Не работает переключение в терминале

Если в графическом интерфейсе раскладки переключаются, но в терминале (Ctrl+Alt+F1) — нет, выполните:

sudo loadkeys ru

Чтобы сделать это постоянно, добавьте команду в /etc/rc.local (перед строкой exit 0).

5.3. Символы набираются неверно (например, "й" печатает "q")

Это происходит, если физическая раскладка клавиатуры не совпадает с настроенной в системе. Проверьте:

  • 🔹 Физическую модель клавиатуры (нажмите клавишу слева от 1 — если это `~, то us; если ё, то ru).
  • 🔹 Параметр XKBMODEL в /etc/default/keyboard (для ноутбуков может потребоваться pc104).
Что делать, если после обновления системы раскладка слетела?

После обновления ядра или пакетов локализации (locales) настройки клавиатуры могут сброситься. Восстановите их:

1. Проверьте, не изменился ли файл /etc/default/keyboard (сравните с резервной копией).

2. Переустановите пакет keyboard-configuration:

sudo apt install --reinstall keyboard-configuration

3. Примените настройки заново:

sudo dpkg-reconfigure keyboard-configuration

6. Настройка раскладки для Ubuntu Server на Raspberry Pi

Если вы используете Ubuntu Server (например, на Raspberry Pi 4/5), процесс отличается от Raspberry Pi OS. Здесь нет raspi-config, поэтому настройка ведётся через localectl.

Проверьте текущие настройки:

localectl status

Добавьте русскую раскладку:

sudo localectl set-keymap ru

Для нескольких раскладок (например, английская + русская) отредактируйте файл:

sudo nano /etc/default/keyboard

И добавьте:

XKBLAYOUT="us,ru"

XKBOPTIONS="grp:alt_shift_toggle"

Примените изменения:

sudo setupcon --save

В Ubuntu Server также может потребоваться установить пакеты локализации:

sudo apt install locales

sudo dpkg-reconfigure locales

В списке выберите ru_RU.UTF-8.

⚠️ Внимание: В Ubuntu Server 22.04+ для Raspberry Pi может отсутствовать пакет keyboard-configuration. В этом случае используйте только localectl и ручное редактирование /etc/default/keyboard.

7. Горячие клавиши и альтернативные методы переключения

По умолчанию в Raspberry Pi OS переключение раскладок настроено на Alt+Shift, но вы можете изменить его на любое другое сочетание. Доступные опции:

Опция Описание Пример для XKBOPTIONS
grp:alt_shift_toggle Переключение по Alt+Shift (нажатие и отпускание) "grp:alt_shift_toggle"
grp:ctrl_shift_toggle Переключение по Ctrl+Shift "grp:ctrl_shift_toggle"
grp:win_space_toggle Переключение по Win+Пробел "grp:win_space_toggle"
grp:caps_toggle Переключение по Caps Lock "grp:caps_toggle"
grp_led:scroll Индикация текущей раскладки на Scroll Lock "grp:alt_shift_toggle,grp_led:scroll"

Чтобы применить новую комбинацию, отредактируйте /etc/default/keyboard и выполните:

sudo setupcon

Для временного переключения (до перезагрузки) используйте:

setxkbmap -option "grp:ctrl_shift_toggle"
alias ru='setxkbmap ru'

alias us='setxkbmap us'

Теперь можно переключаться командами ru и us.-->

8. Проверка и тестирование раскладки

После настройки проверьте работу раскладок:

  • 🔹 В графическом интерфейсе: откройте текстовый редактор (Leafpad или Geany) и попробуйте набрать текст на обоих языках.
  • 🔹 В терминале: выполните cat > test.txt, наберите текст, затем Ctrl+C. Проверьте содержимое файла: cat test.txt.
  • 🔹 В SSH: подключитесь с другого устройства и проверьте ввод символов.

Если символы отображаются как ????:

  1. Проверьте кодировку терминала: она должна быть UTF-8.
  2. Установите шрифты с поддержкой кириллицы: sudo apt install fonts-dejavu-core.
  3. Для SSH-клиентов (например, PuTTY) настройте кодировку в параметрах подключения: Window → Translation → UTF-8.

Важно: На Raspberry Pi 5 с 64-битной ОС может потребоваться дополнительная настройка драйвера клавиатуры для USB-устройств с нестандартными раскладками (например, эргономичных клавиатур). В этом случае установите пакет xkb-data последней версии:

sudo apt install xkb-data

sudo dpkg-reconfigure xkb-data

FAQ: Частые вопросы

Можно ли добавить больше двух раскладок?

Да, в файле /etc/default/keyboard укажите нужные раскладки через запятую, например:

XKBLAYOUT="us,ru,de"

Переключение будет цикличным: US → RU → DE → US.

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

Поменяйте порядок раскладок в XKBLAYOUT:

XKBLAYOUT="ru,us"

Первая раскладка в списке становится основной.

Почему не работает индикатор языка на панели задач?

Убедитесь, что в XKBOPTIONS указана опция grp_led:scroll или grp_led:caps. Если индикатор всё равно не появляется:

  1. Перезапустите графическую оболочку: sudo systemctl restart lightdm.
  2. Проверьте, установлен ли пакет lxpanel (для PIXEL): sudo apt install lxpanel.
Как настроить раскладку для Bluetooth-клавиатуры?

Для Bluetooth-клавиатур процесс аналогичный, но предварительно убедитесь, что устройство подключено:

bluetoothctl

power on

agent on

scan on

pair <MAC-адрес>

connect <MAC-адрес>

После подключения настройте раскладку как для обычной клавиатуры. Если символы набираются неверно, проверьте модель клавиатуры в XKBMODEL (например, для Apple Magic Keyboard может потребоваться macintosh).

Где взять список всех доступных раскладок и вариантов?

Посмотрите список поддерживаемых раскладок командой:

localectl list-keymaps

Для вариантов (например, phonetic для русской фонетической раскладки):

ls /usr/share/X11/xkb/symbols/

Файлы с расширением .lst содержат описания вариантов.