J’ai récemment changé de souris pour une souris ergonomique 3M (souris verticale). Celle-ci possède 3 boutons mais pas de roulette pour le défilement, ce qui est pénible mais pas une fatalité. Comme avec les souris trackball, il faut donc simuler la roulette en définissant un bouton qui, appuyé tout en bougeant la souris, va effectuer le défilement. Sous Gnome avec Ubuntu 18.04, il y a 3 manières de s’y prendre :

facile mais limité

Avec Dconf, accéder à la clé org.gnome.desktop.peripherals.trackball.scroll-wheel-emulation-button  et changer la valeur à 2. Ceci semble marcher pour les trackballs Logitech, mais pas avec ma souris. Ce réglage est chargé dans gsettings donc conservé entre deux redémarrage et personnalisable pour chaque utilisateur.

temporaire

La commande xinput renvoie la liste des périphériques d’entrée disponibles, sous Wayland comme sous Xorg:

Il faut alors repérer dans cette liste la souris : PixArt USB Optical Mouse. Pour obtenir les options disponibles, on peut entrer la commande xinput --list-props "PixArt USB Optical Mouse"  :

L’option pertinente est libinput Scroll Method Enabled (356): 0, 0, 0  qui dit qu’aucune méthode n’est active. L’option libinput Scroll Methods Available (355): 0, 0, 1 renseigne sur les méthodes disponibles dans l’ordre :

  1. défilement à deux doigts = 0 : pas de défilement à 2 doigts
  2. défilement sur le bord = 0 : pas de défilement sur le bord disponible
  3. défilement par bouton =1 : défilement par bouton disponible.

La commande xinput --set-prop "PixArt USB Optical Mouse" "libinput Scroll Method Enabled " 0, 0, 1 va donc activer le défilement jusqu’au prochain démarrage.

définitif

On veut donc entrer ce réglage dans le marbre pour le garder entre deux démarrages. Il faut créer le répertoire /etc/X11/xorg.conf.d/ (absent par défaut sous les nouvelles versions d’Ubuntu) puis y créer un fichier 40-libinput.conf contenant :

Après redémarrage, la configuration est prise en compte et sera la même pour tous les utilisateurs du système. Le nom à indiquer dans l’option MatchProductest le même que celui retourné par xinput. Ici on n’a pas besoin de définir quel bouton est utilisé pour le défilement puisque xinput montre que c’est déjà le bon bouton (2) qui est utilisé par défaut. Si ce n’était pas le cas, on pourrait ajouter l’option :

additionnel

Si, comme moi, vous avez un souci avec la mise en veille automatique de la souris (sur ordinateur portable, les périphériques sont mis en veille automatiquement après 2-3 s d’inactivité), vous devez blacklister le périphérique USB par son identifiant pour l’exclure de la mise en veille. Si vous utilisez TLP, il faut d’abord relever l’identifiant du périphérique avec la commande lsusb  :

Ici, l’ID de la souris optique est 093a:2510. Il suffit alors d’éditer le fichier  /etc/default/tlp  à la section USB autosuspend :

puis redémarrer l’ordinateur (ou TLP).

Sources :

  • https://wiki.archlinux.org/index.php/Logitech_Marble_Mouse