Grimoire-
Command
.es

GNU+Linux command memo

Piper to configure gaming mouse

1. version : en

Gaming mice might be tracked down as appeared twenty years ago, following First Person Shoot (FPS) / shoot them up game success (Doom, Quake, Counter-Strike…).

In those combat games, humans were confronting over their speed and accuracy to use a mouse. In this context mouse performances started to make differences, while the previous metrics was more or less : is it working on my desk ? (or will I have to use a mouse pad or a sheet of paper) It was rarely working on glass desks…

The first "performance" mouse I heard of was the Logitech MouseMan Dual Optical was the first mouse to use two optical sensors reaching sensibility of 800 DPI with 4 buttons onboard in late 2001.

1.1. Buttons

Regarding buttons, the first computer mice had 3 buttons (for 3 fingers), but some brands went for less, two buttons for Microsoft or even only one for Apple.

For gaming purpose more and more buttons were added, up to 20, but you end up with a keyboard under your thumb and it’s easy to miss-type something with it. Modern gaming mice have around 10 buttons :

  • two for fingers

  • the clickable wheel (with also side direction clics scrolling web pages)

  • two for the thumb (backward and forward actions, in browser history for instance)

  • and one or two for DPI management

2020 gaming mice have buttons supporting tens of millions of actuations (as per manufacturer statements, some use actuators from medical manufacturer, like Omron).

1.2. DPI

DPI ? It stands for Dot Per Inch and reflects the accuracy of the optical sensor by the quantity of pixels the computer cursor can be moved onscreen when the mouse moves one inch (2,54 cm) on the desk. Values were at 400 DPI before the dual sensor mouse of Logitech and raised regularly since.

But only for gaming mice. The DPI of early optical mice were not enough for big screen resolutions and every operating systems implemented an acceleration factor for mouse movements. This way, 800 DPI are still enough for everyday use. But in a quest of sharpness, recent mice brag out with 25 600 DPI. To be able to use such mouse resolutions you’ll have to disable your operating system mouse acceleration.

Every GNU+Linux based desktop environment allows this from setting panels, but it can also be achieved via Xorg configuration :

# vim /etc/X11/xorg.conf.d/50-mouse-acceleration.conf

Section "InputClass"
    Identifier "My Mouse"
    Driver "libinput"
    MatchIsPointer "yes"
    Option "AccelProfile" "flat"
    Option "AccelSpeed" "0"
EndSection

Without software acceleration, 16 000 DPI becomes an acceptable setting for 4k screen resolutions (3840px wide), and this way, your cursor will move at constant proportional speed regarding mouse movements, it’s easier to tame.

1.3. Supported acceleration

Early optical mice were a bit slow filming your desk to compute the shift between two images and report that vector to the computer. This resulted in lost tracks and a still cursor if you moved the mouse too fast. A real problem for gamers.

The limit was at 2 m/s until the Logitech G500 in 2005. It raised at 4,7 m/s (and no more problem for a majority of users) with the G500S 4 years after. It’s now (2022) 10 m/s, the equivalent of 40G of acceleration for the G502 HERO high performance. It represents 400 IPS (Image Per Seconds).

1.4. Polling rates

Another evolution over the last decade was about the communication rate.

Traditional plug-n-play mice report their position 125 times by second to the computer (when a movement is made, polling at 12 Hz else). Gaming mice raised this rate to 1 kHz. It’s not so impressive in the world of computers and Gigahertz, but when introduced, it could raise the CPU usage of a modern computer to 60%, just shaking the mouse. This looks overkill now but it allows to report a mouse movement up to 8 ms faster than a traditional mouse.

For comparison, the Tülin et al. 2013 study reports :

  • around 420 ms of reaction time for average people

  • and around 340 ms for trained athletes

With single stimulus, and an advantage of only 10 ms (to 70 ms) for judokas over everyone else in multiple stimuli context (when other people are slow down by 100 to 200 ms).

In the context of virtual combats, it might represent a 2% faster reaction from the player. So, even if it’s ridiculous to load your computer with a task as basic as mouse tracking, it makes a significant difference during competitions.

Other manufacturers tried to push further like Razer with its Viper mouse at 8 kHz available since early 2021. This time its about a gain of 1 ms, harder to defend regarding the computing cost. The initiative made no children yet, the other mouse manufacturers focusing in making lighter devices.

1.5. Profiles

