Tengo un logitech MX400 inalámbrico. Tiene un botón de búsqueda que me gustaría usar para pegar (en lugar de la rueda de desplazamiento extremadamente sensible pero difícil de presionar). Ya reasigné otros botones con xbindkeys, y usé xev para encontrar el código de presión del botón, pero esto no funciona para el botón de búsqueda. usando xev y haciendo clic en el botón de búsqueda obtengo los siguientes eventos
FocusOut event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 4294967275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PropertyNotify event, serial 34, synthetic NO, window 0x3c00001,
atom 0x1d7 (_NET_WM_ICON_GEOMETRY), time 23653064, state PropertyNewValue
No hay eventos de ButtonPress. Parece que el botón de búsqueda se intercepta en un nivel por debajo de los X eventos. ¿Algunas ideas? Tengo ubuntu 12.04. Ubuntu realmente ve el clic y genera un diálogo de búsqueda, pero no hay rastro de un evento de clic en el xev.
Editar
Revisé el método provisto con xmodmap. Mi .Xmodmap
ahora contiene la siguiente línea
keycode 225 = XF86Paste NoSymbol XF86Paste``
ejecutar xmodmap ~/.Xmodmap
ahora deshabilita el botón por completo (o al menos, no obtengo ningún resultado al presionarlo). Lo intenté xmodmap -pke
y se imprime:
keycode 225 = XF86Paste NoSymbol XF86Paste NoSymbol XF86Paste
Lo suficientemente extraño. Todas las otras entradas tienen un formato similar. Estoy cerca de la solución, pero todavía hay algo extraño.
Editar 2
Traté de ejecutar xinput (nunca escuché de este comando. Cosas increíbles). Hay dos entradas para Logitech. Aquí está el resultado de enumerar cada uno de ellos (id 9 y 10)
Logitech USB Receiver id=9 [slave pointer (2)]
Reporting 7 classes:
Class originated from: 9. Type: XIButtonClass
Buttons supported: 24
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" "Button Task" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown"
Button state:
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 3:
Label: Rel Vert Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 3
type: 1 (vertical)
increment: -1.000000
flags: 0x2 ( preferred )
Logitech USB Receiver id=10 [slave pointer (2)]
Reporting 6 classes:
Class originated from: 10. Type: XIButtonClass
Buttons supported: 7
Button labels: "Button 0" "Button Unknown" "Button Unknown" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right"
Button state:
Class originated from: 10. Type: XIKeyClass
Keycodes supported: 248
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
El dispositivo de prueba 9 no hace nada con el botón. En cambio, el dispositivo de prueba 10 funciona, y esta es la salida cuando hago clic
$ xinput test 10
key press 225
key release 225
key press 225
key release 225
key press 225
key release 225
Por lo tanto, parece que el mouse actúa como un teclado en este sentido, pero por alguna razón, xmodmap no hace nada cuando recibe la clave 225.
** Editar **
Puedo confirmar que agregar keycode 225 = a
impresiones a
cada vez que hago clic en el botón. Entonces, el problema parece estar relacionado con cómo se maneja realmente XF86Paste. Lo estoy enviando, pero no está pegando.
tail -f /var/log/dmesg
luego intente presionar el botón. ¿Obtiene alguna salida que se refiera a teclas / botones?
xinput list
luego descubra el código del botón de su clave de búsqueda con xinput test <MOUSE ID>
. ¿Esto funciona?
xev
mostrar los eventos XF86Paste / XF86Copy, pero no sucede nada. Eso significa que debe usar la combinación de teclas CTRL + v para pegar. Xmodmap asigna los botones 1: 1, pero puede usar la configuración de métodos abreviados de teclado para activar la ejecución de un comando al presionar una tecla (consulte mi respuesta).
xbindkeys
configurado para ejecutarte cuando inicias, ¿verdad? ¿Puedes desactivarlo e intentarlo de nuevo?