Fn私は、 + を押してキーLeftをシミュレートしHome、Fn+ を押して を押す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
したがって、これを実行するには、キーボードにすでにこの機能が備わっている必要があります。