Как ключи или ключевые коды сопоставляются с символами X Key?

Я пытаюсь сопоставить комбинацию функциональных клавиш с символом ключа XF86. Ключевой комбинацией является Fn + F1 , который я смог использовать showkey для получения исходного кода.

 jason@io ~ $ showkey kb mode was RAW [ if you are trying this under X, it might not work since the X server is also reading /dev/console ] press any key (program terminates 10s after last keypress)... keycode 28 release keycode 466 press keycode 466 release keycode 113 press keycode 113 release keycode 114 press keycode 114 release 

Добавление 8 к showkey ключа showkey , как упоминалось в другом вопросе , дает X-код ключа 474. Хотя, запуск xev , похоже, не улавливает нажатие или xev клавиши. Он захватывает следующие две комбинации функциональных клавиш, хотя ( Fn + F2 , Fn + F3 ).

 jason@io ~ $ xev -root FocusIn event, serial 18, synthetic NO, window 0x71, mode NotifyGrab, detail NotifyInferior KeymapNotify event, serial 18, synthetic NO, window 0x0, keys: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FocusOut event, serial 18, synthetic NO, window 0x71, mode NotifyUngrab, detail NotifyInferior FocusIn event, serial 18, synthetic NO, window 0x71, mode NotifyGrab, detail NotifyInferior KeymapNotify event, serial 18, synthetic NO, window 0x0, keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FocusOut event, serial 18, synthetic NO, window 0x71, mode NotifyUngrab, detail NotifyInferior 

Я пытаюсь обработать комбинацию клавиш в диспетчере окон, где у меня есть количество других рабочих привязок, включая Fn + F2 и Fn + F3 . Однако, похоже, что либо X не получает нажатия клавиши, либо может быть .Xmodmap не привязывает код ключа правильно.

Разве я ничего не делаю? Есть ли другой способ сделать это?

One Solution collect form web for “Как ключи или ключевые коды сопоставляются с символами X Key?”

После исследования я узнал, что это фундаментальное ограничение протокола X11. В частности, тип данных, используемый для представления кода ключа, является байтом, который ограничивает значения от 8 до 255 (+8 смещения). Это проблема, которая должна быть решена в протоколе X12 (см. «Ограничения ресурсов»).

Одним из способов является переназначение кода ключа в допустимый диапазон с помощью исправленного evdev в xorg.conf.

 Section "InputDevice" Identifier "keyboard" Driver "evdev" Option "event_key_remap" "474=247" EndSection 

Код ключа также можно переназначить в ядре.

 jason@io ~ $ sudo setkeycodes e0xx 266 
  • Как получить информацию о том, какой сервер отображения работает?
  • Графика Xorg на Skylake
  • Неожиданное завершение работы Arch Linux
  • Невозможно предоставить общий доступ к рабочему столу во время использования тусовки google или show.in
  • Как установить xorg внутри виртуального хоста?
  • Как сопоставить сложную комбинацию с несколькими ключами в ярлыке для выполнения процесса, в X (через WM и т. Д.)?
  • Системный звуковой сигнал не работает в TigerVNC
  • Команда для принудительного удаления стрелки (захват мыши)
  • Почему minecraft намного более темный на моей стороне Linux, чем на моей стороне Windows?
  • Яркий указатель мыши при использовании мыши с высокой чувствительностью с высоким «постоянным замедлением» в xinput
  • Как отключить графическую оболочку?
  • Linux и Unix - лучшая ОС в мире.