3 votos

Cómo hacer que el empuje izquierdo de la rueda de desplazamiento retroceda una página en Firefox (Logitech M-UAG120 mouse)

Estoy ejecutando la versión de Firefox 67 en Ubuntu 18.10 LTS.

Yo tengo un Logitech M-UAG120 ratón con rueda de desplazamiento. La rueda de desplazamiento tiene una manera de empujar hacia un lado a la izquierda y a la derecha. Lo que yo necesito es el de empujar a la izquierda de acción para hacer lo mismo en Firefox Alt-a la IZQUIERDA para retroceder una página, y la operación opuesta para empujar la rueda de desplazamiento a la derecha. Ahora, Firefox no responde a cualquiera de los eventos de las X, ya sea para la rueda del ratón empujando operaciones. (Estoy llamando a estos "empujando operaciones" porque esto no es lo mismo que hacer clic en el botón central del ratón presionando verticalmente hacia abajo en la rueda de desplazamiento, que está funcionando correctamente). El desplazamiento de la operación también funciona correctamente.

Corrí wirste y determinado que es la generación de estos eventos de las X:

  1. A la izquierda la rueda del ratón operación de inserción: Botón 6
  2. A la derecha la rueda del ratón operación de inserción: Botón 7

Miré en http://kb.mozillazine.org/About:config y no encontré nada específico para dichos eventos, buscado en la web y se quedó corto.

¿Cómo puedo configurar el ratón, o Firefox, los eventos de las X ser coherentes para que se produzca el mismo comportamiento? No quiero instalar controladores especiales para este ratón, si es posible.

Actualización #1

En mi Ubuntu 18.10 LTS desktop, que tiene un Logitech M525 ratón Bluetooth, la izquierda y derecha de la rueda de desplazamiento push operaciones genera un diferente conjunto de eventos de las X que el cable del ratón en mi laptop, como se ve desde wirste:

  1. A la izquierda la rueda del ratón operación de inserción: Botón 8
  2. A la derecha la rueda del ratón operación de inserción: Botón 9

Y este en particular del ratón derecha/izquierda de la rueda de desplazamiento push operaciones de trabajo como esperaba.

Actualización #2:

He probado el Logitech M-UAG120 ratón de nuevo en ambas máquinas (mi laptop y mi escritorio, tanto con Ubuntu 18.10 LTS), y el X eventos generados son sistemáticamente diferentes de los de Logitech M525 ratón Bluetooth.

Yo especulo que la X específicos de los eventos no están estandarizadas a través de los dispositivos de mouse, pero que es sorprendente, ya que tanto el ratón dispositivos de Logitech.

2voto

coergoa Puntos 21

Solución

He encontrado la siguiente solución:

He añadido /usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf:

Section "InputClass"
        Identifier "Logitech Optical Tilt Wheel Mouse M-UAG120"
        MatchUSBID "046d:c019" 
        MatchDevicePath "/dev/input/event*"
        # I found that using this command:
        #
        #   xinput --set-button-map 10 1 2 3 4 5 8 9 8 9
        #                                        ^ ^
        # The "^" above are the numbers I changed from 6 and 7 to 8 and 9, respectively.
        # That does the same thing as this ButtonMapping below:
        #
        Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
EndSection

Y se reinicia.

Es desconcertante para mí que reiniciar gdm gestor de visualización utilizando sudo service gdm restart ¿ no obra: me impidió desde el registro (se mantiene hacer estallar de nuevo a la petición de la contraseña a pesar de que yo no tenía bloqueo de mayúsculas o nada), así que he tenido que recurrir a reiniciar.


TL;DR Material de Referencia

Material de referencia que he encontrado, que fue muy útil para entender lo anterior:

xinput para encontrar el id de dispositivo y el botón parámetros

Por el id de dispositivo, me refiero a la id=10 número de abajo. Mediante el botón "parámetros" me refiero a que el significado de los parámetros utilizados en la ButtonMapping en la /usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf archivos.

Grep para encontrar el dispositivo después de estar conectado:

$ xinput --list | grep -i logit
⎜   ↳ Logitech USB Optical Mouse                id=10   [slave  pointer  (2)]

Ver lo que el sistema piensa que son los significados de los botones:

$ xinput --list 10 | grep -i 'Button labels'
        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" None

Estoy especulando que el citado cadenas no están basadas en 1 enumeran los valores correspondientes a la ButtonMapping, pero no tengo prueba de que todavía. Así, suponiendo que es correcto, podemos enumerarlos:

$ xinput --list 10 | grep -i 'Button labels' | sed 's%: %:\n%g; s%" "%"\n"%g' | sed '1d' | cat -n
     1  "Button Left"
     2  "Button Middle"
     3  "Button Right"
     4  "Button Wheel Up"
     5  "Button Wheel Down"
     6  "Button Horiz Wheel Left"
     7  "Button Horiz Wheel Right"
     8  "Button Side"
     9  "Button Extra"
    10  "Button Forward"
    11  "Button Back" None
$ 

Que la especulación parece también jive con Logitech_Marble_Mouse -- Basic_function.

Por lo que el ButtonMapping posiciones para el 8 y 9 corresponden a la "navegador" y "navegador adelante" las acciones que desea que el sistema pase al Firefox X aplicación. Desde quería preservar todos los otros comportamientos, la clave de la línea en la /usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf archivo:

Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
#                                 ^ ^

(La ^ marcó el 6 y 7 de los parámetros que se cambian, solamente).

