Как изменить раскладку клавиатуры в Ubuntu: полное руководство

Если после установки Ubuntu или обновления системы вы обнаружили, что раскладка клавиатуры сбилась на английскую, а привычное сочетание Alt+Shift не переключает языки — проблема решается за 2-3 клика. Чаще всего это происходит из-за сброса настроек GNOME или конфликта с пользовательскими конфигурациями в ~/.config/dconf/. В 90% случаев достаточно добавить русскую раскладку через графический интерфейс и назначить удобное сочетание клавиш.

Некоторые пользователи сталкиваются с ситуацией, когда раскладка меняется сама по себе при перезагрузке или после подключения внешней клавиатуры. Это связано с автоматическим определением раскладки по региональным настройкам системы. В таких случаях требуется не только добавить нужный язык, но и зафиксировать его как основной в настройках Ubuntu. Ниже разберём все способы — от элементарных до продвинутых, включая исправление багов через терминал.

⚠️ Внимание: Если вы используете Ubuntu Server без графической оболочки, методы с GUI не подойдут — сразу переходите к разделу про настройку через setxkbmap или редактирование конфигов в /etc/default/keyboard.

1. Быстрое переключение раскладки через панель задач

Самый простой способ сменить раскладку — воспользоваться индикатором языков на верхней панели Ubuntu. Этот метод работает в GNOME (стандартная оболочка Ubuntu 18.04 и новее) и не требует прав администратора.

Шаги:

  • 🔍 Найдите в правом верхнем углу экрана иконку с текущим языком (например, EN или RU).
  • 🖱️ Кликните по ней левой кнопкой мыши — откроется список доступных раскладок.
  • 📋 Выберите нужный язык из выпадающего меню. Если требуемой раскладки нет, переходите к следующему разделу.

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

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

2. Добавление новой раскладки через «Настройки»

Если нужной раскладки нет в системе, её необходимо добавить. Этот метод подходит для Ubuntu 20.04/22.04 и других дистрибутивов на базе GNOME (например, Fedora или Pop!_OS).

Инструкция:

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

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

Добавлен ли язык в разделе "Регион и язык" → "Языки"?|Соответствует ли выбранная раскладка вашей физической клавиатуре (например, WinKeys для ноутбуков)?|Назначено ли сочетание клавиш для переключения (по умолчанию — Super+Space)?|Перезагружен ли сеанс пользователя (иногда требуется для применения изменений)?-->

3. Настройка горячих клавиш для переключения

По умолчанию в Ubuntu для смены раскладки назначено сочетание Super+Space (клавиша с логотипом Windows). Если оно неудобно, можно переназначить его на привычное Alt+Shift или Ctrl+Shift.

Как изменить комбинацию:

  • 🔧 Откройте Настройки → Клавиатура → Горячие клавиши.
  • 📜 Прокрутите список до раздела Типизация.
  • 🔄 Найдите пункт Переключить на следующий источник ввода и кликните по текущему сочетанию.
  • ⌨️ Нажмите новую комбинацию (например, Alt+Shift) и сохраните.

Если нужное сочетание уже занято другой функцией, сначала удалите его из предыдущего пункта в списке горячих клавиш. Например, Ctrl+Shift может конфликтовать с переключением рабочих столов.

Alt+Shift|Ctrl+Shift|Super+Space|Другую (напишите в комментариях)-->

⚠️ Внимание: В некоторых версиях Ubuntu (например, 18.04) горячие клавиши для переключения языков могут сбрасываться после обновления. Чтобы этого избежать, зафиксируйте настройки через dconf:

gsettings set org.gnome.desktop.input-sources xkb-options "['grp:alt_shift_toggle']"

4. Изменение раскладки через терминал (для опытных)

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

Основные команды:

Команда Описание Пример
setxkbmap Мгновенно меняет раскладку для текущего сеанса setxkbmap ru — переключает на русскую
localectl Устанавливает системную раскладку (требует sudo) sudo localectl set-x11-keymap ru
gsettings Настраивает источники ввода в GNOME gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'ru'), ('xkb', 'us')]"
loadkeys Загружает раскладку в консоли (без X-сервера) sudo loadkeys ru

Чтобы изменения сохранялись после перезагрузки, отредактируйте конфигурационный файл:

sudo nano /etc/default/keyboard

Найдите строки и измените их:

XKBMODEL="pc105"

XKBLAYOUT="us,ru"

XKBVARIANT=",winkey"

XKBOPTIONS="grp:alt_shift_toggle"

После сохранения выполните:

sudo dpkg-reconfigure keyboard-configuration
Список кодов раскладок для setxkbmap

