Рейтинг:1

Я поменял Escape и Caps Lock на символы xkb, но теперь клавиша Caps Lock активирует и Escape, и Caps Lock.

флаг in

Я работаю над своей собственной раскладкой клавиатуры, и часть этого заключается в замене клавиш 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 будут работать. Спасибо за любую помощь.

Рейтинг:0
флаг uz

Для этого есть опция XKB. Например, вы можете установить его в /etc/по умолчанию/клавиатура файл:

XKBOPTIONS="заглавные буквы:swapscape"

Поэтому я предлагаю вам попробовать это и поместить соответствующую часть в файл символов.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.