Synetechは、Fnキーについて非常に読みやすい説明をここに提供します
技術的な詳細
キーボードのキーを押すと、キーボードコントローラー(キーボード内の小さな
ICチップ )が電気回路を検出し、それを処理して押されたキーをデコードし、スキャンコードをマザーボードに送信
します。オペレーティングシステムはBIOSからスキャンコードを受信し、そのキー押下を処理するために必要なアクションを実行します。
ほとんどのキーでは、これは非常に簡単です。押すとA
、キーを、そのキーボードコントローラは、その後にそれを渡すマザーボードにスキャンコードを送信OS今度は通常「A」を出力します。(OSが修飾キーの1つが現在押されていることを検出した場合、それは何か異なることがあります。実際、A修飾キーの有無にかかわらずキーが押されたときに何でもするように設定できます。)
今Fnキーは特別です。それを単独で押すと、何も起こりません。これは、それが排他的に修飾キーであり、(一般に)それ自体で何もすることを意図していないためです。キーを押しながら別のキーを押すと、キーボードコントローラーはそれを検出し、組み込みテーブルを調べて、既知の組み合わせであるかどうかを確認します。コンボがテーブルにない場合は無視しますが、コンボがテーブルにある場合は、関連するスキャンコードを検索して送信します。
OSは何を見ますか?キーのスキャンコードと他のキーのスキャンコードは表示されませんFn。代わりに、Fn-comboが設定されている機能に関連付けられた単一のスキャンコードが表示されます。たとえば、ラップトップの製造元がFn+ Down Arrowコンボを設定し
て音量を下げると、OSは、Volume Down一部のキーボードが実際に持っているに関連付けられたスキャンコードを確認します。
また、Fnキーはオペレーティングシステムとは独立して機能することに注意してください。
さらに、この記事はあなたを正しい方向に導くのに役立つかもしれません:
カーネルには独自のマッピングテーブルがあるため、特定のスキャンコードをキーコードscancode
に
keycode
マッピングします。/usr/include/linux/input.hを調べて、カーネルがスキャンコードからキーコードへのマッピングに使用するものを確認できます
keymap
。
追記
FnキーがOSから完全に独立して機能するという以前の主張については、多少改めなければならないかもしれません。ここで技術的な詳細を説明しなくても、お使いのOSがキーボードのFnキーのすべてまたは一部を「サポート」していない可能性があるようです。たとえば、以下を参照してください。
scancode
は、たとえば「キーコード238」に関連付けられたOSハンドルのどの部分を見つけたいのです。