Cómo cambiar la configuración del mouse y el panel táctil usando Xinput en Linux

Cómo cambiar la configuración del mouse y el panel táctil usando Xinput en Linux
La mayoría de las distribuciones de Linux se envían con biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema. Puede procesar eventos de entrada en Wayland y X y puede manejar una variedad de dispositivos de entrada que incluyen pantallas de pantalla táctil y bolígrafos de lápiz óptico.

Este artículo explica el cambio de varias opciones para un dispositivo de entrada que maneja la biblioteca Libinput. Para verificar y configurar las opciones disponibles, se utilizará una herramienta de línea de comando llamada "Xinput".

Tenga en cuenta que esta guía funciona solo con el servidor de visualización X. Para Wayland, debe confiar en la configuración del sistema proporcionada por la distribución o utilizar una utilidad de configuración centralizada como gsettings.

Lista de dispositivos de entrada

Xinput viene preinstalado de forma predeterminada en Ubuntu. Si por alguna razón no está instalado en su sistema, ejecute el comando a continuación para instalarlo:

$ sudo apt install xinput

Para enumerar todos los dispositivos de entrada externos y incorporados conectados a su sistema, ejecute el comando a continuación:

$ xinput -Lista

Verá alguna salida en terminal como esta:

La entrada en "Puntero de núcleo virtual" (resaltado por flechas rojas) es un mouse USB cableado conectado a mi sistema. Tendrá que usar el nombre o la ID exacto que se muestra en la captura de pantalla anterior para configurar la configuración del mouse o el panel táctil a través de la herramienta de línea de comandos XInput.

Tenga en cuenta que en la captura de pantalla anterior, XInput muestra propiedades de los dispositivos conectados a mi sistema. Los nombres e ID de dispositivos serán diferentes para su sistema dependiendo de la configuración de su hardware y los dispositivos externos conectados a través de receptores USB, Bluetooth o inalámbricos.

Ver propiedades de un dispositivo conectado

Para ver el estado actual y varias opciones activas para el dispositivo enumerado anteriormente, ejecute un comando en el siguiente formato:

$ xinput --listprops "id"

Para el mouse Dell enumerado anteriormente, el comando sería:

$ xinput --listprops 8

Hay una limitación al usar este comando. Los ID que se muestran en la salida del terminal tienden a cambiar cuando conecta un dispositivo listado a un puerto diferente. A medida que las ID siguen cambiando, siempre existe la posibilidad de cambiar accidentalmente la configuración para un dispositivo diferente. Para superar este problema, es mejor usar el nombre completo del dispositivo como identificador en lugar de su ID. Entonces, para el mouse Dell enumerado anteriormente, el mejor comando sería:

$ xinput --listprops "Pixart Dell MS116 USB Optical Mouse"

El área resaltada a continuación en el rectángulo rojo muestra la configuración actual para el dispositivo. Solo puede cambiar las opciones que se muestran en la salida. Dependiendo de las capacidades de su dispositivo, algunas opciones adicionales se pueden enumerar, mientras que otras se pueden omitir por completo.

Cambiar propiedades de un dispositivo conectado

Ahora que sabe cómo verificar las propiedades de un dispositivo de entrada conectado, la configuración se puede cambiar fácilmente utilizando algunos comandos simples.

Por ejemplo, para habilitar o deshabilitar el desplazamiento natural, debe ejecutar comandos en el siguiente formato:

$ xinput set-prop "Pixart Dell MS116 USB Optical Mouse" 285 0
$ xinput set-prop "Pixart Dell MS116 USB Optical Mouse" 285 1

"285" es la identificación para el desplazamiento natural, como se muestra en la captura de pantalla arriba. "0" deshabilita el desplazamiento natural, mientras que "1" lo permite. Una vez más, usar IDS no es una forma confiable de cambiar esta configuración. Un mejor enfoque es usar el identificador de propiedad completo.

$ xinput set-prop "Pixart Dell MS116 USB Optical Mouse"
"Libinput Scrolling natural habilitado" 0
$ xinput set-prop "Pixart Dell MS116 USB Optical Mouse"
"Libinput Natural Scrolling habilitado" 1