It leads us to the last improvement of gaming mice : the embedded user profiles.

With adjustable DPI, polling rates and button bindings ; gaming mice can be configured for different tasks and contexts. To help at this they can now embed multiple setting profiles that you can cycle through (via one of the buttons). This allows to set a slow polling rate for everyday use and a fast one for gaming, without launching the configuration tool in between.

With GNU+Linux, a configuration tool exists for the mainstream gaming mice (including Logitech G502 ones) : it is called piper [1] (the mouse trap).

# pacman -Ss piper
$ piper

Or apt install piper.

It even allows to configure (including turning off) the onboard RGB decorative LED, that might find a use for team colors during competitions, but are a waste of energy from my point of view in everyday use.

To finish, I still search for office use cases of gaming mice… even with a 16 000 DPI mouse the width of a column in LibreOffice calc can’t be set by 0,01 cm steps…

2. version : fr

Les souris pour jeu vidéo sont apparues il y a 20 ans, embrayant le pas des FPS (First Person Shoot) à succès tels que Doom, Quake ou Counter-Strike…

Dans ces jeux de combat, les humains s’affrontent principalement à la souris et leur habileté à manier cet engin s’en trouve mise en exergue. C’est dans ce contexte que les performances des souris gamers ont commencées à compter, alors que jusque là on s’intéressait surtout à savoir si une souris allait fonctionner directement sur son bureau ou non (auquel cas il faudrait s’équiper d’un tapis de souris, ou intercaler une feuille A4). Ça marchait d’ailleurs rarement sur un bureau en verre…

La première souris "haute performance" dont j’ai entendu parler fut la Logitech MouseMan Dual Optical fut la première a utiliser deux capteurs optiques atteignant une sensibilité de 800 DPI, accompagnée de 4 boutons, fin 2001.

2.1. Boutons

Avant de revenir aux DPI, un mot sur les boutons. Les premières souris d’ordinateur avaient 3 boutons, un par doigt posé sur la souris. Certains constructeurs choisirent d’en retirer. Ainsi les souris Microsoft n’en avaient que deux et Apple n’en mit qu’un seul.

Les souris pour joueurs furent elles équipées de plus de boutons, parfois jusqu’à 20, ce qui n’est en fait pas très pratique. Les souris actuelles ont autour de 10 boutons :

  • deux pour les doigts

  • la molette cliquable (y compris latéralement pour faire défiler une page web par exemple) ;

  • deux au pouce (pour se déplacer en arrière ou en avant dans l’historique de navigation) ;

  • et un ou deux pour régler les DPI de la sensibilité…

Les souris pour joueurs de 2020 ont des boutons qui supportent des dizaines de millions de clics (d’après leurs constructeurs).

2.2. DPI

DPI ? Ça veut dire Dot Per Inch (points par pouce, un pouce mesurant 2,54 cm). Ça reflète la précision du capteur optique de la souris et donc la quantité de pixels que le curseur de l’ordinateur peut parcourir sur l’écran pour un mouvement de 2,54 cm effectué par la souris sur le bureau. Ces valeurs tournaient autour de 400 DPI avant l’apparition de la souris Logitech à double capteurs et elles ont continué à s’élever pour les souris de jeu depuis.

Mais seulement pour les souris de joueur. En effet, les DPI des premières souris n’étant pas assez élevés pour les écrans de l’époque, chaque système d’exploitation a implémenté un facteur d’accélération logicielle des mouvements de souris. Du coup, 800 DPI sont encore largement suffisants aujourd’hui pour un usage bureautique, quand la course à la précision abouti à des souris enregistrant 25 600 DPI. Mais de telles valeurs ne sont utilisables qu’en désactivant l’accélération logicielle de son système d’exploitation.

Il est possible de régler cette accélération via à peu près n’importe quel environnement graphique GNU+Linux, et à l’aide de la souris justement, mais c’est également possible via un fichier de configuration Xorg :

# vim /etc/X11/xorg.conf.d/50-mouse-acceleration.conf

Section "InputClass"
    Identifier "My Mouse"
    Driver "libinput"
    MatchIsPointer "yes"
    Option "AccelProfile" "flat"
    Option "AccelSpeed" "0"
EndSection

Une fois débarrassé de l’accélération logicielle, une valeur de 16 000 DPI est acceptable pour une résolution d’écran 4k (de 3840 pixels de large) et votre curseur se déplace alors avec une vitesse constamment proportionnelle aux déplacements de la souris, ce qui est confortable et plus facile à maîtriser finement.

