¿Cómo soluciono el teclado xbindkeys con el botón del mouse, repitiendo las pulsaciones de teclas cuando se mantienen presionadas?

¿Cómo soluciono el teclado xbindkeys con el botón del mouse, repitiendo las pulsaciones de teclas cuando se mantienen presionadas?

Tengo un mouse Logitech MX Revolution que tiene una tecla de teclado XF86Search. Utilicé xdotool para mapearlo como el botón central del mouse dentro de mi archivo xbindkeys.

Este clic del mouse ya no actúa como presionar un solo botón, sino que parpadea entre estados de encendido y apagado cuando se mantiene presionado. Este comportamiento indeseable hace que sea inutilizable para trabajar. Por ejemplo, me impide poder desplazarme por el lienzo en programas gráficos o desplazarme en la ventana gráfica de Blender.

El uso de xev para leer la asignación de botones muestra los estados alternos que parpadean de forma similar a la pulsación repetida de teclas del teclado.

¿Alguien tiene una idea de cuál es el problema? Una vez tuve este problema en mi nueva instalación de Mint 18.2, pero desapareció después de reiniciar y recargar mis baterías. Esta vez, esta solución no es la respuesta, ya que sucedió nuevamente al actualizar Mint 18.2 y nuevamente en una nueva instalación de Ubuntu.

Desaté la clave de búsqueda en los atajos de teclado.

Respuesta1

La solución para evitar que se repita la pulsación de una tecla es agregar el comando xset -r keycode en el archivo xbindkeys. Se comporta de la misma manera que deshabilitar la repetición de teclas en configuración/teclado.

el código implementado se ve así:

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

"xdotool mouseup 2"
    m:0x0 + c:225 + release
    XF86Search

Si bien esto resolvió este problema, el problema real que estaba teniendo no se solucionó, que era lograr que el botón de búsqueda funcionara perfectamente como botón central del mouse en programas como Blender. La solución anterior no funciona bien con el modificador Shift por una razón que no entiendo.

La mejor solución para este problema fue renunciar por completo a xbindkeys y, en su lugar, habilitar la emulación del clic central agregando 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

Después de esto, tuve que crear un archivo udev en /etc/udev/rules.d/el que llamaría a un script cada vez que viera mi dongle conectado. Este script contiene el comando sysctl --systemnecesario para habilitar la emulación del mouse 2. Por alguna razón, no está habilitado de forma predeterminada, algo que me gustaría analizar más adelante.

Este es mi archivo udev específico para mi dongle Logitech:

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

información relacionada