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 mapeamentokeycode
, 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 dekeymap
.
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: