К сожалению, модификация системной базы данных XKB в /usr/share/X11/xkb
- единственный способ; судя по вашему другому вопросу, похоже, вы добились того, что эта часть работает.
Ограничение в основном связано с незрелостью Wayland и недосмотром разработчиков XKB.
Такие инструменты, как setxkbmap
и xkbcomp
предоставляют опцию -I
для добавления пользовательской базы данных для поиска (например, ~/.xkb
или ~/.config/xkb
, с файлами и подкаталогами, расположенными подобно системной базе данных). Эти инструменты взаимодействуют с X-сервером, поэтому они могут быть полезны при настройке уровня совместимости Xwayland
для запуска X-приложений под Wayland. Но в настоящее время они не используют протоколы Wayland.
Протоколы Wayland все еще совершенствуются. В настоящее время наиболее актуальны протоколы input-method
и text-input
, но оба они нестабильны. Ни в одном из них ничего не говорится об изменении заданной карты клавиш; эти детали остаются на усмотрение композитора.
GNOME и KDE предоставляют демоны для настройки параметров работы с клавиатурой, которые должны обрабатывать системные опции XKB, включая изменение на лету. Насколько мне известно, нет никакого способа сообщить им о пользовательских настройках. Насколько я знаю, Weston и другие композиторы полагаются на конфигурационные файлы или переменные среды для установки параметров XKB при запуске, и не предоставляют никакого способа изменить их, кроме выхода и перезапуска.
Даже в самом XKB это не полностью поддерживается. Ваш пользовательский файл символов может включать
другие системные файлы символов. Но в настоящее время нет функции include
для файлов правил XKB, поэтому даже если бы у вас был инструмент, который общался бы с композитором Wayland и искал бы ваши личные настройки, вам пришлось бы вручную включать все правила, которые вы хотите использовать (т.е. скопировать rules/evdev*
из системного XKB и изменить его). libxkbcommon
имеет открытый вопрос на эту тему и связанную ошибку.