XF86RFKill 키 입력이 Linux 비행기 모드를 활성화하지 못하게 하는 방법은 무엇입니까?

XF86RFKill 키 입력이 Linux 비행기 모드를 활성화하지 못하게 하는 방법은 무엇입니까?

저는 ASUS FX505DT에서 Kubuntu 19.10(KDE + i3wm)을 실행하고 있습니다.

질문

XF86RFKilli3wm 을 사용하여 키를 바인딩 할 수 있지만 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의 키 바인딩을 XF86RFKillLinux로 또는 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모든 키맵 목록을 표시합니다.

관련 정보