Turning off the LED on SteelSeries Rival 3 mouse in Linux

Steelseries USB Mouse

I recently got a Steelseries wired USB mouse, specifically the “Rival 3 Gen 2” as it was convenient to buy at Walmrt when I needed a new mouse. The mouse works fine in Linux, however it has an RGB light strip on the bottom which defaults to an animated rainbow. Its easy to ignore during the day but is pretty bright at night.

Steelseries Rival 3 USB mouse



So, how to turn it off? The official answer is to use the Steelseries GG software, which only works in Windows and Mac.

Fortunately, flozz created rivalcfg – a python library and CLI tool for configuring SteelSeries mice. rivalcfg added support for this model (USB ID 1038:1870) in v4.16.0, and the setting is stored in the mouse’s flash.

Confirming the device:

$ lsusb | grep 1038
Bus 003 Device 014: ID 1038:1870 SteelSeries ApS SteelSeries Rival 3 Gen 2

Install rivalcfg

Install from PyPI. On Debian 13, pip install --user will refuse with “externally-managed-environment”. Use pipx instead:

sudo apt install pipx libhidapi-libusb0 libhidapi-dev python3-dev build-essential
pipx install rivalcfg
pipx ensurepath

Start a new shell so ~/.local/bin is in your PATH, then:

$ rivalcfg --version
4.17.0

Install the udev rules

sudo ~/.local/bin/rivalcfg --update-udev

Unplug and re-plug the mouse. You should then see endpoints here:

$ rivalcfg --print-debug

RIVALCFG
========
Version: 4.17.0
...

PLUGGED STEELSERIES DEVICES ENDPOINTS
=====================================
1038:1870 | 00 | SteelSeries Rival 3 Gen 2 (firmware v0)
1038:1870 | 01 | SteelSeries Rival 3 Gen 2 (firmware v0)
1038:1870 | 02 | SteelSeries Rival 3 Gen 2 (firmware v0)
1038:1870 | 03 | SteelSeries Rival 3 Gen 2 (firmware v0)

Now, kill the lights:

rivalcfg --default-lighting off

Credit where due

Thanks for Fabien Loison for creating and publishing the rivalcfg project. Gen 2 support came out of issue #249 with work from @flozz and @orsonteodoro.

Author: admin

Leave a Reply

Your email address will not be published. Required fields are marked *