Estou executando o Kubuntu 19.10 (KDE + i3wm) no meu ASUS FX505DT.
O problema
Consigo vincular a XF86RFKill
chave usando i3wm, bindsym
mas essa ligação não parece anular a ligação embutida do Linux, que alternaModo avião.
Comportamento do problema
Isto é o que xev
retorna 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 7
o 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 XF86RFKill
do 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 i3wm
o 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_wireless
O 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 -pke
mostra uma lista de todos os mapeamentos de teclado