Synetech da una explicación muy legible sobre las Fnclaves aquí
Detalles técnicos
Cuando presiona una tecla en un teclado, el controlador del teclado (un pequeño
chip IC dentro del teclado) detecta el circuito eléctrico y lo procesa para decodificar qué tecla se presionó y luego envía el
código de escaneo a la placa base . El sistema operativo recibe el código de escaneo del BIOS y luego realiza cualquier acción que necesite para procesar esa pulsación de tecla.
Con la mayoría de las teclas, esto es lo suficientemente simple. Si presiona la A
tecla, su controlador de teclado envía el código de escaneo a la placa base que luego lo pasa al sistema operativo que a su vez generalmente imprime 'A'. (Si el sistema operativo detecta que una de las teclas modificadoras está presionada actualmente, entonces puede hacer algo diferente. De hecho, puede configurarla para que haga lo que quiera cuando Ase presiona la tecla con o sin modificadores).
Ahora la Fnclave es especial. Cuando lo presiona solo, no sucede nada porque es exclusivamente una tecla modificadora y no (generalmente) está destinado a hacer nada por sí solo. Cuando lo sostiene y presiona otra tecla, el controlador del teclado lo detecta y mira en su tabla integrada para ver si es una combinación conocida. Si el combo no está en la tabla, simplemente lo ignora, pero si el combo está en la tabla, busca el código de escaneo asociado y lo envía.
¿Qué termina viendo el sistema operativo? No , no ver el código de rastreo para la Fnclave y el código de rastreo para la otra clave. En cambio, ve un único código de escaneo asociado con cualquier función para la que se haya configurado el combo Fn. Por ejemplo, si el fabricante de la computadora portátil ha configurado el
combo Fn+ Down Arrowpara reducir el volumen, entonces el sistema operativo ve el código de escaneo asociado con el Volume Down, que algunos teclados realmente tienen.
También tenga en cuenta que la Fnclave funciona independientemente del sistema operativo.
Además, este artículo puede ayudarlo a orientarse en la dirección correcta:
El núcleo tiene su propia scancode
para
keycode
tabla de asignación, por lo que se asigna un determinado código de rastreo a un código clave. Puede buscar en /usr/include/linux/input.h para ver qué usa su núcleo para el mapeo de código de escaneo a código clave: se llama a
keymap
.
Posdata
Es posible que deba renegar de alguna manera en la afirmación anterior de que las Fnclaves funcionan de manera completamente independiente del sistema operativo; sin entrar en más detalles técnicos aquí, el resultado parece ser que su sistema operativo podría no "admitir" todas o algunas de las Fnteclas de su teclado , vea, por ejemplo:
scancode
asocia con, por ejemplo, "código clave 238".scancode
parakeycode
tabla de asignación, por lo que se asigna un determinado código de rastreo a un código clave Usted puede mirar en /usr/include/linux/input.h para ver cuáles son sus usos del kernel para scancode a la cartografía de código clave -. Se le llamakeymap
".