Skip to content
abhineet-saha
Back

UniRGB

PC lighting without vendor software · Windows

Overview

A tray app that controls the lighting on a Razer Basilisk V3 Pro, MSI's Mystic Light controller, Evision V2 keyboards, an Ant Esports AIO pump display and ENE-controlled RAM by talking to each device directly. Anything it finds but can't control is still listed, with the reason. Razer Chroma devices fall back to Razer's SDK when Synapse is installed.

What I did

  • Designed and wrote it, from the device protocols to the installer.

Approach

  • Lighting is written live and never saved to the device. Quitting hands every device back to its own stored lighting.
  • The pump display uses a chip other gadgets share, so UniRGB sends nothing to it until you confirm the device is your cooler.
  • When Razer Synapse or MSI Center already holds a device, UniRGB says which app it is and how to release it, instead of fighting it for the device.
  • Lighting needs no driver and no admin rights. CPU temperature and RAM lighting need the PawnIO driver, which is installed after one admin prompt and only if you tick those features.
  • No third-party packages at runtime: the standard library, and Tk for the window.

Challenges

  • The installer builds PyInstaller's bootloader locally, because the stock prebuilt one is shared with a lot of malware and antivirus flags apps built with it far more often.
  • The build downloads PawnIO's official installer and refuses to continue unless its SHA-256 matches the pinned hash.
  • Releases aren't code-signed yet, so Windows SmartScreen warns on install. Each release lists checksums you can verify.