Como evitar que o pressionamento de tecla XF86RFKill ative o modo avião do Linux?

Como evitar que o pressionamento de tecla XF86RFKill ative o modo avião do Linux?

Estou executando o Kubuntu 19.10 (KDE + i3wm) no meu ASUS FX505DT.

O problema

Consigo vincular a XF86RFKillchave usando i3wm, bindsymmas essa ligação não parece anular a ligação embutida do Linux, que alternaModo avião.

Comportamento do problema

Isto é o que xevretorna quando pressiono Fn+ F12, que deveria acionar 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   

Enquanto testava várias coisas, descobri que meu laptop possui um dispositivo de entrada separado para esta tecla de função, conforme mostrado por 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)]

Confirmei isso pressionando Fn+ F12durante xinput test 7o comando, que foi registrado corretamente:

$ xinput test 7
key press   255 
key release 255 
key press   255 
key release 255 

O que eu quero

Quero mudar a ligação da tecla Fn+ F12ou XF86RFKilldo Linux para i3wm. Eu tenho o script para alternar o modo avião e o vinculei usando:

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

A ligação i3 funciona, mas o problema é que **tanto o Linux quanto i3wmo modo avião alternam quando a tecla é pressionada, resultando em não fazer nada, devido a duas alternâncias sucessivas.

O actualModo avião, implementado pelo KDE, na verdade apresenta bugs, pois não lembra os dispositivos desligados antes de ligá-losModo avião, e portanto liga todos os dispositivos de rádio, mesmo que tenham sido inicialmente desligados, após desabilitarModo avião. Escrevi um script bash para atingir meu objetivo e, portanto, a motivação para vincular essa chave manualmente.

Atualização 1:

Depois de fazer algumas pesquisas e explorar, descobri queasus_wirelessO módulo do kernel é responsável por este comportamento. Simplesmente colocar o módulo na lista negra funciona, mas meu laptop não detecta mais o pressionamento de tecla. É possível manter de alguma forma o pressionamento da tecla desabilitando a tecla de atalho?

Responder1

Não sou um especialista no assunto, mas funcionou para mim. Talvez possa ajudar você também. Para desabilitar a entrada que habilita o modo avião, execute no terminal:

xmodmap -e 'keycode 255='

Fonte:Como desabilitar uma tecla do teclado no Linux (Ubuntu)?

Além disso, o comando xmodmap -pkemostra uma lista de todos os mapeamentos de teclado

informação relacionada