10 years of Rivalcfg, new Web site and a logo!

Hello folks!

This year, Rivalcfg turns 10 years! How time flies!

It's been 10 years since I started reverse engineering USB devices. When I wrote the first commit of this project on March 28, 2016, I only wanted to be able to change the color of my brand new Rival 100 mouse on Linux. I had no idea that 10 years later I would still be working on this project.

Photo of my old Rival 100 mouse and screenshot of Rivalcfg 1.0.0 (released on April 5, 2016)

Photo of my old Rival 100 mouse and screenshot of Rivalcfg 1.0.0 (released on April 5, 2016)

Today, Rivalcfg aims to support any SteelSeries gaming mouse. I can currently count 73 devices listed by "rivalcfg --list". It sounds like a lot, but be aware that some are counted twice (when they have two different product IDs for wired and wireless modes), and some devices are just skins of identical mice (for example, the Rival 300 family counts 10 devices, all technically the same).

If I count "by hand", I find 24 different families of mice 🐭️. That's still a lot for a single maintainer! Anyway, Rivalcfg now supports — or at least partially supports — most SteelSeries mice. Some are still missing, but I am working to fix that. 😉️

A brand new Web site

After 10 years of existence, it is a shame this project still does not have a Web site, so I made one. Currently, it is mostly a landing page with links to the documentation and GitHub, but I will add more content later.

I used to post about Rivalcfg on my blog and on my BuyMeACoffee page. But the content is mixed with other things and my blog is in French. This Web site will allow me to post some news about the project (mostly release announcements) in one place, and in English, to make it accessible to more people.

Future of the project

In 2025 I almost not worked on Rivalcfg. That year was a difficult one for me, and I must admit I felt a little fatigue on this project... But I am back!

A new Rivalcfg version (v4.16.0) will be released very soon. It will add support for latest SteelSeries mice and will improve the CPI (sensitivity) settings of all device using the TrueMove Core, TrueMove Air and PMW3326 sensors.

After this release, I will have to review a pull request that adds support for the Rival 5 mouse, which should be released in v4.17.0. Then I will try to work on the ability to send multiple USB packets for a single setting. This will allow to support button bindings on the Aerox 9 and the bindings of the scroll wheel on some other devices.

In a later futur, I want to work on a graphical user interface (using GTK 4). It would make Rivalcfg simpler to use for less technical folks, especially gamers who are new to Linux.

Preliminary work for this GUI already started years ago (in the v4.4.0, released at the end of 2021), when I added code to save mouse settings to the computer's disk. This is required to allow Rivalcfg to display the current state of the settings in the GUI as they cannot be retrieved from the device itself.

Interestingly, I already developed a proof of concept for a GTK 3 GUI during a live coding session on Twitch, but I never had time to go further.

Proof of concept of GUI for Rivalcfg

Proof of concept GTK 3 GUI for Rivalcfg

That's all folks

That's it for today. I hope you enjoyed the reading and that Rivalcfg is useful to you. To stay informed about Rivalcfg, you can now subscribe to the Atom feed of this Web site, join the Discord server, or follow me on Mastodon and Bluesky.

See you soon for the v4.16.0 release announcement! 😄️