저는 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 바인딩은 작동하지만 문제는 ** i3wm
키를 눌렀을 때 Linux와 비행기 모드가 모두 전환되어 두 번의 연속 전환으로 인해 아무 작업도 수행되지 않는다는 것입니다.
현재비행기 모드KDE에서 구현한 는 장치를 켜기 전에 꺼졌던 장치를 기억하지 못하기 때문에 실제로 버그가 있습니다.비행기 모드, 따라서 처음에 꺼져 있던 무선 장치를 비활성화한 후에는 모든 무선 장치를 켭니다.비행기 모드. 나는 내 목표를 달성하기 위해 bash 스크립트를 작성했고, 따라서 이 키를 수동으로 바인딩하려는 동기도 생겼습니다.
업데이트 1:
좀 더 연구하고 탐구한 결과, 나는 다음과 같은 사실을 발견했습니다.asus_wireless
커널 모듈이 이 동작을 담당합니다. 단순히 모듈을 블랙리스트에 등록하면 작동하지만 내 노트북이 더 이상 키 누르기를 감지하지 못합니다. 단축키를 비활성화하는 키 누르기를 어떻게든 유지할 수 있습니까?
답변1
이 주제에 대한 전문가는 아니지만 이것이 나에게 도움이 되었습니다. 어쩌면 그것은 당신에게도 도움이 될 수 있습니다. 비행기 모드를 활성화하는 입력을 비활성화하려면 터미널에서 다음을 실행하세요.
xmodmap -e 'keycode 255='
원천:Linux(Ubuntu)에서 키보드 키를 비활성화하는 방법은 무엇입니까?
또한 이 명령은 xmodmap -pke
모든 키 매핑 목록을 표시합니다.