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

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

Fn私は、 + を押してキーLeftをシミュレートしHomeFn+ を押して を押すRightことに慣れていますEnd

Home物理キーとキーを備えたキーボードではEnd、これらのFnキーボード ショートカットは使用できません。

Fnカスタムキーボードショートカットをマップするにはどうすればいいですか?ウブントゥリナックス?

答え1

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

答え2

ほとんどのシステムではキー自体を検出することはできませんFnが、次の方法を試すことができます:

$ xev | grep --line-buffered keysym

Fn-Leftどのキーが送信されているかを確認しますFn-Right。(grepノイズが軽減されるだけです。)

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

たとえば、私のシステムでは、キーを押すと実際にイベントが送信されるxevことがわかります。Fn-LeftXF86AudioPrev

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

これを簡単に再マップしてキーイベントに変換できますHome

$ xmodmap -e 'keysym XF86AudioPrev = Home'

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

残念ながら、xev を押しても何もユニークなものを受け取らない場合はFn-Left、運が悪いことになります。

キー押下が他の修飾キーのように直接送信されないのは本当に残念ですFn。もし送信されれば、ソフトウェアを通じてキーの意味を設定する力がずっと強くなります。

答え3

xevターミナルで開きました。 Shift、、、( )Ctrlを押すと検出されますが、キーを押しても検出されません。AltWinSuperFn

したがって、ソフトウェアはキーとは何の関係もありません。どのキーがソフトウェアに送信されるか (たとえば、またはキー)Fnを決定するのはハードウェア次第です。HomeEnd

したがって、これを実行するには、キーボードにすでにこの機能が備わっている必要があります。

関連情報