af (африкаанс), al (албанский), am (амхарский), ar (арабский), at (австрийский), az (азербайджанский), ba (башкирский), bd (бенгальский), be (белорусский), bg (болгарский), br (бразильский), by (белорусский), ca (канадский многожзычный), cd (конголезский), ch (швейцарский), cn (китайский), cz (чешский), de (немецкий), dk (датский), ee (эстонский), es (испанский), fi (финский), fo (фарерский), fr (французский), gb (британский английский), ge (грузинский), gh (ганский), gr (греческий), hr (хорватский), hu (венгерский), id (индонезийский), ie (ирландский), il (израильский), in (индийский), ir (иранский), is (исландский), it (итальянский), jp (японский), kg (киргизский), kh (кхмерский), kr (корейский), kz (казахский), la (лаосский), lt (литовский), lv (латвийский), ma (марокканский), mk (македонский), mm (бирманский), mn (монгольский), mt (мальтийский), mv (мальдивский), mx (мексиканский), ng (нигерийский), nl (голландский), no (норвежский), np (непальский), ph (филиппинский), pk (пакистанский), pl (польский), pt (португальский), ro (румынский), ru (русский), se (шведский), si (словенский), sk (словацкий), sy (сирийский), th (тайский), tj (таджикский), tm (туркменский), tr (турецкий), tw (тайваньский), ua (украинский), us (американский английский), uz (узбекский), vn (вьетнамский), za (южноафриканский), zw (зимбабвийский)

5. Решение проблем с автоматическим переключением

Иногда Ubuntu самопроизвольно меняет раскладку при:

  • 🖥️ Подключении внешней клавиатуры (система определяет её как новое устройство ввода).
  • 🔄 Перезагрузке или выходе из спящего режима (сбрасываются настройки сеанса).
  • 🐛 Конфликте с расширениями GNOME (например, GSConnect или Dash to Panel).

Как исправить:

  1. Отключите автоматическое определение раскладки:
    gsettings set org.gnome.desktop.input-sources per-window false
  2. Сбросьте настройки GNOME:
    dconf reset -f /org/gnome/desktop/input-sources/
  3. Удалите конфликтующие расширения: Откройте gnome-tweaks → Расширения и отключите подозрительные плагины.

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

xinput list

Затем привяжите к ней постоянную раскладку:

xinput set-prop "Имя устройства" "libinput Send Events Modes Available" 1 1

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

Если все методы не помогли, верните настройки клавиатуры к состоянию «по умолчанию». Это удалит все пользовательские конфигурации и восстановит стандартные сочетания клавиш.

Способы сброса:

  • 🔄 Через dconf (для GNOME):
    dconf reset -f /org/gnome/desktop/input-sources/
  • 📝 Через удаление конфигов:
    rm -rf ~/.config/dconf/user

    После этого требуется перезагрузка!

  • 🖥️ Через переустановку пакета gnome-control-center:
    sudo apt install --reinstall gnome-control-center

⚠️ Внимание: Сброс удалит все настройки клавиатуры, включая пользовательские сочетания клавиш и дополнительные раскладки. Перед выполнением команд сделайте резервную копию:

cp ~/.config/dconf/user ~/.config/dconf/user.bak

7. Особенности для Ubuntu Server и безголовых систем

На серверных версиях Ubuntu (без графического интерфейса) раскладка меняется через консольные утилиты. Основные различия:

  • 📌 Нет индикатора языков — текущую раскладку можно проверить командой localectl status.
  • 🔧 Горячие клавиши не работают — переключение только через setxkbmap.
  • 📂 Конфигурационные файлы хранятся в /etc/default/keyboard и /etc/vconsole.conf.

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

  1. Установите пакет console-data (если отсутствует):
    sudo apt install console-data
  2. Отредактируйте /etc/default/keyboard:
    XKBLAYOUT="us,ru"
    

    XKBVARIANT=",winkey"

    XKBOPTIONS="grp:ctrl_shift_toggle"

  3. Обновите инициализационные файлы:
    sudo dpkg-reconfigure keyboard-configuration
  4. Перезагрузите систему или переподключитесь по SSH.

Для виртуальных машин (например, в VirtualBox или VMware) может потребоваться дополнительная настройка гостевых дополнений, чтобы горячие клавиши не конфликтовали с хост-системой.

FAQ: Частые вопросы по раскладке в Ubuntu

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

Это связано с обновлением пакетов gnome-settings-daemon или ibus. Система сбрасывает пользовательские настройки на дефолтные. Решение:

  1. Откройте Настройки → Регион и язык.
  2. Удалите все источники ввода и добавьте их заново.
  3. Перезагрузите сеанс (Alt+F2 → r).
Как сделать, чтобы раскладка сохранялась при подключении внешней клавиатуры?

По умолчанию Ubuntu определяет раскладку по идентификатору устройства. Чтобы отключить это:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

После этого настройки будут браться из системных конфигов, а не из метаданных клавиатуры.

Можно ли назначить разные раскладки для разных приложений?

Да, но только с помощью сторонних утилит, например:

  • xxkb — расширение для GNOME с поддержкой пер-приложенческих настроек.
  • fcitx — альтернативный фреймворк ввода с гибкими правилами.

Установите их через sudo apt install fcitx и настройте в fcitx-configtool.

Почему не работает переключение через Alt+Shift в Ubuntu 22.04?

В новых версиях GNOME это сочетание конфликтует с переключением окон. Решение:

  1. Откройте Настройки → Клавиатура → Горячие клавиши.
  2. Найдите Переключить на следующий источник ввода и назначьте Alt+Shift.
  3. Отключите Alt+Shift в разделе Навигация по окнам.
Как добавить раскладку, которой нет в списке (например, татарскую)?

Скачайте .xkb-файл раскладки (например, с GitHub) и установите её вручную:

  1. Поместите файл в /usr/share/X11/xkb/symbols/.
  2. Обновите правила XKB:
    sudo dpkg-reconfigure xkb-data
  3. Добавьте раскладку через setxkbmap:
    setxkbmap -layout tt