Cambiar la velocidad de desplazamiento con libinput


16

La rueda del mouse se desplaza demasiado lentamente, por lo que quiero aumentar el número de líneas para cada "marca" de desplazamiento. Leí que esto es posible configurando Evdev Scrolling Distancecon xinput, sin embargo, estoy usando libinputy no veo nada relacionado con la distancia de desplazamiento.

Salida de xinput list-propsen mi mouse:

Device Enabled (139):   1                                                                                                       
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (275): -0.640000                                                                                           
libinput Accel Speed Default (276): 0.000000                                                                                    
libinput Accel Profiles Available (277):    1, 1                                                                                
libinput Accel Profile Enabled (278):   1, 0                                                                                    
libinput Accel Profile Enabled Default (279):   1, 0                                                                            
libinput Natural Scrolling Enabled (280):   0                                                                                   
libinput Natural Scrolling Enabled Default (281):   0                                                                           
libinput Send Events Modes Available (259): 1, 0                                                                                
libinput Send Events Mode Enabled (260):    0, 0                                                                                
libinput Send Events Mode Enabled Default (261):    0, 0                                                                        
libinput Left Handed Enabled (282): 0                                                                                           
libinput Left Handed Enabled Default (283): 0                                                                                   
libinput Scroll Methods Available (284):    0, 0, 1                                                                             
libinput Scroll Method Enabled (285):   0, 0, 0                                                                                 
libinput Scroll Method Enabled Default (286):   0, 0, 0                                                                         
libinput Button Scrolling Button (287): 2                                                                                       
libinput Button Scrolling Button Default (288): 274                                                                             
libinput Middle Emulation Enabled (289):    0                                                                                   
libinput Middle Emulation Enabled Default (290):    0                                                                           
Device Node (262):  "/dev/input/event1"                                                                                         
Device Product ID (263):    1133, 50487                                                                                         
libinput Drag Lock Buttons (291):   <no items>                                                                                  
libinput Horizonal Scroll Enabled (264):    1                                                  

¿Cómo puedo cambiar mi velocidad de desplazamiento? Estoy corriendo en Arch Linux, Xfce 4.12.


1
Ahora hay una solicitud de función para que libinput implemente esto (cortesía de @clel ).
n.st

Respuestas:


4

No hay una API actual para cambiar la velocidad de desplazamiento de los dispositivos libinput, pero este blog explica cómo los clics de la rueda del mouse corresponden a un ángulo de movimiento que puede cambiar por mouse en el archivo de configuración udev de systemd /usr/lib/udev/hwdb.d/70-mouse.hwdb. Lea los comentarios MOUSE_WHEEL_CLICK_ANGLEal principio de este archivo.

Para hacer un cambio local, cree un nuevo archivo

 /etc/udev/hwdb.d/71-mouse-local.hwdb

y agrega tu regla principal. Por ejemplo, si tiene el mouse ImExPS / 2, puede duplicar el valor predeterminado de 15 grados por clic a 30 grados con

# ImExPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250
 MOUSE_WHEEL_CLICK_ANGLE=30

Recargar la base de datos udev

 sudo udevadm hwdb --update
 sudo udevadm trigger /dev/input/event1

1
There is no current api for changing the scroll speed for libinput devices: ¿ha cambiado esto desde entonces?
orschiro

1
@orschiro Tengo la impresión de que una API no es la intención. La esperanza sería que todos los dispositivos se identifiquen y configuren correctamente en udev y no haya necesidad de configuración del usuario. Echa un vistazo a todos los blogs de libinput . En particular, 1.4 corresponde a terminar la lista TODO inicial para libinput.
meuh

44
en Ubuntu 16.10 el sistema udev conf está en /lib/udev/hwdb.d/70-mouse.hwdb
Jonas Berlin

2
de todos modos hacer lo mismo con un touchpad?
Francesco

1
@daboross Sí. Hay dos aspectos a considerar: la respuesta anterior solo está tratando de normalizar la salida de un dispositivo para que, cuando un usuario haga la misma cantidad de movimiento en 2 ratones diferentes, por ejemplo, el sistema pueda calcular que son equivalentes, a pesar de los informes. del hardware siendo diferente. El segundo aspecto es la cantidad de movimiento de pantalla que esto debería representar, y eso está determinado por la cantidad compleja de software que enfrenta el usuario, como el kit de herramientas gráficas, el sistema de ventanas, ppp de la pantalla, etc.
Meuh

3

Libinput no tiene ningún tipo de concepto "para cada desplazamiento de rueda, hacer n líneas / grados" como una parte común, la configuración parece ser específica del dispositivo por ahora, ya que algunos Logitech tienen el parámetro Evdev Scrolling Distance (278)que posiblemente vino con el "viejo" El controlador Evdev incluye.

Esto se considerará una regresión para la experiencia del usuario en mi opinión, donde al principio, se rechazó la inclusión de una sensibilidad de desplazamiento del mouse configurable en el kit de herramientas común (libinput), ahora es parte de una solicitud de extracción para estar en versiones futuras - posiblemente las llamadas a funciones deberán implementarse en cada entorno de escritorio.

Hay muchas posibilidades para solucionar este problema, pero depende de la distribución de Linux.

  1. Sea afortunado y tenga una sensibilidad de desplazamiento específica del controlador: verifique haciendo una búsqueda de todas las entradas con variables de desplazamiento:

    lista de entrada | corte -f2 | cortar -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput list-props '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-props '{}') "
    y establecer la variable específica por , donde puede ser el nombre del dispositivo y puede ser el nombre de la configuración.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. Una solución general es volver a empacar el código libinput y reconstruirlo .

  3. Puede intentar revertir a las interfaces udevadm / evdev con X11 y luego probar la variable X11 MOUSE_WHEEL_CLICK_ANGLE .

  4. A partir de la referencia del último elemento , es posible usarlo imwheelpara emular clics de desplazamiento del mouse en valor de multiplicación.

    # Should use imwheel --kill --buttons "4 5" to restart imwheel,
    # if the mouse has back/forward buttons, otherwhise imwheel --kill is enough.
    # imwheel must be set to autostart in your DE tools.
    #Edit ~/.imwheelrc to include, where '3' is a multiplier
    ".*"
    None,      Up,   Button4, 3
    None,      Down, Button5, 3
    Control_L, Up,   Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
    
  5. Hay configuraciones de aplicación específicas para la sensibilidad de la rueda del mouse, como Chrome SmoothScroll y Firefox SmoothWheel ref .


1
La transición de Libinput ha sido una regresión de UX en muchos sentidos, y casi todo se reduce al control del usuario sobre el comportamiento de su hardware ... Lo cual es lamentable dada la plataforma en la que esto está ocurriendo.
Douglas Gaskell
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.