私はASUS FX505DTでKubuntu 19.10(KDE + i3wm)を実行しています。
問題
XF86RFKill
i3wmを使用してキーをバインドすることはできます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、またはXF86RFKill
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
すべてのキーマッピングのリストを表示します。