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"