Como corrijo o teclado do xbindkeys para o botão do mouse, repetindo as teclas pressionadas quando pressionado?

0

Eu tenho um mouse Logitech MX Revolution que tem uma tecla do teclado XF86Search nele. Eu usei o xdotool para mapeá-lo como um botão do meio do mouse dentro do meu arquivo xbindkeys.

Esse clique do mouse não funciona mais como um único pressionamento de botão, mas alterna entre os estados ativado e desativado quando pressionado. Esse comportamento indesejável está tornando inutilizável trabalhar com ele. Por exemplo, isso está impedindo que eu seja capaz de deslocar a tela em programas gráficos ou de percorrer a viewport do Blender.

O uso de xev para ler o mapeamento de botões mostra os estados alternados piscando de forma semelhante às teclas repetitivas do teclado.

Alguém tem uma ideia de qual é o problema? Uma vez eu tive esse problema na minha nova instalação do Mint 18.2, mas foi embora depois de reiniciar e recarregar minhas baterias. Desta vez, esta solução não é a resposta como aconteceu novamente ao atualizar o Mint 18.2, e novamente em uma nova instalação do Ubuntu.

Desvinculei a chave de pesquisa nos atalhos de teclado.

    
por RyanWC 24.09.2017 / 21:12

1 resposta

1

A solução para interromper a repetição de um pressionamento de tecla é adicionando o comando xset -r keycode no arquivo xbindkeys. Ele se comporta da mesma maneira que desabilitar a repetição de teclas nas configurações / teclado.

o código em vigor é assim:

"xset -r 225; xdotool mousedown 2"
    m:0x0 + c:225
    XF86Search

"xdotool mouseup 2"
    m:0x0 + c:225 + release
    XF86Search
Embora isso tenha resolvido esse problema, o problema real que eu estava tendo não estava resolvido, o que fazia com que o botão de busca funcionasse perfeitamente como um botão do meio do mouse em programas como o Blender. A solução acima não funciona bem com o modificador Shift por uma razão que não entendo.

A melhor solução para esse problema foi abrir mão de xbindkeys completamente e, em vez disso, ativar a emulação do clique do meio adicionando esse código a /etc/sysctl.conf :

# Enable mouse button emulation
dev.mac_hid.mouse_button_emulation = 1
# Set 2nd button to 217 - the middle button of MX Revolution mouse.
dev.mac_hid.mouse_button2_keycode = 217

Depois disso, eu tive que criar um arquivo udev em /etc/udev/rules.d/ onde ele chamaria um script sempre que ele ver meu dongle conectado. Esse script contém o comando sysctl --system que é necessário para ativar a emulação do mouse 2 . Por algum motivo, ele não está habilitado por padrão, o que é algo que gostaria de analisar mais tarde.

Este é o meu arquivo udev específico para o meu dongle logitech:

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="046d", RUN+="/bin/sh  /home/user/mouse-initialize-settings.sh"
    
por RyanWC 24.09.2017 / 23:02