Установка и настройка раскладки клавиатуры в Ubuntu: полное руководство

Если после установки Ubuntu или обновления системы вы обнаружили, что раскладка клавиатуры сбилась на английскую, отсутствует нужный язык ввода или не работают комбинации для переключения (Alt+Shift/Ctrl+Shift), проблема решается через графический интерфейс или терминал. Чаще всего это происходит из-за сброса настроек GNOME (окружения рабочего стола по умолчанию) или конфликта конфигурационных файлов в /etc/default/keyboard. В 90% случаев достаточно добавить раскладку через «Параметры системы», но для тонкой настройки (например, для Colemak или Dvorak) потребуется редактировать файлы вручную.

В этой инструкции рассмотрим все способы: от базового добавления русского/украинского языка через GUI до ручного прописывания нестандартных раскладок для программистов. Особый акцент сделаем на типичные ошибки — когда система «не видит» новую раскладку или игнорирует горячие клавиши. Все шаги протестированы на Ubuntu 22.04 LTS и 20.04 LTS, но подойдут и для других дистрибутивов на базе Debian (Linux Mint, Pop!_OS).

1. Проверка текущих настроек раскладки

Прежде чем добавлять новую раскладку, убедитесь, что проблема не кроется в сбившихся настройках. Откройте терминал (Ctrl+Alt+T) и выполните команду:

gsettings get org.gnome.desktop.input-sources sources

В ответ вы получите список активных источников ввода в формате ['xkb', 'us'] (где us — английская раскладка) или ['xkb', 'ru+phonetic'] (русская фонетическая). Если список пуст или содержит только us, раскладку придётся добавлять заново. Также проверьте текущую комбинацию для переключения:

gsettings get org.gnome.desktop.input-sources xkb-options

Ожидаемый вывод — что-то вроде ['grp:alt_shift_toggle']. Если массив пуст ([]), горячие клавиши не настроены.

2. Добавление раскладки через графический интерфейс

Самый простой способ — использовать стандартные «Параметры системы». Откройте меню приложений (кнопка Super или значок в левом нижнем углу) и выполните шаги:

  1. Перейдите в «Настройки» → «Регион и язык» (Settings → Region & Language).
  2. В блоке «Источники ввода» нажмите «+» (Добавить).
  3. В строке поиска введите название языка (например, «русский» или «українська»).
  4. Выберите нужный вариант из списка (например, «Русский (Россия)» или «Українська (Україна, фонетична)»).
  5. Нажмите «Добавить» и закройте окно.

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

Как вернуть старую панель переключения языков (до Ubuntu 18.04)

В новых версиях Ubuntu панель с флажками языков скрыта. Чтобы её вернуть, установите расширение GNOME Shell:

sudo apt install gnome-shell-extension-manual

gnome-extensions enable input-source-menu@kgshank.net

После перезагрузки в правом верхнем углу появится классическое меню переключения.

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

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

  1. Откройте «Настройки» → «Клавиатура» → «Ярлыки» (Keyboard Shortcuts).
  2. Прокрутите вниз до раздела «Типизация» (Typing).
  3. Найдите пункт «Переключить на следующий источник ввода» (Switch to next input source).
  4. Кликните по текущей комбинации и нажмите новые клавиши (например, Alt+Shift).

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

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

Допустимые значения для xkb-options:

  • 🔹 grp:alt_shift_toggleAlt+Shift (переключение)
  • 🔹 grp:ctrl_shift_toggleCtrl+Shift (переключение)
  • 🔹 grp:win_space_toggleSuper+Space (по умолчанию)
  • 🔹 grp:caps_toggleCaps Lock как переключатель
📊 Какую комбинацию вы используете для переключения раскладки?
Alt+Shift
Ctrl+Shift
Super+Space
Caps Lock
Другую

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

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

Сначала обновите список доступных раскладок:

sudo apt update

sudo apt install console-data

Затем отредактируйте конфигурационный файл:

sudo nano /etc/default/keyboard

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

Параметр Значение для русской раскладки Значение для украинской
XKBMODEL "pc105" "pc105"
XKBLAYOUT "us,ru" "us,ua"
XKBVARIANT ",phonetic" (опционально) ""
XKBOPTIONS "grp:alt_shift_toggle" "grp:ctrl_shift_toggle"

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

sudo setupcon

🔹 Перезагрузите систему или выполните sudo setupcon

🔹 Проверьте текущую раскладку командой localectl status

🔹 Убедитесь, что горячие клавиши работают в терминале и GUI

🔹 Если раскладка неменилась, проверьте права на файл /etc/default/keyboard

-->

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

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

Причина — конфликт между настройками GNOME и системными файлами. Решение:

  1. Удалите все раскладки через GUI («Настройки» → «Регион и язык»).
  2. Отредактируйте /etc/default/keyboard (см. раздел 4).
  3. Выполните sudo dpkg-reconfigure keyboard-configuration и следуйте инструкциям.

Проблема 2: Горячие клавиши не работают в некоторых приложениях (например, в Terminal или VS Code).

Это связано с тем, что некоторые программы (особенно Electron-приложения) игнорируют системные настройки. Решение:

  • 🔧 Установите расширение GNOME Tweaks и вручную назначьте комбинацию в «Ярлыки клавиатуры».
  • 🔧 Для VS Code добавьте в keybindings.json:
    {
    

    "key": "alt+shift",

    "command": "workbench.action.toggleKeyboardLayout"

    }

