Вопрос или проблема
Я могу добавить пользовательскую раскладку клавиатуры xkb в
/usr/share/X11/xkb/symbols
и активировать ее, используя setxkbmap
.
Недостаток хранения данных в этой системной папке заключается в том, что они теряются при переустановке или обновлении xkb-data
.
Существует ли папка в домашнем каталоге, где я могу навсегда хранить пользовательские карты клавиш для xkb?
Это ограничение XKB, которое сложно обойти. Существует свежий отчет об ошибке Ubuntu, который подчеркивает эту проблему, но возможное исправление должно быть разумно выполнено на уровне выше. Нельзя сказать, если/когда это произойдет.
Стоит упомянуть, что по этой самой причине мы обычно не обновляем xkb-data
в стабильных выпусках.
Пользовательская конфигурация XKB возможна с 2020 года.
Смотрите этот пост в блоге для деталей: Пользовательская конфигурация XKB
.
Ответ или решение
Вопрос о создании пользовательских схем клавиатуры в XKB, сохраненных в домашней директории, актуален для IT-специалистов и пользователей, сталкивающихся с проблемой перезаписи данных при обновлении системных пакетов. Несмотря на традиционный способ размещения кастомных схем в директории /usr/share/X11/xkb/symbols
, существуют ограничения, которые ведут к потере данных в случае обновления или переустановки пакета xkb-data
.
Теория
X Keyboard Extension (XKB) используется для обработки клавиатурных раскладок в X Window System. Он позволяет пользователям определять и использовать пользовательские раскладки клавиатуры. Однако структура XKB задумана так, что системные файлы, включая символы клавиатуры, должны храниться в общедоступных директориях, таких как /usr/share/X11/xkb
. При обновлениях системы изменения в этих директориях могут быть перезаписаны, что приводит к необходимости восстановления пользовательских конфигураций.
С 2020 года появилась возможность использовать пользовательские конфигурации XKB в домашней директории. Это стало важной вехой, давшей пользователям больше контроля и надежности над их настройками клавиатуры.
Пример
Рассмотрим процесс создания пользовательской раскладки. Обычно, пользователи добавляют свои файлы с символами в /usr/share/X11/xkb/symbols
и применяют их с помощью команды setxkbmap
. Хотя это относительно простое решение, оно сопряжено с указанными выше рисками. В случае с пользовательскими директориями это выглядит следующим образом:
-
Создайте директорию для пользовательских конфигураций XKB в своем домашнем каталоге, например в
~/.config/xkb/
. -
Поместите файлы с пользовательскими символами в
~/.config/xkb/symbols/
. -
Настройте
XORG_CONFIG_DIR
или используйте скрипты автозапуска, чтобы применить пользовательские раскладки при старте системы.
Такой подход защищает пользовательские данные от потенциальной потери при системных обновлениях или установки новых версий XKB.
Применение
Практическая реализация вышеописанных шагов может значительно упростить управление пользовательскими схемами клавиатуры и защитить их от системных изменений. Например, для интеграции пользовательской клавиатурной схемы при каждом входе в систему, можно использовать следующую последовательность действий:
-
Создайте скрипт, включающий команду
setxkbmap
для применения вашей пользовательской схемы. Например,setxkbmap -I$HOME/.config/xkb mylayout
. -
Добавьте этот скрипт в автозагрузку через
.xinitrc
или соответствующий инструмент настроек вашего рабочей среды.
Такие изменения не только позволят персонализировать рабочую среду, но и сохранят все настройки вне зависимости от системных апдейтов. Эта гибкость становится очень важной для пользователей, которым требуется нестандартные раскладки по профессиональным или личным потребностям.
Таким образом, возможность использования домашней директории для хранения конфигураций XKB позволяет избежать многих проблем, связанных с обновлениями системы. Это решение не только технологически грамотное, но и устойчивое к изменениям. Тема становится особенно актуальной в свете непрерывного совершенствование дистрибутивов Linux и стремления пользователей к повышению удобства и стабильности работы с системами.