3

Я использую 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 ответ1

2

После запуска 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .