Как ключи или ключевые коды сопоставляются с символами 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 
  • Размытые пакеты шрифтов 75/100 DPI Xorg с Webkit?
  • Пользовательское разрешение в Fedora 11
  • Установка минимальной скорости указателя без использования GNOME GUI
  • Использование gdm для управления аутентификацией xdmcp через VNC
  • разница между исполняемыми файлами X и Xorg под Debian 6.0 (ядро 2.6.32-5-686)
  • Настройка двойного монитора с различными разрешениями с использованием драйвера open source ati
  • Как получить дизайн коричного окна
  • Можно ли запустить графическую программу на рабочем столе другого пользователя с правами root?
  • xinerama, 2 карты, 3 монитора
  • Отображение кнопки Xinput и эмуляция средней кнопки
  • Почему сервер Xnest имеет другой glxinfo, чем обычный сервер Xorg?
  • Linux и Unix - лучшая ОС в мире.