Fnキーはどのように機能しますか?


26

Fnはラップトップでキーがどのように機能するかを知りたいです。Fnキーをキャッチし、スクリプトを呼び出して何かを行うカーネルモジュールが存在すると思います。私のラップトップでは、Fn+ F2ワイヤレスとBluetoothの電源を切り替えます。

これはacpi_listenFn+を押したときの出力ですF2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

そして、folloingはの出力であるxevためFn+F2

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

私が押された時はいつでも私は推測Fn+ F22のイベントが飛び出しています。このキーに対して実行されるアクションを見つけようとしました。どんなアイデアも感謝します;)

回答:


26

Synetechは、Fnキーについて非常に読みやすい説明をここに提供します

技術的な詳細

キーボードのキーを押すと、キーボードコントローラー(キーボードの小さな ICチップ )が電気回路を検出し、それを処理して押されたキーをデコードし、スキャンコードマザーボードに送信 します。オペレーティングシステムはBIOSからスキャンコードを受信し、そのキー押下を処理するために必要なアクションを実行します。

ほとんどのキーでは、これは非常に簡単です。押すとA 、キーを、そのキーボードコントローラは、その後にそれを渡すマザーボードにスキャンコードを送信OS今度は通常「A」を出力します。(OSが修飾キーの1つが現在押されていることを検出した場合、それは何か異なることがあります。実際、A修飾キーの有無にかかわらずキーが押されたときに何でもするように設定できます。)

Fnキーは特別です。それを単独で押すと、何も起こりません。これは、それが排他的に修飾キーであり、(一般に)それ自体で何もすることを意図していないためです。キーを押しながら別のキーを押すと、キーボードコントローラーはそれを検出し、組み込みテーブルを調べて、既知の組み合わせであるかどうかを確認します。コンボがテーブルにない場合は無視しますが、コンボがテーブルにある場合は、関連するスキャンコードを検索して送信します。

OSは何を見ますか?キーのスキャンコードと他のキーのスキャンコード表示されませFn。代わりに、Fn-comboが設定されている機能に関連付けられた単一のスキャンコードが表示されます。たとえば、ラップトップの製造元がFn+ Down Arrowコンボを設定し て音量を下げると、OSは、Volume Down一部のキーボードが実際に持っているに関連付けられたスキャンコードを確認します。

また、Fnキーはオペレーティングシステムとは独立して機能することに注意してください。

さらに、この記事はあなたを正しい方向に導くのに役立つかもしれません:

カーネルには独自のマッピングテーブルがあるため、特定のスキャンコードをキーコードscancodekeycodeマッピングします。/usr/include/linux/input.hを調べて、カーネルがスキャンコードからキーコードへのマッピングに使用するものを確認できます keymap


追記

FnキーがOSから完全に独立して機能するという以前の主張については、多少改めなければならないかもしれません。ここで技術的な詳細を説明しなくても、お使いのOSがキーボードのFnキーのすべてまたは一部を「サポート」していない可能性があるようです。たとえば、以下を参照してください。


1
おかげで、Fnキーに関する興味深い情報、実際にscancodeは、たとえば「キーコード238」に関連付けられたOSハンドルのどの部分を見つけたいのです。
soroosh

3
たぶん、この記事はあなたを正しい方向に導くのに役立つでしょうか?「カーネルは、自身の持っているscancodekeycode、それがキーコードに特定のスキャンコードをマッピングして、マッピングテーブルあなたはどのようなキーコードマッピングへのスキャンコードのためにカーネルが使用する参照してください/usr/include/linux/input.hに見ることができます- 。それはAと呼ばれていますkeymap
ナッツについてのナッツ

1
その記事は、これは私が探しているものです、完璧です
soroosh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.