Changer la vitesse de défilement avec libinput

16

Ma roulette de la souris défile trop lentement, donc je veux augmenter le nombre de lignes pour chaque "tick" de défilement. J'ai lu que cela est possible en réglant le Evdev Scrolling Distanceavec xinput, cependant, j'utilise libinputet je ne vois rien de lié à la distance de défilement.

Sortie de xinput list-propssur ma souris:

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                                                  

Comment puis-je changer ma vitesse de défilement? Je cours sur Arch Linux, Xfce 4.12.

Andrew Sun
la source
1
Il y a maintenant une demande de fonctionnalité pour libinput pour l'implémenter (gracieuseté de @clel ).
2018

Réponses:

4

Il n'y a pas d'api actuelle pour changer la vitesse de défilement des périphériques libinput, mais ce blog explique comment les clics de la molette de la souris correspondent à un angle de mouvement que vous pouvez modifier par souris dans le fichier de configuration udev de systemd /usr/lib/udev/hwdb.d/70-mouse.hwdb. Lisez les commentaires MOUSE_WHEEL_CLICK_ANGLEau début de ce fichier.

Pour effectuer une modification locale, créez un nouveau fichier

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

et ajoutez votre règle primordiale. Par exemple, si vous avez la souris ImExPS / 2, vous pouvez doubler la valeur par défaut de 15 degrés par clic à 30 degrés avec

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

Recharger la base de données udev

 sudo udevadm hwdb --update
 sudo udevadm trigger /dev/input/event1
meuh
la source
1
There is no current api for changing the scroll speed for libinput devices: cela a-t-il changé depuis?
orschiro
1
@orschiro J'ai l'impression qu'un API n'est pas l'intention. L'espoir serait que tous les périphériques soient correctement identifiés et configurés dans udev et qu'il n'y ait alors pas besoin de configuration utilisateur. Consultez tous les blogs libinput . En particulier, 1.4 correspond à la fin de la liste TODO initiale pour libinput.
meuh
4
dans Ubuntu 16.10, le système udev conf se trouve dans /lib/udev/hwdb.d/70-mouse.hwdb
Jonas Berlin
2
de toute façon faire de même avec un pavé tactile?
Francesco
1
@daboross Oui. Il y a deux aspects à considérer: la réponse ci-dessus essaie simplement de normaliser la sortie d'un périphérique afin que lorsqu'un utilisateur effectue la même quantité de mouvement sur 2 souris différentes, par exemple, le système puisse calculer qu'elles sont équivalentes, malgré les rapports du matériel étant différent. Le deuxième aspect est alors la quantité de mouvements d'écrans que cela devrait représenter, et cela est déterminé par la quantité complexe de logiciels auxquels l'utilisateur est confronté, comme la boîte à outils graphique, le système de fenêtrage, les dpi de l'écran, etc.
meuh
3

Libinput n'a pas de concept "pour chaque molette de défilement, faire n lignes / degrés" en tant que partie commune, le paramètre semble être spécifique à l'appareil pour l'instant, car certains Logitech ont le paramètre Evdev Scrolling Distance (278)éventuellement fourni avec l '"ancien" Le pilote Evdev comprend.

Cela sera considéré comme une régression pour l'expérience utilisateur à mon avis, où au début, l'inclusion d'une sensibilité de défilement de la souris configurable dans la boîte à outils commune (libinput), a été refusée, cela fait maintenant partie d'une demande de pull pour être dans les futures versions - éventuellement, les appels de fonction devront être implémentés dans chaque environnement de bureau.

Il existe de nombreuses possibilités pour résoudre ce problème, mais cela dépend de la distribution Linux.

  1. Soyez chanceux et ayez une sensibilité de défilement spécifique au pilote - vérifiez en faisant une recherche pour toutes les entrées avec des variables de défilement:

    liste xinput | coupe -f2 | cut -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput list-props '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-props '{}') "
    et en définissant la variable spécifique par , où peut être le nom du périphérique et le nom du paramètre.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. Un correctif général consiste à rapatrier le code libinput et à le reconstruire .

  3. Vous pouvez essayer de restaurer les interfaces udevadm / evdev avec X11, puis essayez la variable X11 MOUSE_WHEEL_CLICK_ANGLE .

  4. À partir de la référence du dernier élément , il est possible de l'utiliser imwheelpour émuler les clics de défilement de la souris en multipliant la valeur.

    # 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. Il existe des paramètres d'application spécifiques pour la sensibilité de la molette de la souris, comme Chrome SmoothScroll et Firefox SmoothWheel ref .

Mateus Matucuma Teixeira
la source
1
La transition Libinput a été une régression UX à bien des égards, dont la quasi-totalité se résume au contrôle par l'utilisateur du comportement de leur matériel ... Ce qui est regrettable compte tenu de la plate-forme sur laquelle cela se produit.
Douglas Gaskell