Botón De Asignación

libinput(4) el hombre Botón de la página de Asignación de sección describe el mecanismo.

"libinput" es lo que me tropecé porque en Ubuntu 16.04 y Logitech M570 afirma:

Ubuntu 18.04 no utilice el controlador de evdev por defecto ya. Ha sido sustituida por Libinput

Cambia dinámicamente el botón de mapa utilizando el comando xinput

entrada(1) página man tiene una opción para verificar directamente el botón parámetros de la ButtonMapping opción sin necesidad de reiniciar el gestor de visualización o X server:

--set-button-map device map_button_1 [map_button_2 [...]]
        Change the button mapping of device. The buttons are specified in physical order (starting with button 1) and are mapped to the logical button provided. 0 disables a but‐
        ton. The default button mapping for a device is 1 2 3 4 5 6 etc.

Por lo que el comando que podría utilizar, sin tener que reiniciar/reiniciar nada, fue:

$ xinput --set-button-map 10 1 2 3 4 5 8 9 8 9
$

La asignación de botones

Logitech_Marble_Mouse -- la Asignación de botones es ArchLinux específicos y específicos del dispositivo, pero todavía bastante útil, específicamente, donde se establece:

Es posible que desee asignar nuevas acciones para que se presiona un botón. Esto se hace mediante el ajuste de los parámetros de posición. Los valores pueden ser modificados por los botones 1, 2, 3, 8, y 9. (El botón 2 es simplemente una combinación de prensa de los dos botones grandes.) No alteran los parámetros 4, 5, 6, o 7.

Excepto que yo realmente tenía para cambiar el 6 y 7 de parámetros en la mi ButtonMapping para este dispositivo de ratón. El de arriba no se explica por qué se declaró "no altera".

xorg.conf(5) el hombre de la página

xorg.conf(5) el hombre de la página se muestra cómo la conf archivos de trabajo, pero ser conscientes de que, desde el beheavior cambios de versión en versión, asegúrese de que usted está en la versión correcta, como se puede ver en la parte superior de sus páginas web:

xorg.conf(5) annotated screenshot

lsusb -d PROVEEDOR de:DISPOSITIVO de

Ejecutando el comando lsusb (lsusb(8) página man) me ayudó a identificar el proveedor y la id del dispositivo:

$ lsusb -d 046d:c019
Bus 001 Device 009: ID 046d:c019 Logitech, Inc. Optical Tilt Wheel Mouse

Que es lo que terminé usando dentro de la MatchUSBID opción en la InputClass sección en la 71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf. Ver Govelius la respuesta a los Problemas en la asignación de diferentes diseños para múltiples dispositivos de entrada en Linux.

/var/log/Xorg*.los archivos de registro

Encontrar el más recientemente modificado /var/log/Xorg.*.log ficheros:

$ ls -ladtr /var/log/X*
-rw-r--r-- 1 root root 18922 Mar 17  2017 /var/log/Xorg.failsafe.log.old
-rw-r--r-- 1 root root 18922 Mar 19  2017 /var/log/Xorg.failsafe.log
-rw-r--r-- 1 root root 26019 Jun  8 12:20 /var/log/Xorg.2.log.old
-rw-r--r-- 1 root root 26019 Jun  8 12:21 /var/log/Xorg.2.log
-rw-r--r-- 1 root root 28910 Jun  8 12:45 /var/log/Xorg.0.log.old
-rw-r--r-- 1 root root 38010 Jun  8 12:45 /var/log/Xorg.1.log.old
-rw-r--r-- 1 root root 27869 Jun  8 12:57 /var/log/Xorg.0.log
-rw-r--r-- 1 root root 34901 Jun  8 12:57 /var/log/Xorg.1.log
$ 

Luego grepping a través de él para ver a mi ButtonMapping se ve:

$ grep -n -B10 -i -H -e 'ButtonMapping' /var/log/Xorg.1.log
/var/log/Xorg.1.log-292-[   665.912] (**) Logitech USB Optical Mouse: Applying InputClass "libinput pointer catchall"
/var/log/Xorg.1.log-293-[   665.912] (**) Logitech USB Optical Mouse: Applying InputClass "Logitech Optical Tilt Wheel Mouse M-UAG120"
/var/log/Xorg.1.log-294-[   665.912] (II) Using input driver 'libinput' for 'Logitech USB Optical Mouse'
/var/log/Xorg.1.log-295-[   665.912] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 46 paused 0
/var/log/Xorg.1.log-296-[   665.913] (**) Logitech USB Optical Mouse: always reports core events
/var/log/Xorg.1.log-297-[   665.913] (**) Option "Device" "/dev/input/event5"
/var/log/Xorg.1.log-298-[   665.913] (**) Option "_source" "server/udev"
/var/log/Xorg.1.log-299-[   665.914] (II) event5  - Logitech USB Optical Mouse: is tagged by udev as: Mouse
/var/log/Xorg.1.log-300-[   665.914] (II) event5  - Logitech USB Optical Mouse: device is a pointer
/var/log/Xorg.1.log-301-[   665.914] (II) event5  - Logitech USB Optical Mouse: device removed
/var/log/Xorg.1.log:302:[   665.914] (**) Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
$ 

Logitech Optical Tilt Wheel Mouse M-UAG120 muestra y la posterior ButtonMapping.

InputClass de configuración

El libinput(4) el hombre de la página InputClass Sección describe todas las opciones, incluyendo la MatchUSBID opción.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: