URL: https://linuxfr.org/news/sortie-de-rivalcfg-v4-0-un-outil-de-configuration-pour-les-souris-steelseries Title: Sortie de Rivalcfg v4.0, un outil de configuration pour les souris SteelSeries Authors: FLOZz Davy Defaud, ZeroHeure, palm123, Pierre Jarillon et Ysabeau Date: 2020-08-24T13:10:04+02:00 License: CC By-SA Tags: matériel, souris, outils, configuration, cli, bibliothèque et python Score: 47 **Rivalcfg** est un petit **utilitaire en ligne de commande** ainsi qu’une **bibliothèque Python** permettant de configurer les souris *gaming* de la marque **SteelSeries** sous **GNU/Linux**, mais aussi sous Windows, macOS, etc. La **version 4.0** venant tout juste de sortir, c’est l’occasion d’en parler un peu et de faire le point sur le projet. ![Souris SteelSeries sur le banc de test](https://blog.flozz.fr/2020/08/24/rivalcfg-comment-jai-cree-un-peu-par-hasard-cet-outil-de-configuration-pour-les-souris-steelseries/images/testing_steelseries_mice.jpg) ---- [Page du projet sur GitHub](https://github.com/flozz/rivalcfg) [Documentation officielle](https://flozz.github.io/rivalcfg/) [Canal de discussion de Rivalcfg sur Gitter](https://gitter.im/rivalcfg/Lobby) [Histoire du projet sur le blog de son développeur](https://blog.flozz.fr/2020/08/24/rivalcfg-comment-jai-cree-un-peu-par-hasard-cet-outil-de-configuration-pour-les-souris-steelseries/) ---- # Comment tout ceci a‑t‑il commencé ? Ce projet a commencé début 2016, lorsque ma souris de l’époque est tombée en panne. Je l’ai remplacée par une *Rival 100* de chez SteelSeries : une souris avec un design assez sobre, une sensibilité paramétrable, et… des LED RGB… Problème : le fabricant ne fournit aucun outil de configuration pour GNU/Linux. Il me fallait donc soit configurer la souris depuis une machine sous Windows, soit développer moi‑même un outil pour le faire sous GNU/Linux. J’ai bien sûr choisi la seconde option. Je me suis donc lancé dans la rétro‑ingénierie du mulot, et c’est ainsi qu’est née la première version de Rivalcfg. Cette version ne gérait que la *Rival 100* et ne fonctionnait que sous GNU/Linux. Très rapidement, j’ai retravaillé le code du logiciel pour qu’il puisse prendre en charge plusieurs souris. Moins de deux semaines après la première version, sortait **Rivalcfg v2.0**, qui gérait alors la *Rival 100* et la *Rival* originale. Puis, au fil du temps, quelques modèles supplémentaires ont été pris en charge, jusqu’à la sortie de **Rivalcfg v3.0** en 2018. Il s’agit d’une réécriture presque complète du logiciel pour en améliorer l’architecture et ainsi en simplifier la maintenance. Cette version a aussi été l’occasion d’utiliser la bibliothèque [HIDAPI](https://github.com/libusb/hidapi) pour communiquer avec les souris (au lieu d’utiliser directement [udev](https://fr.wikipedia.org/wiki/Udev)), ce qui a permis une plus grande fiabilité et la prise en charge d’autres systèmes d’exploitation. Une douzaine de versions vont se succéder dans la branche 3.x, chacune gérant toujours plus de souris. ## Rivalcfg v4.0 Rivalcfg v4.0 est encore une fois une quasi‑réécriture du logiciel, prenant en compte tout ce qui a été appris lors du développement de la branche 3.x. Par exemple, SteelSeries a tendance à sortir pas mal de souris identiques dont seul le design change. Dans cette quatrième version, les souris ont donc été regroupées en famille afin de simplifier la gestion des périphériques techniquement identiques. Cette version apporte ainsi la prise en charge de nouveaux modèles, comme la *Rival 3*, mais ajoute aussi celle de nombreuses variantes de souris qui étaient déjà gérées, par exemple les *Rival 300 Fallout 4 Edition* et *Rival 300 Evil Geniuses Edition*, qui sont des variantes de la *Rival 300* (nouveau nom commercial de la *Rival* originale). Au final, **une quarantaine** de souris sont actuellement gérées par Rivalcfg (sur un peu moins de soixante‑dix modèles existants), ce qui est déjà pas mal ! Le projet dispose à présent d’une documentation détaillée, aussi bien des API Python que des spécificités de configuration de chaque souris (il fallait auparavant se contenter du fichier README présent sur le dépôt GitHub). La liste des nouveautés est encore longue, je vous laisse donc lire le [journal des modifications](https://github.com/flozz/rivalcfg#changelog) si vous souhaitez en apprendre davantage ! ## Et après ? Il y a encore beaucoup à faire. Déjà, il y a pas mal de petites choses qui étaient à l’origine prévues pour cette version, mais que j’ai décidé de reporter à  plus tard. Ça faisait en effet plus de deux mois que je repoussais la sortie du logiciel parce qu’il manquait toujours quelque chose et ça risquait d’entamer ma motivation à force de ne plus en voir le bout. Ensuite, tant qu’il y aura des contributeurs pour m’aider, je continuerai à prendre en charge de nouvelles souris. Les contributions sont essentielles à l’évolution de ce projet : je ne peux pas acheter tous les modèles de souris qui sortent, j’ai donc besoin d’aide pour effectuer le travail de *rétro‑ingénierie* des modèles que je ne possède pas. Enfin, même si ce n’est pas pour tout de suite, je commence à réfléchir à la création d’une interface graphique pour rendre la configuration des souris plus simple… Mais ça prendra un peu de temps. :) J’espère que ce logiciel pourra vous être utile si vous disposez de matériel SteelSeries. Et quoi qu’il en soit, n’hésitez pas à [contribuer](https://flozz.github.io/rivalcfg/contributing.html) ! ## _Dernière minute !_ Avant‑hier, j’ai posté [un message poli sur leur Reddit](https://www.reddit.com/r/steelseries/comments/iflwor/linux_users_and_steelseries_gaming_mice/) pour demander de l’aide. Ils m’ont répondu et m’ont fourni quelques infos qui m’ont permis d’ajouter une nouvelle souris (la Rival 300S, qui sera dans la prochaine version). Ils ne peuvent pas libérer les spécifications de leur matériel pour des raisons de politique interne, mais ne voient aucun problème à la rétro‑ingénierie de leur matériel. Ils vont donc m’envoyer des souris pour que je puisse en améliorer la prise en charge. L’ouverture des spécifications est régulièrement discutée chez eux, souvent à cause de Rivalcfg. Savoir que SteelSeries n’est pas hostile ni indifférent au projet me redonne un bon coup de motivation.