私はMSIノートブックを所有しており、Fキーにはいくつかの特別な機能があります。たとえば、F4キーはタッチパッドを切り替えます。
Windowsでは、このキーは期待どおりに機能します。つまり、タッチパッドを有効/無効にします。ただし、Linux(Fedora)では機能しません。
showkey -s
このキーを押すと、次のような結果が表示されます。
0x1d 0xe0 0x5b 0x76 0x9d 0xe0 0xdb 0xf6
showkey
どのパラメータもこの結果を生成しません。
keycode 28 release
keycode 29 press
keycode 125 press
keycode 85 press
keycode 29 release
keycode 125 release
keycode 85 release
私が得るものとほぼ同じですxev
。
KeyPress event, serial 28, synthetic NO, window 0x6200001,
root 0x7e7, subw 0x0, time 1277257, (692,1239), root:(692,1314),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x6200001,
root 0x7e7, subw 0x0, time 1277259, (692,1239), root:(692,1314),
state 0x4, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x6200001,
root 0x7e7, subw 0x0, time 1277261, (692,1239), root:(692,1314),
state 0x44, keycode 93 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x6200001,
root 0x7e7, subw 0x0, time 1277262, (692,1239), root:(692,1314),
state 0x44, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x6200001,
root 0x7e7, subw 0x0, time 1277265, (692,1239), root:(692,1314),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x6200001,
root 0x7e7, subw 0x0, time 1277266, (692,1239), root:(692,1314),
state 0x0, keycode 93 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
合計3つのKeyPressイベントと3つのKeyReleaseイベントがあります。
xbindkeys --multikey
F4キーを押すと、次の情報が表示されます。
"(Scheme function)"
m:0x44 + c:37
Control+Mod4 + Control_L
"(Scheme function)"
m:0x40 + c:133
Mod4 + Super_L
"(Scheme function)"
m:0x0 + c:93
NoSymbol
xbindkeys
最初の部分を使用して、キーを私のお気に入りの.xbindkeysrcファイルに再マップしてみました。
"xdotool key --clearmodifiers XF86TouchpadToggle"
m:0x44 + c:37 + Release
しかし、それはうまくいきませんでした。
Fedoraでこれを達成する方法の正しい方向/ツールを教えてください。私の最初の候補はxchainkeys
信頼できる/フュージョンリポジトリでは利用できません。長いシーケンススキャンコードを介してキーを再マッピングする他の方法はありますか?
ベストアンサー1
~からFnキーに関連するキーボードショートカットの定義この質問に答えることができるいくつかの洞察力があります。
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キーストロークが他の修飾キーのように直接送信されないことは残念です。もしそうなら、私たちはソフトウェアを通してその意味を構成する能力がより多くなったでしょう。