Группа фиксации в сопоставлениях протокола xmodmap / core (XChangeKeyboardMapping ())

Этот вопрос, вероятно, должен пойти на ретрокомпьютинг, поскольку люди должны использовать XKB, но мне действительно интересно, как они защелкнули групповое переключение с помощью xmodmap / XChangeKeyboardMapping() .

Я читаю xmodmap man и документацию X11 lib, и кажется, что для того, чтобы иметь, скажем, английскую и русскую раскладку клавиатуры, вам нужно сопоставить keyyms с некоторым кодом клавиатуры (например, [code_for_letter_l] --> XK_l XK_L XK_Cyrillic_de XK_Cyrillic_DE ), а затем сопоставить некоторый код ключа Mode_Switch.

Нажав этот код вместе с L, вы получите русское письмо «Д».

Но как я могу запереть его? Существует модификатор блокировки, но его можно использовать только с XK_Caps_Lock keysym (и ShiftLock, который я не понимаю).

Добавление блокировки в MODE_SWITCH не влияет.

С помощью командной консоли linux я могу добавить группу, скажем, AltGr, а затем добавить некоторый keycode в AltGr_Lock, чтобы сделать его защелкой. И это работает. Но как мне это сделать в X?

Я проверил несколько модов для кириллических и других нелатинских макетов (у древних дистрибутивов их много), и во всех случаях люди либо использовали для этого капсюль, либо вообще не имели блокировки / защелки.

Итак, я пришел к мысли, что до XKB (до 1996 года) не удалось переключить макет с такими клавишами, как «CTRL + Shift», но звучит смешно.
Я прав?

  • как перенаправить супер ключи?
  • Изменение раскладки клавиатуры при подключении или выходе
  • ~ / .xinitrc и элемент запуска Xmodmap не вступают в силу при запуске в монетном дворе 17.3
  • Переключить ключ к двум модификаторам или использовать мета-ярлыки в терминале (терминатор)
  • xmodmap для комбинации клавиш - как переключить поведение Fn?
  • Клавиши F1-F12 не работают
  • Определение назначений клавиш для X.org на ПК
  • Отображение AltGr налево
  • One Solution collect form web for “Группа фиксации в сопоставлениях протокола xmodmap / core (XChangeKeyboardMapping ())”

    Прежде всего, это называется блокировка, поскольку ключ защелки означает, что ключ будет влиять только на следующий ключ.

    Невозможно заблокировать группу в протоколе Core, но расширения XKB добавляют некоторые ключи в соответствии с ISO / IEC 9995 .

    XKB, Приложение C. Новые KeySyms: ISO NEXT GROUP keysymdefs.h

    #define XK_ISO_Next_Group 0xfe08

    Итак, я добавил keycode 133 = ISO_Next_Group_Lock в ~/.xmodmap а не Win key переключает мои группы

    Linux и Unix - лучшая ОС в мире.