2.3. Accélération supportée

Les premières souris optiques étaient un peu lentes à filmer votre bureau pour calculer l’écart entre deux images et envoyer le vecteur correspondant à l’ordinateur. Cela se traduisait par des décrochements lors des mouvements rapides du joueur et un curseur qui reste sur place. Généralement suivi de peu par un frag, c’est à dire une défaite rapide et cuisante, un adversaire tirant parti de votre soudaine immobilité pour vous tirer dessus. Un vrai problème donc.

La limite se situait autour de 2 m/s pour les souris laser jusqu’à l’introduction de la souris G500S de Logitech en 2009 (les technologiques précédentes, à simple LED, étant souvent plus véloces) qui la repoussa à 4,7 m/s (ce qui réglait le problème pour la grande majorité des joueurs). En 2020 la G502 HERO de Logitech repousse cette limite à 10 m/s, soit une accélération de 40G, rendue possible par une numérisation de votre bureau en 400 images par seconde.

2.4. Vitesse de communication

Une autre évolution notable au court de la dernière décennie concerne la fréquence de communication entre la souris et l’ordinateur.

Traditionnellement, les souris plug-n-play indiquent leur position 125x par seconde à l’ordinateur (lorsqu’il y a du mouvement et descendent à 12 Hz sinon). Les souris pour joueur sont elles capables de communiquer jusqu’à 1 kHz. Ce n’est pas très impressionnant dans le monde de l’informatique et du Gigahertz, mais quand c’est sorti, on pouvait occuper jusqu’à 60% de son CPU rien qu’en secouant la souris ! Là ça parait aberrant, mais ça permet de prendre en compte un déplacement de souris 8 ms plus vite dans le meilleur des cas.

À titre de comparaison l’étude scientifique de Tülin et al. parue en 2013 indique des temps de réaction de l’ordre de :

  • 420 ms pour une personne "normale" ;

  • 340 ms pour un sportif entrainé (à l’exception des judokas) ;

dans le cas d’un seul stimulus, et un avantage de 10 ms (à 70 ms) pour les judokas uniquement, dans le cas de multiples stimulis simultanés (cas où tout le monde est ralenti de 100 à 200 ms).

Dans le contexte de combats virtuels, cette accélération de la fréquence de communication entre l’ordinateur et la souris peut représenter un gain de 2% de la vitesse de réaction du joueur. Alors même si c’est ridicule de charger sa machine avec une tâche aussi basique que le suivi de sa souris, ça fait une différence en compétition.

Un fabricant propose d’aller plus loin. Razer propose en effet sa souris Viper en édition 8 kHz. Il s’agit cette fois de gagner 1 ms et c’est plus dur à défendre. L’initiative n’a pour l’instant pas été suivie par les autres constructeurs qui se sont concentrés sur l’allègement de leurs souris.

2.5. Profils

Cela nous mène à la dernière amélioration apparue sur les souris de compétition : les profils utilisateurs embarqués.

Avec des souris dont on peut configurer indépendamment : la sensibilité, la vitesse de communication ou encore l’attribution des boutons ; il peut sembler logique de configurer la souris d’une manière différente pour chaque jeu et de revenir à des paramètres plus sobres quand on retourne à un usage bureautique.

Il est donc possible de configurer plusieurs profils d’utilisation, stockés dans la souris et de passer d’un profil à l’autre via un des boutons de la souris sans avoir besoin de relancer l’outil de configuration entre deux.

Avec GNU+Linux, l’outil de configuration se nomme piper (pour : tapette à souris).

# pacman -Ss piper
$ piper

Ou apt install piper.

Il permet même de configurer (voire éteindre) les DEL multicolores décoratives, qui ont probablement leur usage pour porter les couleurs d’une équipe en compétition, mais gaspillent sinon de l’énergie pour rien dans la vie de tous les jours.

Pour finir je suis toujours à la recherche d’un scénario bureautique tirant profit d’une grande sensibilité de souris, vu que même avec 16 000 DPI la largeur d’une colonne dans LibreOffice calc n’est pas ajustable par paliers de 0,01cm…


1. Piper supports (in 2022) 83 mice from various brands : Etekcity, Glorious, GSkill, Logitech, Nubwo, Roccat Kone, Sino Wealth, Steelseries