LockerGnomeTech news and nostalgia for today's technology professionals
Subscribe

Search

Softwaregaming-micewebhidopen-sourceperipheralskeyboardsrust

OpenMouse Sets DPI and Polling Rate on Gaming Mice From Logitech, Razer, Corsair and Dozens More in a Browser Tab

OpenMouse, an AGPL-licensed open-source project, uses Chrome's WebHID to read and change supported gaming mice and some keyboards without each brand's own app, with an optional local Bridge for protected Razer devices and settings that apply with the browser closed.

Chris, lit by glowing rainbow keyboard backlight, turns a big round dial on a sleek gaming mouse beside a glowing keyboard
Illustration: LockerGnome

Changing a gaming mouse’s DPI usually means installing that brand’s own software, and a desk with three brands means three apps. OpenMouse puts the job in one web page instead. The README describes it as a way to “connect a mouse, view its information, and change supported settings,” and it “works in Chromium-based browsers that support WebHID,” the browser feature that lets a page talk to a USB device after you approve it.

The project’s public test site, control.openmouse.app, is in the README’s words “the public development control panel.” The wire formats behind it live in a separate mouse-protocol repo, and that repo is careful about what support means: “An exported protocol means OpenMouse implements that wire format. It does not claim every mouse from that brand works.”

Some of those formats were learned from other open projects. The SteelSeries Rival 3 support is derived from rivalcfg and checked against libratbag and OpenRGB, and the Ninjutso catalog is “derived from the JavaScript shipped by the official NinjaForce WebHID panel.”

Keyboards are newer and rougher. OpenMouse “detects supported Wooting, Wuque, Kochi, Razer, Logitech and SteelSeries keyboard command interfaces through WebHID,” but the README also admits that “no physical keyboard was connected during integration. Model recognition is not hardware certification.” For SteelSeries analog boards, live changes only stick after an on-board profile save, and the README’s advice is to “use a disposable profile when testing.”

The piece that handles the hard cases is OpenMouse Bridge, a small Rust program that runs on your own machine. It exposes “a versioned HTTP API bound only to 127.0.0.1:17846” with “an explicit browser-origin allowlist,” and it runs as a normal user program, not an elevated service. When it’s running, the control panel uses it instead of WebHID, which keeps “Razer control interfaces protected by Chrome 153+ usable without relying on the browser’s former protected-collection bypass.” The Bridge also puts a battery icon in the tray and applies DPI and polling settings with the browser closed.

What the project hasn’t published is a list of which exact mouse models have been tested on real hardware, brand by brand.

Projects like this point at hardware settings handled by one open panel instead of a dozen closed ones. The weak spot is that the panel depends on choices other companies make. Chrome 153’s protection of certain device collections already pushed OpenMouse to route Razer gear through a local helper, and the README is plain that “Razer effect writes and SteelSeries direct lighting have no active-state read-back,” so the page can send a lighting change without being able to confirm it took. The project lists Macroscope, Hypertune and Hone as sponsors, and its docs live at docs.openmouse.app.

More Software

Every Software story →