Как найти коды клавиш для клавиш Fn +?

12

Я пытаюсь выяснить код клавиши для Fn+ нажатия клавиш (стрелка влево). Xev выходы

FocusOut event, serial 36, synthetic NO, window 0x3c00001,    mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 36, synthetic NO, window 0x3c00001,    mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 36, synthetic NO, window 0x0,    keys:  4294967213 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0              0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  

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

Мне также любопытно узнать, возможно ли связать что-то с Fn+, Delно при испытании этой комбинации Xev выводит

KeyPress event, serial 36, synthetic NO, window 0x3c00001,
root 0xad, subw 0x0, time 1984903, (-666,480), root:(53,533),
state 0x0, keycode 119 (keysym 0xffff, Delete), same_screen YES,
XLookupString gives 1 bytes: (7f) " "
XmbLookupString gives 1 bytes: (7f) " "
XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x3c00001,
root 0xad, subw 0x0, time 1985008, (-666,480), root:(53,533),
state 0x0, keycode 119 (keysym 0xffff, Delete), same_screen YES,
XLookupString gives 1 bytes: (7f) " "
XFilterEvent returns: False

что точно так же, как нажатие delбез Fn.

Итак, резюме для краткости

  1. Как я могу найти код клавиши для Fn+ (стрелка влево)?

  2. Можно ли вообще что-то привязать к Fn+ Delили я сталкиваюсь здесь с ветряными мельницами?

BudwiseЯ
источник

Ответы:

18

Я не уверен, насколько это совершенно ясно для вас:

Чтобы показать коды клавиш нажатых клавиш, вы можете использовать, например sudo showkey -k. Это напечатает в моем случае для Fn+ :

keycode 165 press
keycode 165 release

На моей клавиатуре это одна из клавиш мультимедиа (предыдущий трек). То же самое для Fn+ Delпоказывает 70здесь код клавиши (Scroll Lock).

Теперь общая проблема с этим заключается в том, что это Fnможет быть клавиша-модификатор, которая работает на уровне клавиатуры и модифицирует фактический код сканирования, который отправляется. Таким образом, вы можете вообще не знать, Fnнажата ли кнопка, поскольку ни одна часть ОС или BIOS не может ее увидеть. Если это не так, то BIOS может увидеть, что эта клавиша была нажата. Некоторые производители оборудования предоставляют программное обеспечение, которое можно использовать для изменения поведения клавиши Fn (например, Toshibas Fnesse ).

Итак: в общем случае нет способа узнать, что Fnбыло нажато, а скан-код и код клавиши сочетаний клавиш, в том числе, Fnзависит от индивидуальной конструкции клавиатуры.

xubuntix
источник
1
Я принимаю ваш ответ с тяжелым сердцем. Хотелось бы, чтобы вы ошиблись, но, похоже, это именно то, что вы описали Спасибо за четкий ответ.
BudwiseЯ
Интересно, что на клавиатуре Razer Lycosa нажатие кнопки «предыдущий носитель» дает код клавиши 165!