Проблема 3: В терминале (tty1tty6) раскладка отличается от GUI.

Терминалы Ubuntu используют отдельные настройки. Чтобы синхронизировать их с графическим интерфейсом:

sudo loadkeys ru  # для русской раскладки

sudo setupcon # применить изменения

6. Добавление нестандартных раскладок (Colemak, Dvorak, программистские)

Для установки альтернативных раскладок (например, Colemak или BÉPO) выполните:

  1. Установите пакет с дополнительными раскладками:
    sudo apt install xkb-data-extra
  2. Добавьте раскладку через GUI («Настройки» → «Регион и язык» → «+» → поиск по названию).
  3. Если нужной раскладки нет, скачайте .xkb-файл и поместите его в /usr/share/X11/xkb/symbols/, затем обновите кеш:
    sudo dpkg-reconfigure xkb-data

Для программистов полезны раскладки:

  • 💻 US International (AltGr dead keys) — удобна для ввода спецсимволов ({}, [], ~).
  • 💻 Russian (Typewriter) — классическая «машинописная» раскладка.
  • 💻 Neo 2 — оптимизированная для немецкого и программирования.
Как создать собственную раскладку

1. Скопируйте шаблон из /usr/share/X11/xkb/symbols/us.

2. Отредактируйте файл, изменив ключи (пример для xkb):

default partial alphanumeric_keys

xkb_symbols "custom" {

name[Group1]= "My Custom Layout";

key { [ a, A, ae, AE ] }; // Пример: клавиша 'A' выдаёт 'æ' с AltGr

};

3. Поместите файл в /usr/share/X11/xkb/symbols/ и обновите кеш.

4. Добавьте раскладку через GUI, выбрав её по имени («My Custom Layout»).

7. Удаление ненужных раскладок

Чтобы удалить лишние источники ввода:

  1. Откройте «Настройки» → «Регион и язык».
  2. Выделите ненужную раскладку и нажмите на значок «−» (Минус).
  3. Подтвердите удаление.

Через терминал удаление выполняется командой (замените ru на код нужной раскладки):

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"

Чтобы полностью сбросить настройки к заводским:

gsettings reset org.gnome.desktop.input-sources sources

gsettings reset org.gnome.desktop.input-sources xkb-options

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

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

  • 🔠 Работают ли горячие клавиши в GUI и терминале.
  • 🔠 Отображается ли текущая раскладка в панели задач.
  • 🔠 Корректно ли вводятся спецсимволы (например, @#$ в английской раскладке).
  • 🔠 Сохраняются ли настройки после перезагрузки.

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

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

Нажмите несколько клавиш — в выводе отобразится их код и символ. Например, для клавиши A в английской раскладке:

38 a

38 A # с Shift

Если символы не совпадают с ожидаемыми, проверьте:

  • 🔍 Конфликты с IBus или Fcitx (менеджеры ввода для азиатских языков).
  • 🔍 Права на файлы в /etc/default/keyboard (должны быть 644).
  • 🔍 Логи системы: journalctl -xe | grep -i keyboard.

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

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

Выполните:

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"

gsettings set org.gnome.desktop.input-sources xkb-options "[]"

Или отредактируйте /etc/default/keyboard, оставив только XKBLAYOUT="us".

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

Это типичная проблема при переходе между версиями GNOME. Решение:

  1. Удалите файл конфигурации: rm -rf ~/.config/dconf/user.
  2. Перезагрузитесь — настройки сбросятся к заводским.
  3. Добавьте раскладку заново через GUI.
Как сделать, чтобы раскладка автоматически переключалась для определённых приложений?

Используйте утилиту xxkb или скрипт на Python с библиотекой pynput. Пример скрипта:

#!/usr/bin/env python3

from pynput.keyboard import Controller, Key

import subprocess

keyboard = Controller()

app = "firefox" # имя процесса

def switch_layout():

keyboard.press(Key.alt)

keyboard.press(Key.shift)

keyboard.release(Key.shift)

keyboard.release(Key.alt)

while True:

if app in subprocess.check_output(["ps", "-A"]).decode():

switch_layout()

break

Сохраните как switch.py и добавьте в автозагрузку.

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

Да. Настройки раскладки хранятся в профиле пользователя (~/.config/dconf/user). Чтобы применить индивидуальные настройки:

  1. Переключитесь на нужного пользователя: su - username.
  2. Настройте раскладку через gsettings или GUI.
  3. Повторите для других пользователей.

Системные настройки (/etc/default/keyboard) будут использоваться только в tty.

Как отключить автоматическое переключение раскладки при вводе пароля?

В Ubuntu 22.04+ это регулируется через GNOME Shell. Отключите опцию:

gsettings set org.gnome.desktop.input-sources remember-sources false

Или установите расширение NoAnnoyance:

sudo apt install gnome-shell-extension-noannoyance
⚠️ Внимание: Если вы используете Wayland (по умолчанию в Ubuntu 22.04+), некоторые методы настройки раскладки (например, через setxkbmap) могут не работать. Переключитесь на Xorg на экране входа (значок шестерёнки рядом с кнопкой «Войти»).
⚠️ Внимание: При ручном редактировании /etc/default/keyboard избегайте использования символов вне ASCII (например, кириллицы в значениях параметров). Это может привести к ошибкам при загрузке системы.