我在我的 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
顯示所有鍵盤映射的列表