저는 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로 또는 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
모든 키맵 목록을 표시합니다.