Reasigne el botón táctil lateral en Microsoft Sculpt Comfort Mouse

12

Recientemente compré un mouse Microsoft Sculpt Comfort. Utiliza Bluetooth para conectar a mi ordenador portátil y todos regulares botones del ratón trabajo perfecto bajo Linux y Windows 7. Lo que es diferente acerca de este ratón, sin embargo, es que tiene un especial Windows/ Supertecla en el lado que se pone en marcha el inicio / menú cuando se presiona. También tiene un sensor táctil que detecta cuándo se presiona el botón lateral hacia arriba o abajo y hace vibrar el mouse para reconocer que se ha activado.

Por supuesto, en Windows hay un programa que me permite cambiar lo que hacen los trazos y apagar la vibración.

En Linux, xev detecta solo una pulsación de tecla normal cuando se presiona o desliza el botón lateral. Xev no informa ninguna pulsación del botón del mouse.

Entonces mi pregunta es, ¿puedo cambiar las pulsaciones de teclas que se envían cuando estoy bajo Linux?

Me encantaría cambiar la asociación de teclas de taba down, backspacea up, (lo que informa xev) a ctrl+ alt+ left/ rightpara cambiar entre espacios de trabajo.

¡Gracias por cualquier ayuda!

usuario223544
fuente
1
Gracias por el consejo ubfan1, xinput get-button-map me da 13 botones. Informe de prueba xev y xinput solo botones 1-7. Intenté reasignar los botones 8-13 usando xinput set-button-map y xbindkeys del enlace, pero nada cambió. Al presionar la tecla lateral, la tecla de informes presiona 133 (super), deslizar hacia arriba la tecla de informes presionar 22 (retroceso), deslizar hacia abajo la tecla de informes presionar 23 (pestaña).
user223544

Respuestas:

5

Acabo de comprar uno y descubrí que lo siguiente me funciona perfectamente.

  1. Abra dconf-editor ( sudo apt-get install dconf-editorsi aún no está instalado).
  2. Navegue a org -> gnome -> escritorio -> wm -> combinaciones de teclas.
  3. Cambie el valor de switch-to-workspace-down a

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    y el valor del interruptor a espacio de trabajo en marcha a

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']

Axel David Ingolfsson
fuente
Esta solución funciona de manera más confiable que la solución que encontré con xbindkeys. El único inconveniente en comparación con xbindkeys es que la solución xbindkeys parecía capturar solo los eventos de la tecla del mouse, mientras que esta solución también funcionará si se usan las teclas del teclado. En cualquier caso, la fiabilidad de esta solución la convierte en la mejor solución.
user223544
2

Entonces, dado que Microsoft Sculpt Comfort Mouse no registra las pulsaciones de los botones del mouse para los gestos súper y deslizar, sino que registra las pulsaciones de las teclas del teclado, utilicé los paquetes 'xautomation' y 'xbindkeys' para escuchar esas pulsaciones de teclas y enviar Ctrl+ Alt+ Right/ Leftpara cambiar entre espacios de trabajo. No es una solución ideal, pero funciona como 8 de cada 10 veces.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Lo que hace este script xbindkeys es escuchar las pulsaciones de teclas que los ratones deslizan hacia arriba y hacia abajo y envían gestos hacia la computadora. Si se detecta, xautomation envía la pulsación de escritorio estándar de movimiento, control+ alt+ left/ right.

El gesto de deslizar hacia arriba en el mouse envía la pulsación de tecla de left control+ left super+ backspace. El gesto de deslizar hacia abajo en el mouse envía la pulsación de teclas left control+ left super+ tab. m: 0x4 + mod4 + m: 0x0 + c22 es la combinación de código de tecla real que detecta xbindkeys.

Lo jugaré un poco más para ver si puedo mejorar la eficiencia, pero por ahora esto hace el trabajo. Solo espero que taby backspacelas salidas del mouse no se estropeen con el trabajo que estoy haciendo.

usuario223544
fuente
1
¿Puedes explicar cómo funciona la solución? ¿Está enviando el mouse Control_L+Super_L+Tab(de dónde provienen Control_L + Super_L)? ¿O hace coincidir los botones del mouse con m:0x4+mod4+m:0x0+c:23(Parecía decir que no se generan eventos del mouse en la pregunta)?
Volker Siegel
Edité mi solución para explicar de dónde provienen Control_L + Super_L. También expliqué el propósito de m: 0x0 + mod4 + m: 0x0 + c: 23.
user223544
0

Quería asignar los mismos botones para navegar por las pestañas en Firefox en ambas direcciones. Estoy usando xbindkeys y xmacro. ¡Funciona bastante bien!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
usuario3229974
fuente