xkb - переназначенные модификаторы все еще работают как модификаторы
Я использую xkb для создания собственной раскладки клавиатуры. У меня небольшая проблема.
key <AE04> {[ Shift_L ]};
key <AE07> {[ Shift_R ]};
key <LFSH> {[ comma , semicolon , bar ]};
key <RTSH> {[ period , colon , period ]};
modifier_map Shift { <AE04>, <AE07> };
Выше перемещает клавиши Shift к другим клавишам. Чтобы новые клавиши Shift действительно что-то делали при нажатии, мне пришлось добавить modifier_map
линия. Код также помещает обычные символы на старые клавиши Shift. Все идет нормально.
Проблема в том, что если я удерживаю старую левую клавишу Shift и нажимаю какой-то символ - скажем, "а" - я получаю "А". Так что эта клавиша работает как клавиша с запятой и как клавиша Shift. Последнее не желательно. То же самое происходит с правой старой клавишей Shift. На самом деле, это также происходит с контролем и альт.
Как мне это решить? Такое ощущение, что мне нужно modifier_unmap
или что-то.
1 ответ
После запуска setxkbmap -print
Я понял, что pc
был включен в список символов. Этот файл символов устанавливает обычные модификаторы, которые я не желаю.
Ранее я добавил свой собственный макет в /usr/share/X11/xkb/symbols
каталог и к /usr/share/X11/xkb/rules/evdev.xml
файл. Это заставило мою раскладку появиться в графическом интерфейсе для выбора раскладки клавиатуры.
Решение состоит в том, чтобы сделать раскладку клавиатуры с нуля. Тот, который не включает в себя pc
файл. Тем не менее, есть много стандартных клавишных pc
что мне нужно Поэтому я прочитал этот файл сверху вниз, выбирая то, что мне было нужно.
Короче говоря, создание макета с нуля в основном означает:
- Скопируйте вывод
setxkbmap -print
в файл. - Этот файл просто включает в себя другие файлы. Просмотрите список, чтобы увидеть, что вы можете использовать повторно. Для меня это означало замену
pc
с именем моего собственного файла. - Создайте новые файлы, если это необходимо.
- Запустите новый макет, используя
xkbcomp -I$HOME/additional-include-folder file-from-step-one
,
Я узнал об этом (более подробно) из этого превосходного руководства: http://hack.org/mc/writings/xkb.html.