Como as teclas Fn funcionam?

22

Eu gosto de saber como as teclas Fn funcionam no meu laptop. Eu acho que existe um módulo do kernel que captura a chave Fn e chama alguns scripts para fazer alguma coisa. No meu laptop, Fn + F2 alterna a potência do wireless e do blue-tooth.

esta é a saída de acpi_listen , quando eu pressiono Fn + F2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

e, segue-se a saída de xev para Fn + F2

keycode 238 press
keycode 238 release
keycode 237 press
keycode 237 release

Eu acho que sempre que eu pressionava Fn + F2 dois eventos são saltados para fora. Eu tentei encontrar quais ações são executadas para essas chaves. qualquer ideia apreciada;)

    
por soroosh 20.03.2013 / 14:48

1 resposta

21

Synetech dá uma explicação muito legível sobre as chaves Fn aqui

  

Detalhes técnicos

     

Quando você pressiona uma tecla em um teclado, o controlador de teclado    IC chip dentro do teclado) detecta o circuito elétrico e   processa-o para decodificar qual tecla foi pressionada e, em seguida, envia o    scancode para a placa-mãe . O sistema operacional recebe   scancode do BIOS e, em seguida, realiza qualquer ação necessária para   para processar essa tecla.

     

Com a maioria das chaves, isso é bastante simples. Se você pressionar o A   tecla, seu controlador de teclado envia o scancode para a placa-mãe   que então passa para o OS que normalmente imprime 'A'. (E se   o SO detecta que uma das teclas modificadoras está atualmente pressionada,   então pode fazer algo diferente. Na verdade, você pode configurá-lo para   faça o que quiser quando a tecla A for pressionada com ou   sem modificadores.)

     

Agora a tecla Fn é especial. Quando você pressiona por si só,   nada acontece porque é exclusivamente uma tecla modificadora e não é   (geralmente) significava fazer qualquer coisa sozinho. Quando você segura e   pressione outra tecla, o controlador de teclado detecta e procura   sua tabela interna para ver se é uma combinação conhecida. Se o combo   não está na tabela, então apenas a ignora, mas se a combinação estiver em   a tabela, então ele procura o scancode associado e envia isso.

     

O que o sistema operacional acaba vendo? Não não vê o scancode para   a tecla Fn e o scancode da outra chave. Em vez disso,   vê um único scancode associado com qualquer função do combo Fn   foi definido para. Por exemplo, se o fabricante do laptop tiver definido    Fn + Seta para baixo combo para reduzir o volume, então   o SO vê o scancode associado ao Volume Down ,   que alguns teclados realmente têm.

Observe também que a chave Fn funciona < em> independentemente do sistema operacional.

Além disso, este artigo pode ajudá-lo a destacar direção certa:

  

O kernel tem seu próprio scancode para   tabela de mapeamento keycode , portanto mapeia um certo scancode para um   Código chave. Você pode procurar em /usr/include/linux/input.h para ver o que seu   usos do kernel para o scancode para mapeamento de código-chave - ele é chamado de    keymap .

Postscript

Eu poderia precisar de algum modo renegar a afirmação anterior de que as chaves Fn funcionam inteiramente independentemente do SO; sem entrar em detalhes mais técnicos aqui, o resultado parece ser que o seu sistema operacional pode não "suportar" todas ou algumas teclas do teclado Fn , veja, por exemplo:

por nutty about natty 20.03.2013 / 15:24