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 что мне нужно Поэтому я прочитал этот файл сверху вниз, выбирая то, что мне было нужно.

Короче говоря, создание макета с нуля в основном означает:

  1. Скопируйте вывод setxkbmap -print в файл.
  2. Этот файл просто включает в себя другие файлы. Просмотрите список, чтобы увидеть, что вы можете использовать повторно. Для меня это означало замену pc с именем моего собственного файла.
  3. Создайте новые файлы, если это необходимо.
  4. Запустите новый макет, используя xkbcomp -I$HOME/additional-include-folder file-from-step-one,

Я узнал об этом (более подробно) из этого превосходного руководства: http://hack.org/mc/writings/xkb.html.

Другие вопросы по тегам