Я работаю над своей собственной раскладкой клавиатуры, и часть этого заключается в замене клавиш Caps Lock и escape. Раскладка, похоже, работает достаточно хорошо, все остальные клавиши переназначаются правильно, за исключением того, что когда я нажимаю физическую клавишу Caps Lock на клавиатуре, она активирует escape, как и ожидалось. Но также переключает Caps Lock одновременно.
Нажатие физического Escape просто активирует Caps Lock. Я надеялся, что смогу получить физическую клавишу Caps Lock, чтобы просто активировать Escape.
Я попытался использовать другую клавиатуру, чтобы увидеть, не является ли это причудой моего ноутбука, проблема все еще сохраняется, также нажатие Caps Lock в xev показывает это:
Событие KeyPress, серийный номер 34, синтетический NO, окно 0x1800001,
корень 0x236, subw 0x0, время 680957, (77,65), корень: (299,279),
состояние 0x2000, код клавиши 66 (keysym 0xff1b, Escape), тот же_экран ДА,
XKeysymToKeycode возвращает код ключа: 9
XLookupString дает 1 байт: (1b) "
mbLookupString дает 1 байт: (1b) "
FilterEvent возвращает: False
Вот мой файл в /usr/share/X11/xkb/symbols
// на основе раскладки клавиатуры из файла 'xkb/symbols/de'
По умолчанию
xkb_symbols "базовый" {
включить "латынь (тип4)"
имя[Группа1]="Кодирование";
// Побег
клавиша <ESC> {[Caps_Lock]};
// Функциональные клавиши
клавиша <FK01> {[F1]};
клавиша <FK02> {[F2]};
клавиша <FK03> {[F3]};
клавиша <FK04> {[F4]};
клавиша <FK05> {[F5]};
клавиша <FK06> {[F6]};
клавиша <FK07> {[F7]};
клавиша <FK08> {[F8]};
клавиша <FK09> {[F9]};
клавиша <FK10> {[F10]};
клавиша <FK11> {[F11]};
клавиша <FK12> {[F12]};
// Первая строка (числа/символы)
ключ <TLDE> {[бар, амперсанд]};
ключ <AE01> {[восклицательный знак, 1]};
ключ <AE02> {[цифровой знак, 2]};
клавиша <AE03> {[плюс, 3]};
клавиша <AE04> {[минус, 4]};
ключ <AE05> {[подчеркивание, 5]};
ключ <AE06> {[равно, 6]};
ключ <AE07> {[parenleft, 7]};
ключ <AE08> {[braceleft, 8]};
ключ <AE09> {[скобка слева, 9]};
ключ <AE10> {[меньше, 0]};
key <AE11> {[parenright, braceright]};
ключ <AE12> {[правая скобка, больше]};
клавиша <BKSP> {[BackSpace]};
// Второй ряд
key <TAB> {[могила, вопрос]};
ключ <AD01> {[v, V]};
ключ <AD02> {[k, K]};
клавиша <AD03> {[y, Y]};
клавиша <AD04> {[Tab]};
клавиша <AD05> {[f, F]};
клавиша <AD06> {[g, G]};
key <AD07> {[точка, запятая]};
клавиша <AD08> {[b, B]};
клавиша <AD09> {[o, O]};
key <AD10> {[апостроф, кавычка]};
ключ <AD11> {[процент, звездочка]};
key <AD12> {[asciitilde, at]};
// Третья строка
клавиша <CAPS> {[Escape]};
клавиша <AC01> {[r, R]};
клавиша <AC02> {[n, N]};
клавиша <AC03> {[i, I]};
клавиша <AC04> {[e, E]};
клавиша <AC05> {[u, U]};
клавиша <AC06> {[l, L]};
клавиша <AC07> {[t, T]};
клавиша <AC08> {[a, A]};
клавиша <AC09> {[o, O]};
клавиша <AC10> {[s, S]};
ключ <AC11> {[двоеточие, точка с запятой]};
клавиша <RTRN> {[Возврат]};
// Четвертая строка
клавиша <LFSH> {[Shift_L]};
клавиша <AB01> {[z, Z]};
клавиша <AB02> {[w, W]};
клавиша <AB03> {[c, C]};
клавиша <AB04> {[h, H]};
клавиша <AB05> {[d, D]};
клавиша <AB06> {[m, M]};
клавиша <AB07> {[p, P]};
клавиша <AB08> {[x, X]};
клавиша <AB09> {[j, J]};
ключ <AB10> {[обратная косая черта, косая черта]};
клавиша <RTSH> {[Shift_R]};
включить "kpdl (запятая)"
включить "level3(ralt_switch)"
};
Как я могу это исправить? Мне нужно, чтобы это работало на Wayland. Что он и делает, но я сомневаюсь, что какие-либо решения xmodmap будут работать.
Спасибо за любую помощь.