Tenga en cuenta que no debe tocar los identificadores de propiedades que tienen la palabra "predeterminado". Estos son valores respirados de referencia y cualquier intento de cambiarlos dará como resultado que Xinput arroje un error.

Para saber más sobre otras opciones y las enumeradas en la salida del terminal anterior, visite la siguiente página.

Hacer los cambios persistentes

El método explicado anteriormente cambia la configuración solo para la sesión activa. Cuando reinicie el sistema, estos cambios desaparecerán. Para hacerlos persistentes, se pueden usar dos enfoques.

El primer método requiere que agregue estos comandos a las aplicaciones de inicio. Puede agregar tantas entradas como desee usando una buena interfaz gráfica. No se requieren permisos de raíz para crear estas entradas, además de cambiarlas más tarde es súper fácil.

Para agregar el comando a las aplicaciones de inicio, inicie la aplicación "Aplicaciones de inicio" desde el lanzador de aplicaciones. Haga clic en el botón "Agregar" para agregar una entrada. Establezca una descripción e ingrese el comando Xinput apropiado según sus necesidades. Asegúrese de que la casilla de verificación se verifique una vez que haya guardado la entrada.

Eso es todo, el comando xinput que ha ingresado se ejecutará automáticamente en el inicio del sistema. He agregado un poco de retraso al comando para esperar a que la sesión se cargue correctamente. Como referencia, aquí está el comando utilizado a continuación en la captura de pantalla a continuación:

$ Sleep 3 && xinput set-propp "Pixart Dell MS116 USB Optical Mouse"
"Libinput Natural Scrolling habilitado" 1

El segundo método requiere que ejecute algunos comandos como root y edite un archivo de texto. La ventaja de usar este método es que no tiene que crear entradas separadas para cada opción en una GUI y todo reside en un archivo de texto, lo que hace que sea más fácil compartirlo entre dispositivos.

Ejecute los comandos a continuación para crear el directorio requerido y el archivo conf:

$ sudo mkdir -p/etc/x11/xorg.confusión.d
$ sudo touch/etc/x11/xorg.confusión.D/99-Libinput.confusión

Observe la parte "99" en el nombre de archivo. Indica el orden de carga de los archivos que existen en "Xorg.confusión.carpeta D ". Un archivo que tiene el número más alto como prefijo se cargará por última vez, anulando cualquier opción especificada en archivos anteriores en caso de que haya duplicados. Al especificar "99" o cualquier otro número como prefijo, puede asegurarse de que esté cargado después de otros archivos.

Abra "99-Libinput.File conf ”con acceso raíz en su editor de texto favorito. Ingrese el fragmento de código a continuación después de realizar los cambios necesarios según sus requisitos.

Sección "InputClass"
Identificador "Dell Mouse"
MatchProduct "Pixart Dell MS116 USB Optical Mouse"
Opción "NaturalsCrolling" "verdadero"
Final

Dónde:

  • Identificador "Dell Mouse" puede ser cualquier nombre que asigne al dispositivo para identificarlo (cambie según sea necesario)
  • MatchProduct "Pixart Dell MS116 USB Optical Mouse" es el nombre exacto del dispositivo que encontró en el comando "xinput -list" utilizado anteriormente (cambie según sea necesario)
  • Opción "NaturalsCrolling" "True" permite el sistema de desplazamiento natural en todo el sistema (cambio según sea necesario)

Al especificar correctamente "MatchProduct", podrá limitar las opciones de configuración a un dispositivo específico solo. Los cambios realizados en el archivo conf entrarán en vigencia cuando reinicie la próxima vez. Puede agregar cualquier cantidad de opciones en la sección "InputClass". Aquí está disponible una lista de varias opciones que se pueden agregar al archivo.

Conclusión

El método explicado anteriormente es especialmente útil cuando desea usar por reglas de configuración del dispositivo. La interfaz de configuración del sistema predeterminada en GNOME y KDE proporciona solo algunas de las opciones más utilizadas disponibles para varios dispositivos de entrada. Para configurar opciones avanzadas para un dispositivo de entrada, no tiene más remedio que usar "Xinput" o crear un archivo de configuración dedicado.