web-dev-qa-db-ja.com

Fnキーを含むキーボードショートカットの定義

私は押すことに慣れています Fn+Left シミュレーションする Home キーと Fn+Right ために End

物理的なキーボード Home そして End キー、これらを使用 Fn キーボードショートカットが機能しない。

カスタムをマッピングするにはどうすればよいですか Fnbunt Linuxのキーボードショートカット

17
mox

AltやCtrlなどの修飾子とは異なり、Fnキーを押してもオペレーティングシステムには通知されません。キーは他のキーのスキャンコードを変更するだけなので、 Fn+Right Endキーは物理的に存在しない場合でもエミュレートしますが、OSでは区別できません。この動作は、キーボードの電子回路によってのみ制御されるため、回路またはマイクロコントローラーをいじらないと変更できません。

16
Marcks Thomas

ほとんどのシステムでは、 Fn キー自体ですが、使用してみることもできます:

$ xev | grep --line-buffered keysym

どのキーを見つける Fn-Left そして Fn-Right 送信します。 (grepはノイズを減らすだけです。)

運が良ければ、それらのキーを押すと、マシンに重要でないキーストロークが送信され、それを再マッピングできます。

たとえば、私のシステムでは、xevは、 Fn-Left キープレスは実際にXF86AudioPrevイベントを送信します:

state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,

これを簡単に再マッピングして、 Home 重要なイベント:

$ xmodmap -e 'keysym XF86AudioPrev = Home'

うまくいけば、End、PageUp、PageDownでも同じことができるようになります。

残念ながらxevがあなたが押すときにユニークなものを受け取らないなら Fn-Left その後、あなたは運が悪いです。

それは本当の恥です Fn キープレスは、他の修飾キーのように直接送信されません。もしそうなら、ソフトウェアを通してそれらの意味を構成するためのより多くの力を持っているでしょう。

12
joeytwiddle

ターミナルでxevを開きました。押すと検出します Shift、 Ctrl、 Alt、および WinSuper)、しかし私が Fn キーはそれを検出しません。

したがって、ソフトウェアは Fn キー;ソフトウェアに送信するキーを決定するのはハードウェア次第です(たとえば、 Home または End キー)。

そのため、これを行うには、キーボードにすでにそれが必要です。

5
biggles5107