XF86RFKill キーの押下によって Linux の機内モードが有効になるのを防ぐにはどうすればよいでしょうか?

XF86RFKill キーの押下によって Linux の機内モードが有効になるのを防ぐにはどうすればよいでしょうか?

私はASUS FX505DTでKubuntu 19.10(KDE + i3wm)を実行しています。

問題

XF86RFKilli3wmを使用してキーをバインドすることはできますbindsymが、このバインドは、Linuxに組み込まれたバインドを無効にするものではないようです。機内モード

問題の動作

これは、 + をxev押したときに返されるもので、トリガーされるはずです:FnF12XF86RFKill

MappingNotify event, serial 48, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

FocusOut event, serial 48, synthetic NO, window 0x7a00001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 48, synthetic NO, window 0x7a00001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 48, synthetic NO, window 0x7a00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 48, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

いろいろテストしているうちに、私のラップトップには、このファンクションキー用の別の入力デバイスがあることがわかりましたxinput list

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1200:00 04F3:30BA Mouse               id=12   [slave  pointer  (2)]
⎜   ↳ ELAN1200:00 04F3:30BA Touchpad            id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Asus Wireless Radio Control               id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ USB2.0 HD UVC WebCam: USB2.0 HD           id=11   [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                          id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]

さらに、コマンドの実行中にFn+ を押してこれを確認したところ、正しく登録されました。F12xinput test 7

$ xinput test 7
key press   255 
key release 255 
key press   255 
key release 255 

私が欲しいもの

Fn+キーのキーバインディングをF12、またはXF86RFKillLinux から に変更したいと思いますi3wm。機内モードを切り替えるスクリプトがあり、次のようにバインドしました。

bindsym XF86RFKill exec --no-startup-id toggle-airplane

i3 バインディングは機能しますが、問題は、**Linux とi3wm機内モードの両方がキーが押されたときに切り替わるため、2 回連続して切り替えられるため、何も実行されないことです。

現在機内モードKDEによって実装されたは、実際にはバグがあり、電源を入れる前にデバイスの電源がオフになっていたことを記憶していない。機内モード、したがって、無効にした後、最初はオフになっていたすべての無線デバイスをオンにします。機内モード私は目標を達成するために bash スクリプトを作成したので、このキーを手動でバインドすることにしました。

アップデート1:

調査と探索を行った結果、asus_wirelessこの動作の原因はカーネル モジュールです。モジュールをブラックリストに登録するだけで動作しますが、ラップトップはキーの押下を検出しなくなります。ホットキーを無効にしてキーの押下を何らかの方法で保持することは可能ですか?

答え1

この件についての専門家ではありませんが、これは私にとってはうまくいきました。あなたにも役立つかもしれません。機内モードを有効にする入力を無効にするには、ターミナルで次を実行します。

xmodmap -e 'keycode 255='

ソース:Linux (Ubuntu) でキーボードのキーを無効にする方法は?

さらに、このコマンドはxmodmap -pkeすべてのキーマッピングのリストを表示します。

関連情報