Como encontrar códigos de tecla para teclas Fn +?

12

Estou tentando descobrir o código da tecla Fn+ tecla pressionada (seta esquerda). Saídas 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  

Se ele está me dizendo o código da chave aqui, não sou capaz de interpretá-lo, então a ajuda seria apreciada.

Também estou curioso para descobrir se é possível vincular algo ao Fn+, Delmas ao experimentar essa combinação, o Xev gera

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

que é exatamente o mesmo que pressionar delsem Fn.

Então, resumo para breve

  1. Como posso encontrar o código da tecla Fn+ (seta esquerda)?

  2. É possível vincular algo a Fn+ Delou estou enfrentando moinhos de vento aqui?

BudwiseЯ
fonte

Respostas:

18

Não tenho certeza de quanto disso é perfeitamente claro para você:

Para mostrar os códigos das teclas pressionadas, você pode usar, por exemplo sudo showkey -k. Isso será impresso no meu caso para Fn+ :

keycode 165 press
keycode 165 release

No meu teclado, esta é uma das teclas de mídia (faixa anterior). O mesmo para Fn+ Delé 70exibido como o código da chave aqui (Bloqueio de rolagem).

Agora, o problema geral com este parece ser que Fnpode ser ser uma tecla modificadora que trabalha no nível keybord e modifica o código de verificação real que é send. Portanto, talvez você não consiga saber se Fnestá pressionado, pois nenhuma parte do sistema operacional ou BIOS pode vê-lo. Se não for esse o caso, o BIOS poderá ver que essa tecla foi pressionada. Alguns fabricantes de hardware fornecem software que pode ser usado para modificar o comportamento da tecla Fn dessa maneira (por exemplo, Toshibas Fnesse ).

Portanto: em geral, não há como saber o que Fnfoi pressionado e o scancode e o código das combinações de teclas, Fndependendo do design do teclado individual.

xubuntix
fonte
1
Eu aceito sua resposta com o coração pesado. Eu gostaria que você estivesse errado, mas parece ser exatamente como você descreveu. Obrigado pela resposta clara.
BudwiseЯ
Curiosamente, no teclado Razer Lycosa, pressionar o "botão" da mídia anterior gera o código de chave 165!