Группа фиксации в сопоставлениях протокола 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», но звучит смешно.
Я прав?

  • Состояние ключа переключения Fn
  • OpenSUSE - беспроводная клавиатура Apple - переключатель «fn» и «ctrl»?
  • Преобразование символа UTF-8 в имя xmodmap
  • Конфигурация xmodmap для эмуляции макета специального ключа Mac?
  • Linux Mint 18: xmodmap и третий уровень не работают на firefox и texstudio
  • Включить NumLock при запуске?
  • Можно ли добавить дополнительные модификаторы?
  • как поменять ctrl и caplock с помощью xmodmap?
  • 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 - лучшая ОС в мире.