Введение в архитектуру конфигурации ввода
Поиск места, где операционная система Ubuntu сохраняет параметры ввода, может показаться сложной задачей из-за гибридной природы современных дистрибутивов. В зависимости от версии, используемого окружения рабочего стола и протокола отображения (X11 или Wayland), файлы конфигурации могут находиться в совершенно разных директориях. Понимание этой структуры критически важно для переноса настроек на другой компьютер или ручного редактирования параметров, недоступных через графический интерфейс.
Современная Ubuntu больше не полагается на единый файл настроек. Вместо этого используется сложная система, включающая dconf, gsettings, файлы конфигурации X11 и специфичные для Wayland манифесты. Если вы привыкли к старым системам, где всё хранилось в .conf файлах, сейчас вам придется искать данные в бинарном хранилище dconf или в специализированных XML-файлах. Ключевое различие заключается в том, что настройки раскладки для X11 часто хранятся отдельно от настроек для Wayland, и изменение одной не всегда влияет на другую.
Конфигурация через dconf и gsettings
Основным хранилищем пользовательских настроек в среде GNOME, которая является стандартной для Ubuntu, является база данных dconf. Большинство параметров, которые вы меняете в графическом меню «Настройки», записываются именно туда. Доступ к этим данным осуществляется через утилиту командной строки gsettings или через редактор dconf-editor. Это наиболее надежный способ изменить параметры ввода без риска повредить системные файлы.
Чтобы увидеть текущие настройки клавиатуры, вам нужно выполнить команду, указывающую на конкретный путь в иерархии настроек. Для раскладки и источников ввода используется следующий путь:
gsettings get org.gnome.desktop.input-sources sources
Здесь вы увидите список активных языков и методов ввода. Если вам нужно добавить новый язык программно, используется команда gsettings set. Важно понимать, что изменения, внесенные через gsettings, применяются мгновенно, но они могут перезаписываться при следующем входе в сеанс, если конфигурация загружается из других источников.
⚠️ Внимание: Редактирование базы данных
dconfнапрямую через утилитуdconf-editorтребует осторожности. Случайное изменение ключа, отвечающего за ввод, может привести к тому, что вы не сможете переключить раскладку, что затруднит ввод команд для исправления ошибки.
Файлы конфигурации X11 и XKB
Несмотря на переход на Wayland, многие пользователи и серверные конфигурации по-прежнему используют X11 (Xorg). В этом протоколе настройки клавиатуры хранятся в файлах системы XKB (X Keyboard Extension). Базовые определения клавиш и раскладок находятся в директории /usr/share/X11/xkb/. Это не пользовательские настройки, а фундаментальные определения того, как клавиатура работает на уровне драйверов.
Конкретные настройки пользователя в сессии X11 часто определяются файлом ~/.config/xkb/ или конфигурациями в /etc/X11/xorg.conf.d/. Если вы настраиваете специфическую модель клавиатуры или используете нестандартные макросы, именно здесь следует искать настройки. Файлы имеют структуру .xkb и содержат сложные правила маппинга клавиш.
Для проверки текущей активной раскладки в X11 можно воспользоваться утилитой xkbcomp. Она выводит текущее состояние клавиатурной карты. Если вы видите рассинхронизацию между тем, что показывает система и тем, что работает физически, проблема часто кроется в конфликте между настройками dconf и конфигурационными файлами XKB.
☑️ Проверка конфигурации X11
Настройки Wayland и GNOME Shell
В современных версиях Ubuntu (начиная с 21.10) по умолчанию используется протокол Wayland. В этом окружении архитектура настроек претерпела изменения. GNOME Shell берет на себя больше ответственности за управление вводом, и настройки часто жестко завязаны на состояние сессии. Файлы конфигурации здесь менее доступны для ручного редактирования, так как система опирается на внутренние механизмы управления состоянием.
Тем не менее, некоторые параметры все еще можно найти в файлах конфигурации пользователя. Например, настройки сочетаний клавиш (горячих клавиш) хранятся в разделе org.gnome.settings-daemon.plugins.media-keys. Это означает, что если вы хотите изменить действие по умолчанию для переключения языка или запуска терминала, вам нужно искать ключи именно в этой ветке gsettings.
Важно отметить, что в Wayland некоторые старые методы перехвата клавиш могут не работать из-за ограничений безопасности. Это касается программ, которые пытаются изменить низкоуровневые настройки клавиатуры. Если вы используете сторонние утилиты для настройки клавиатуры, убедитесь, что они совместимы с протоколом Wayland.
Как проверить, какой протокол используется?
Выполните команду echo $XDG_SESSION_TYPE. Если вы увидите "wayland", значит используется новый протокол. Если "x11" — старый Xorg.
Таблица расположения ключевых файлов и путей
Для удобства навигации по системе соберем основные пути в одну таблицу. Это поможет вам быстро найти нужный файл в зависимости от того, что именно вы хотите изменить: раскладку, модель клавиатуры или горячие клавиши.
| Тип настройки | Путь или команда | Описание |
|---|---|---|
| Раскладка и языки | gsettings get org.gnome.desktop.input-sources sources |
Текущие активные источники ввода |
| Модель клавиатуры | gsettings get org.gnome.desktop.input-sources xkb-options |
Дополнительные опции и модель |
| Файлы XKB (X11) | /usr/share/X11/xkb/ |
Базовые определения клавиатур |
| Пользовательские настройки | ~/.config/dconf/user |
Бинарная база данных всех настроек GNOME |
| Горячие клавиши | org.gnome.settings-daemon.plugins.media-keys |
Конфигурация сочетаний клавиш |
Обратите внимание, что файл ~/.config/dconf/user содержит скомпилированные данные. Не пытайтесь редактировать его текстовым редактором — это приведет к повреждению профиля. Для изменения значений используйте утилиту dconf или gsettings.
Где искать кастомные скрипты и утилиты
Часто пользователи устанавливают сторонние утилиты, такие как Autokey, Caribou или Kmon, для расширения функционала клавиатуры. Эти программы хранят свои настройки в отдельных директориях в домашней папке. Например, Autokey сохраняет скрипты в ~/.config/autokey/. Если вы переносите систему, не забудьте скопировать и эти папки, иначе автоматизация перестанет работать.
Также стоит обратить внимание на файлы запуска сессии. В директории ~/.config/autostart/ могут лежать дескрипторы (.desktop), которые запускают скрипты настройки клавиатуры при входе в систему. Это особенно актуально для тех, кто использует сложные макросы или скрипты на Python для переключения раскладки.
Если вы используете Xorg и настраивали клавиатуру через файл ~/.xinitrc, убедитесь, что эти настройки не конфликтуют с новыми системными параметрами. Часто бывает так, что скрипт в .xinitrc переопределяет настройки, заданные через графический интерфейс.
⚠️ Внимание: При обновлении системы или смене версии Ubuntu настройки в
~/.xinitrcмогут перестать выполняться автоматически, если вы используете дисплейный менеджер (например, GDM). Рекомендуется перенести логику настройки в системные службы или скрипты автозагрузки GNOME.
Решение проблем и сброс настроек
Иногда настройки клавиатуры «ломаются» после обновления системы или установки нового софта. В этом случае самый быстрый способ вернуть работоспособность — сбросить настройки к заводским. Для этого используется команда, которая удаляет все пользовательские изменения в ветке настроек ввода. Это безопасно, так как сбрасывает только параметры, а не системные файлы.
Если вы хотите сбросить настройки раскладки, выполните:
gsettings reset org.gnome.desktop.input-sources sources
Это вернет список языков к значению по умолчанию для вашего региона. Если проблема глубже и касается модели клавиатуры, используйте команду gsettings reset org.gnome.desktop.input-sources xkb-options. После сброса перезапустите сеанс работы, чтобы изменения вступили в силу.
В случае, если кэш dconf поврежден (что случается редко), может потребоваться удаление файла ~/.config/dconf/user. Это приведет к сбросу всех настроек рабочего стола, а не только клавиатуры, поэтому используйте этот метод только в крайнем случае. После удаления файла система создаст новый профиль при следующем входе.
⚠️ Внимание: Удаление файла
~/.config/dconf/userудалит также настройки темы, обои, параметры панели задач и другие личные конфигурации GNOME. Сделайте резервную копию важных данных перед этим действием.
FAQ: Частые вопросы о настройках клавиатуры
Где хранятся настройки раскладки в терминале?
В терминале настройки управляются через утилиту localectl для системных настроек и gsettings для пользовательских. Файлы XKB находятся в /usr/share/X11/xkb/, но редактировать их вручную не рекомендуется.
Как узнать, какие параметры клавиатуры активны прямо сейчас?
Используйте команду gsettings get org.gnome.desktop.input-sources sources для языков и gsettings get org.gnome.desktop.input-sources xkb-options для дополнительных опций в текущей сессии GNOME.
Можно ли перенести настройки клавиатуры на другой компьютер?
Да, но это требует копирования не только файлов, но и правильных настроек через gsettings. Просто скопировать файл dconf/user может быть недостаточно из-за различий в аппаратном обеспечении и версиях системы.
Почему настройки клавиатуры сбрасываются после перезагрузки?
Это может быть вызвано повреждением базы данных dconf, конфликтом с файлами конфигурации X11 или тем, что вы используете гостевой сеанс, где настройки не сохраняются.
Где найти настройки переключения раскладки клавишами?
Настройки переключения (сочетания клавиш) находятся в пути org.gnome.desktop.wm.keybindings или org.gnome.settings-daemon.plugins.media-keys в зависимости от версии Ubuntu и способа переключения.