Fedoraで複数のスキャンコードのマッピングキーを生成する

Fedoraで複数のスキャンコードのマッピングキーを生成する

私は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 --multikeyF4キーを押すと、次の情報が表示されます。

"(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キーストロークが他の修飾キーのように直接送信されないことは残念です。もしそうなら、私たちはソフトウェアを通してその意味を構成する能力がより多くなったでしょう。

おすすめ記事