XF86RFKillキーストロークがLinux飛行機モードを有効にするのを防ぐ方法は?

XF86RFKillキーストロークがLinux飛行機モードを有効にするのを防ぐ方法は?

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

質問

XF86RFKilli3wmを使用してキーをバインドすることはできますが、bindsymこのバインディングはLinuxの組み込みバインディング(変換)をキャンセルしないようです。飛行機モード

問題行動

xev+を押すと、Fn次のものが返されます。F12これは次のように実行されますXF86RFKill

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またはLinuxで転送したいです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すべてのキーマップのリストを表示します。

おすすめ記事