Come funzionano i tasti Fn?


26

Mi piace sapere come Fnfunzionano le chiavi sul mio laptop. Penso che esista un modulo del kernel che cattura la Fnchiave e chiama alcuni script per fare qualcosa. Nel mio laptop, Fn+ F2cambia la potenza di wireless e blue-tooth.

questo è l'output di acpi_listen, quando premo Fn+F2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

e, il seguente è l'output di xevfor Fn+F2

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

Immagino ogni volta che premo Fn+ F2due eventi saltano fuori. Ho provato a trovare quali azioni vengono eseguite per queste chiavi. qualsiasi idea apprezzata;)

Risposte:


26

Synetech fornisce una spiegazione molto leggibile sui Fntasti qui

Dettagli tecnici

Quando si preme un tasto su una tastiera, il controller della tastiera (un piccolo chip IC all'interno della tastiera) rileva il circuito elettrico e lo elabora per decodificare il tasto premuto, quindi invia lo scancode alla scheda madre . Il sistema operativo riceve scancode dal BIOS e quindi esegue qualsiasi azione necessaria per elaborare quel tasto premuto.

Con la maggior parte dei tasti, questo è abbastanza semplice. Se si preme il A tasto, il controller della tastiera invia lo scancode alla scheda madre, che poi lo passa al sistema operativo che a sua volta di solito stampa 'A'. (Se il sistema operativo rileva che uno dei tasti modificatori è attualmente tenuto premuto, è possibile che faccia qualcosa di diverso. In effetti, è possibile configurarlo per fare quello che si desidera quando Asi preme il tasto con o senza modificatori.)

Ora la Fnchiave è speciale. Quando lo premi da solo, non succede nulla perché è esclusivamente un tasto modificatore e non è (generalmente) destinato a fare nulla da solo. Quando lo tieni premuto e premi un altro tasto, il controller della tastiera lo rileva e cerca nella sua tabella incorporata per vedere se è una combinazione nota. Se il combo non è nella tabella, allora lo ignora, ma se il combo è nella tabella, cerca lo scancode associato e lo invia.

Cosa finisce per vedere il sistema operativo? Essa non vedere lo scancode per la Fnchiave e la scancode per l'altra chiave. Invece, vede un singolo scancode associato a qualunque funzione sia stata impostata la combo Fn. Ad esempio, se il produttore del laptop ha impostato la combo Fn+ Down Arrowper ridurre il volume, il sistema operativo vede lo scancode associato al Volume Down, che alcune tastiere hanno effettivamente.

Si noti inoltre che la Fnchiave funziona indipendentemente dal sistema operativo.

Inoltre, questo articolo può aiutarti a orientarti nella giusta direzione:

Il kernel ha un proprio scancodealla keycodetabella di mapping, in modo da esso mappa una certa scancode a un codice prodotto. Puoi guardare in /usr/include/linux/input.h per vedere cosa usa il tuo kernel per scancode per mappare il keycode - si chiama a keymap.


poscritto

Potrei aver bisogno di rinnegare in qualche modo l'affermazione precedente secondo cui le Fnchiavi funzionano completamente indipendentemente dal sistema operativo; senza entrare in ulteriori dettagli tecnici qui, il risultato sembra essere che il tuo sistema operativo potrebbe non "supportare" tutti o alcuni dei tasti della Fntastiera, vedi, ad esempio:


1
Grazie, informazioni interessanti sui tasti Fn, in realtà voglio trovare a quale parte del sistema operativo gestire scancode, ad esempio "keycode 238".
soroosh,

3
Forse questo articolo può aiutarti a orientarti nella giusta direzione? "Il kernel ha un proprio scancodealla keycodetabella di mapping, in modo da esso mappa una certa scancode a un keycode Si può guardare in /usr/include/linux/input.h per vedere che cosa i vostri usi del kernel per scancode a keycode mappatura -. Si chiama keymap".
pazzo per il natty

1
L'articolo è perfetto, questo è quello che sto cercando
soroosh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.