Como faço para corrigir o teclado xbindkeys no botão do mouse, repetindo o pressionamento de teclas quando pressionado?

Como faço para corrigir o teclado xbindkeys no botão do mouse, repetindo o pressionamento de teclas quando pressionado?

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

Este clique do mouse não funciona mais como um único pressionamento de botão, mas oscila entre os estados ligado e desligado quando pressionado. Esse comportamento indesejável está tornando inutilizável o trabalho. Por exemplo, isso está me impedindo de deslocar a tela em programas gráficos ou de deslocar-se na janela de visualização do Blender.

Usar xev to para ler o mapeamento de botões mostra os estados alternados piscando de forma semelhante ao pressionamento de teclas repetidas no teclado.

Alguém tem uma ideia de qual é o problema? Certa vez, tive esse problema em minha nova instalação do Mint 18.2, mas ele desapareceu após reiniciar e recarregar as baterias. Desta vez, esta solução não é a resposta, pois aconteceu novamente ao atualizar o Mint 18.2 e novamente em uma nova instalação do Ubuntu.

Desvinculei a tecla de pesquisa nos atalhos do teclado.

Responder1

A solução para impedir a repetição de um pressionamento de tecla é adicionar 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 o problema, o problema real que eu estava enfrentando não foi resolvido, que era fazer com que o botão de pesquisa funcionasse perfeitamente como o botão do meio do mouse em programas como o Blender. A solução acima não funciona bem com o modificador Shift por um motivo que não entendo.

A melhor solução para esse problema foi abandonar totalmente o xbindkeys e, em vez disso, ativar a emulação do clique do meio adicionando este 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, tive que criar um arquivo udev onde /etc/udev/rules.d/ele chamaria um script sempre que visse meu dongle conectado. Este script contém o comando sysctl --systemnecessário para ativar a emulação do mouse 2. Por algum motivo, ele não está habilitado por padrão, algo que gostaria de examinar mais tarde.

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

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="046d", RUN+="/bin/sh  /home/user/mouse-initialize-settings.sh"

informação relacionada