O Autorepeat não funciona

6

No meu laptop, a ativação da repetição automática ( xset r on ) não funciona. Ao verificar a saída de xev , parece que o motivo pelo qual o autorepeat falha é porque outra tecla está sendo pressionada intermitentemente (embora eu não esteja pressionando nada), o que cancela a repetição automática da tecla pressionada no momento. Quando nenhuma tecla está sendo pressionada, os seguintes eventos são gravados repetidamente de forma consistente:

KeyPress event, serial 33, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Parece que uma tecla com o código de tecla 221 está sendo pressionada, mesmo quando não está.

Assim, é possível desabilitar completamente um keycode de tal forma que o xorg não receba o sinal de keypress daquele keycode? Ou é possível tornar as teclas autorepeatadas quando pressionadas, independentemente de outra tecla ser pressionada?

Atualização:

Depois de executar sudo evtest , parece que quando a saída oculta está vindo de

/dev/input/event11 PEAQ WMI hotkeys

Nenhum outro dispositivo de entrada parece enviar eventos quando nada é pressionado. O Autorepeat funciona ao verificar eventos de teclado no evtest.

A saída completa de xev em execução por alguns segundos quando nada é pressionado:

Outer window is 0x1200001, inner window is 0x1200002

PropertyNotify event, serial 8, synthetic NO, window 0x1200001,
    atom 0x27 (WM_NAME), time 1651733, state PropertyNewValue

PropertyNotify event, serial 9, synthetic NO, window 0x1200001,
    atom 0x22 (WM_COMMAND), time 1651733, state PropertyNewValue

PropertyNotify event, serial 10, synthetic NO, window 0x1200001,
    atom 0x28 (WM_NORMAL_HINTS), time 1651733, state PropertyNewValue

CreateNotify event, serial 11, synthetic NO, window 0x1200001,
    parent 0x1200001, window 0x1200002, (10,10), width 50, height 50
border_width 4, override NO

PropertyNotify event, serial 14, synthetic NO, window 0x1200001,
    atom 0x15c (WM_PROTOCOLS), time 1651734, state PropertyNewValue

MapNotify event, serial 15, synthetic NO, window 0x1200001,
    event 0x1200001, window 0x1200002, override NO

ReparentNotify event, serial 28, synthetic NO, window 0x1200001,
    event 0x1200001, window 0x1200001, parent 0x4000d5,
    (0,0), override NO

ConfigureNotify event, serial 28, synthetic NO, window 0x1200001,
    event 0x1200001, window 0x1200001, (2,0), width 952, height 1033,
    border_width 2, above 0x0, override NO

PropertyNotify event, serial 28, synthetic NO, window 0x1200001,
    atom 0x15e (WM_STATE), time 1651735, state PropertyNewValue

MapNotify event, serial 28, synthetic NO, window 0x1200001,
    event 0x1200001, window 0x1200001, override NO

VisibilityNotify event, serial 28, synthetic NO, window 0x1200001,
    state VisibilityUnobscured

Expose event, serial 28, synthetic NO, window 0x1200001,
    (0,0), width 952, height 10, count 3

Expose event, serial 28, synthetic NO, window 0x1200001,
    (0,10), width 10, height 58, count 2

Expose event, serial 28, synthetic NO, window 0x1200001,
    (68,10), width 884, height 58, count 1

Expose event, serial 28, synthetic NO, window 0x1200001,
    (0,68), width 952, height 965, count 0

ConfigureNotify event, serial 28, synthetic YES, window 0x1200001,
    event 0x1200001, window 0x1200001, (962,18), width 952, height 1033,
    border_width 2, above 0x0, override NO

FocusIn event, serial 28, synthetic NO, window 0x1200001,
    mode NotifyNormal, detail NotifyNonlinear

KeymapNotify event, serial 28, synthetic NO, window 0x0,
    keys:  4294967236 0   0   0   16  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   

PropertyNotify event, serial 28, synthetic NO, window 0x1200001,
    atom 0x14f (_NET_WM_DESKTOP), time 1651736, state PropertyNewValue

KeyRelease event, serial 30, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1651775, (-509,794), root:(455,814),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    XLookupString gives 1 bytes: (0d) "
"
    XFilterEvent returns: False

MappingNotify event, serial 33, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 33, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1652400, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1653200, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1653200, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1654000, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1654000, (-509,794), root:(455,814),
    state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 34, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 34, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1654760, (-509,794), root:(455,814),
    state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 35, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 35, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1654800, (-509,794), root:(455,814),
    state 0x40, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x1200001,
    root 0x123, subw 0x0, time 1654800, (-509,794), root:(455,814),
    state 0x40, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

FocusOut event, serial 36, synthetic NO, window 0x1200001,
    mode NotifyGrab, detail NotifyAncestor

ClientMessage event, serial 37, synthetic YES, window 0x1200001,
    message_type 0x15c (WM_PROTOCOLS), format 32, message 0x15d (WM_DELETE_WINDOW)
    
por Peachball 02.10.2017 / 01:45

3 respostas

5

Parece que este é um bug introduzido com o kernel 4.13, de acordo com o erro do bugzilla Redhat # 1497861 .

Descobri que descarregar o módulo peaq_wmi também serve como solução alternativa; parece que alguém já enviou um patch para corrigir o problema.

(Para descarregar o módulo peaq_wmi , pode-se emitir o comando sudo modprobe -r peaq_wmi .)

    
por 08.10.2017 / 17:48
5

Acontece que desabilitar as teclas de atalho do PEAQ WMI corrige isso. Desativei as teclas de atalho do PEAQ WMI primeiro verificando xinput list , para encontrar o id:

[email protected]:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=11   [slave  pointer  (2)]
⎜   ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [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)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=10   [slave  keyboard (3)]
    ↳ Lenovo EasyCamera: Lenovo EasyC           id=13   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
    ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=18   [slave  keyboard (3)]
    ↳ PEAQ WMI hotkeys                          id=17   [slave  keyboard (3)]

Nesse caso, o id é 17. Em seguida, no .xinitrc, adicionei xinput --disable 17 ou o ID que está causando problemas, o que corrige o problema.

    
por 03.10.2017 / 02:49
1

Eu tenho o mesmo problema no elementaryOS após a última atualização do kernel. Eu postei sobre isso aqui . Usando uma das respostas, sudo modprobe -r peaq_wmi resolveu o problema para mim.

EDIT: Adicionando xinput --disable 17 em .xinitr fez não resolver o problema permanentemente para mim, então eu corro o comando acima após cada inicialização. Eu tenho o Lenovo Yoga 500-14IHW em elementaryOS.

Além disso, esse bug não é relacionado ao Arch linux, portanto, marque-o como tal, para que mais pessoas encontrem a solução para esse problema.

    
por 11.01.2018 / 15:14