如何防止 XF86RFKill 按鍵啟用 Linux 的飛行模式?

如何防止 XF86RFKill 按鍵啟用 Linux 的飛行模式?

我在我的 ASUS FX505DT 上運行 Kubuntu 19.10(KDE + i3wm)。

問題

我可以XF86RFKill使用 i3wm 綁定金鑰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鍵的鍵綁定,或XF86RFKill從 Linux 轉移到i3wm.我有用於切換飛行模式的腳本,並且我已使用以下方式綁定它:

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

i3 綁定有效,但問題是,**Linux 和i3wm按下按鍵時都會切換飛行模式,因此由於兩次連續切換而導致什麼也不做。

目前的飛航模式由 KDE 實現的,實際上是有問題的,因為它不記得設備在打開之前關閉過的情況飛航模式,因此它會打開所有無線電設備,即使它們最初是關閉的,但在禁用後飛航模式。我編寫了一個 bash 腳本來實現我的目標,因此也是手動綁定此金鑰的動機。

更新1:

經過一些研究和探索後,我發現asus_wireless內核模組對此行為負責。只需將模組列入黑名單即可,但我的筆記型電腦不再偵測到按鍵。是否可以以某種方式保留按鍵以停用熱鍵?

答案1

不是這個主題的專家,但這對我有用。也許它也可以幫助你。若要停用啟用飛行模式的輸入,請在終端機中執行:

xmodmap -e 'keycode 255='

來源:如何在 Linux (Ubuntu) 中停用鍵盤按鍵?

此外,該命令xmodmap -pke顯示所有鍵盤映射的列表

相關內容