A lightweight, open-source control panel for SteelSeries Rival mice on Windows. Built with Python and PyQt6, using the rivalcfg library for direct HID communication — no SteelSeries GG required.
- 16 RGB lighting effects — Static, Two-color, Off, Rainbow, Breathing, Two-color Pulse, Custom Gradient, Sunrise, Comet, Lightning, Color Wave, Fire, Ocean, Starry Night, CPU Monitor, Custom Sequence
- Custom effect editor — timeline with keyframes, drag & drop, per-zone color control
- Profile system — create, save, load, delete, export and import profiles (
.rivalprofile) - Random effect — randomizes effect and colors with one click
- Mouse preview — live SVG preview of all three LED zones in the sidebar
- System tray — minimizes to tray, runs in background
- Autostart — optional launch with Windows via registry
- Eclipse mode — RGB flash on left mouse button click
- CPU Monitor — LED color reacts to CPU usage in real time
- Multilingual — auto-detects system language, changeable in Settings
- Community translations — add your language by dropping a JSON file in
locales/
- Windows 10 / 11
- Python 3.10+
- A supported SteelSeries Rival mouse (see rivalcfg supported devices)
git clone https://github.com/AnonBOTpl/rival-lite-control.git
cd rival-lite-control
pip install -r requirements.txt
python main.pypip install pyinstaller
python scripts/generate_icon.py # generate assets/icon.ico first
pyinstaller rival_gui.specThe executable will be in dist/RivalLiteControl.exe.
rival_gui/
├── main.py # entry point
├── requirements.txt
├── rival_gui.spec # PyInstaller spec
├── assets/
│ └── icon.ico
├── locales/
│ ├── en.json # English (default)
│ ├── pl.json # Polish
│ └── README.md # translation guide
├── core/
│ ├── config.py # constants, paths, effect list
│ ├── hid_manager.py # HID communication (rivalcfg)
│ ├── effect_engine.py # animation engine, all effects
│ ├── profile_manager.py # profile CRUD, config load/save
│ ├── custom_effect.py # keyframe data model
│ ├── custom_effect_manager.py # custom effect persistence
│ └── i18n.py # internationalization
├── ui/
│ ├── main_window.py # main window, signal wiring
│ ├── effect_grid.py # effect tile grid
│ ├── effect_panel.py # per-effect settings panel
│ ├── sidebar.py # mouse preview + profile panel
│ ├── bottom_bar.py # brightness, speed, apply button
│ ├── settings_dialog.py # settings window
│ ├── keyframe_editor.py # custom effect editor
│ └── mouse_svg.py # SVG mouse preview template
└── scripts/
└── generate_icon.py # generates assets/icon.ico
- Copy
locales/en.jsontolocales/xx.json(e.g.de.jsonfor German) - Translate all values — do not change the keys
- Keep
{placeholders}exactly as they are - Drop the file in the
locales/folder — the app detects it automatically - Submit a pull request 🎉
See locales/README.md for full details.
Rival Lite Control communicates directly with the mouse over USB HID using rivalcfg. All RGB effects are computed in software and pushed to the mouse at up to 30 FPS. Hardware effects (Rainbow) use the mouse's onboard chip for smoother animation.
MIT — free to use, modify and distribute.

