Synetech donne une explication très lisible sur les Fnclés ici
Détails techniques
Lorsque vous appuyez sur une touche d'un clavier, le contrôleur de clavier (une petite
puce IC à l' intérieur du clavier) détecte le circuit électrique et le traite pour décoder quelle touche a été enfoncée, puis envoie le
scancode à la carte mère . Le système d'exploitation reçoit le scancode du BIOS et effectue ensuite toute action nécessaire pour traiter cette pression de touche.
Avec la plupart des touches, c'est assez simple. Si vous appuyez sur la A
touche, son contrôleur de clavier envoie le scancode à la carte mère qui le transmet ensuite au système d'exploitation qui à son tour imprime généralement «A». (Si le système d'exploitation détecte que l'une des touches de modification est actuellement enfoncée, il peut alors faire quelque chose de différent. En fait, vous pouvez le configurer pour qu'il fasse ce que vous voulez lorsque vous Aappuyez sur la touche avec ou sans modificateurs.)
Maintenant, la Fnclé est spéciale. Lorsque vous appuyez dessus par lui-même, rien ne se produit car il s'agit exclusivement d' une touche de modification et n'est pas (généralement) censé faire quoi que ce soit par lui-même. Lorsque vous le maintenez enfoncé et appuyez sur une autre touche, le contrôleur de clavier le détecte et regarde dans son tableau intégré pour voir s'il s'agit d'une combinaison connue. Si le combo n'est pas dans la table, alors il l'ignore, mais si le combo est dans la table, il recherche le scancode associé et l'envoie.
Que voit le système d'exploitation? Il ne voit pas le scancode pour la Fnclé et le scancode pour l'autre clé. Au lieu de cela, il voit un seul scancode associé à la fonction sur laquelle le combo Fn a été défini. Par exemple, si le fabricant d'ordinateurs portables a défini le
combo Fn+ Down Arrowpour réduire le volume, le système d'exploitation voit le scancode associé au Volume Down, que certains claviers ont réellement.
Notez également que la Fnclé fonctionne indépendamment du système d'exploitation.
De plus, cet article peut vous aider à vous orienter dans la bonne direction:
Le noyau a son propre scancode
à
keycode
table de correspondance, il associe un certain scancode à un code d' activation. Vous pouvez regarder dans /usr/include/linux/input.h pour voir ce que votre noyau utilise pour le mappage de scancode à keycode - cela s'appelle a
keymap
.
Postscript
Je devrais peut-être revenir quelque peu sur l'affirmation précédente selon laquelle les Fnclés fonctionnent entièrement indépendamment du système d'exploitation; sans entrer dans les détails plus techniques ici, le résultat semble être que votre système d'exploitation pourrait ne pas "prendre en charge" tout ou partie des Fntouches de votre clavier , voir, par exemple:
scancode
associée, par exemple, "keycode 238".scancode
àkeycode
table de mappage, vous pouvez regarder il mappe un certain scancode à un keycode en /usr/include/linux/input.h pour voir ce que vos utilisations du noyau pour scancode à la cartographie keycode -. Il est appelékeymap
. "