Comment fonctionnent les touches Fn?

26

J'aime savoir comment Fnfonctionnent les touches de mon ordinateur portable. Je pense qu'il existe un module noyau qui capture la Fnclé et appelle des scripts pour faire quelque chose. Dans mon ordinateur portable, Fn+ F2commutez l'alimentation sans fil et blue-tooth.

c'est la sortie de acpi_listen, quand j'appuie sur Fn+F2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

et, suivi est la sortie de xevpour Fn+F2

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

Je suppose que chaque fois que j'appuie sur Fn+ F2deux événements sont sautés. J'ai essayé de trouver quelles actions sont exécutées pour ces clés. toute idée appréciée;)

Soroosh
la source

Réponses:

26

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à keycodetable 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:

noisette sur natty
la source
1
Merci, des informations intéressantes sur les touches Fn. En fait, je veux trouver la partie du gestionnaire de système d'exploitation scancodeassociée, par exemple, "keycode 238".
soroosh
3
Peut - être que cet article peut vous aider à vous orienter dans la bonne direction? « Le noyau a son propre scancodeà keycodetable 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. "
noisette sur natty
1
Cet article est parfait, c'est ce que je recherche
soroosh