Configurar mouse USB con rueda y multibotón en Debian
Hace unos días me llegó a casa el Apple Mighty Mouse que compré para mi Mac. Por curiosidad, decidí probarlo en Debian, a ver qué tal funcionaba. Hasta ahora usaba un ratón normal de dos botones y rueda conectado por PS/2.
Aprovechando eso, he decidido hacer un mini-tutorial sobre cómo configurar este tipo de ratones con multitud de botones para que funcione en las X.
Cuando conectemos el mouse a un puerto USB, la máquina lo detecta automáticamente, apareciendo un mensaje en /var/log/syslog tal como este:
Si no queremos mirar en syslog o para asegurarnos, podemos ejecutar usbview y nos mostrará que el mouse está conectado.
Para que nos funcione el mouse debemos tener soporte en el kernel para USB y HID (Human Interface Devices). Lo más normal es que sí tengamos soporte para esto, de lo contrario, deberíamos recompilar el kernel.
Empezaremos por crear el dispositivo:
newton:~# mkdir /dev/input
newton:~# mknod /dev/input/mice c 13 63
Una vez creado, pasamos a editar el archivo de configuración de XFree ( /etc/X11/XF86Config-4 )
Es probable que ya tengamos un mouse configurado, podemos añadir el nuevo sin borrar el anterior para poder usar el PS/2 en caso que tengamos algún problema de configuración.
Buscamos entonces la línea Section "InputDevice". Encontraremos la definición del teclado y la del mouse. Añadamos a continuación el nuevo:
He puesto ExplorerPS/2 como protocolo del mouse, los más comunes son éste e ImPS/2. A mí ambos me funcionaban igual.
En la opción Buttons indicamos el número de botones del mouse, y en ZAxisMapping los botones que hacen el scroll (con 4 y 5 funciona bien con todos los mouse)
Nota: No he conseguido hacer funcionar el scroll horizontal del Mighty Mouse (porque linux no detecta los botones correspondientes a la ruedecita izquierda/derecha, sólo detecta arriba/abajo), así que pierde parte de su gracia (la rueda de 360º).
En el caso que detectara los botones correspondientes al scroll (quizá con otros modelos de mouse sí funcione) bastaría con indicarle al ZAxisMapping los botones del scroll horizontal. La cosa quedaría así:
Option "ZAxisMapping" "4 5 6 7"
Una vez añadido, debemos asegurarnos que en la sección "ServerLayout" (al final del fichero), tengamos puesto el nuevo mouse, con el nombre que indicamos ("Mouse USB"):
Ahora solo debemos reiniciar las X y funcionará el nuevo mouse.
Aprovechando eso, he decidido hacer un mini-tutorial sobre cómo configurar este tipo de ratones con multitud de botones para que funcione en las X.
Cuando conectemos el mouse a un puerto USB, la máquina lo detecta automáticamente, apareciendo un mensaje en /var/log/syslog tal como este:
Sep 23 14:37:42 newton kernel: input: USB HID v1.10 Mouse [Mitsumi Electric Apple Optical USB Mouse] on usb4:5.0
Si no queremos mirar en syslog o para asegurarnos, podemos ejecutar usbview y nos mostrará que el mouse está conectado.
Para que nos funcione el mouse debemos tener soporte en el kernel para USB y HID (Human Interface Devices). Lo más normal es que sí tengamos soporte para esto, de lo contrario, deberíamos recompilar el kernel.
Empezaremos por crear el dispositivo:
newton:~# mkdir /dev/input
newton:~# mknod /dev/input/mice c 13 63
Una vez creado, pasamos a editar el archivo de configuración de XFree ( /etc/X11/XF86Config-4 )
Es probable que ya tengamos un mouse configurado, podemos añadir el nuevo sin borrar el anterior para poder usar el PS/2 en caso que tengamos algún problema de configuración.
Buscamos entonces la línea Section "InputDevice". Encontraremos la definición del teclado y la del mouse. Añadamos a continuación el nuevo:
Section "InputDevice" Identifier "Mouse USB" Driver "mouse" Option "AlwaysCore" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "Buttons" "6" Option "ZAxisMapping" "4 5" EndSectionCon este bloque activamos el mouse /dev/input/mice que hemos creado previamente.
He puesto ExplorerPS/2 como protocolo del mouse, los más comunes son éste e ImPS/2. A mí ambos me funcionaban igual.
En la opción Buttons indicamos el número de botones del mouse, y en ZAxisMapping los botones que hacen el scroll (con 4 y 5 funciona bien con todos los mouse)
Nota: No he conseguido hacer funcionar el scroll horizontal del Mighty Mouse (porque linux no detecta los botones correspondientes a la ruedecita izquierda/derecha, sólo detecta arriba/abajo), así que pierde parte de su gracia (la rueda de 360º).
En el caso que detectara los botones correspondientes al scroll (quizá con otros modelos de mouse sí funcione) bastaría con indicarle al ZAxisMapping los botones del scroll horizontal. La cosa quedaría así:
Option "ZAxisMapping" "4 5 6 7"
Una vez añadido, debemos asegurarnos que en la sección "ServerLayout" (al final del fichero), tengamos puesto el nuevo mouse, con el nombre que indicamos ("Mouse USB"):
Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Mouse USB" InputDevice "Configured Mouse" EndSection
Ahora solo debemos reiniciar las X y funcionará el nuevo mouse.

