Skip to content
azaekPublic

About

A free, open-source app for gaming mice on Windows

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

og_banner

A free, open-source app for gaming mice on Windows, made for each mouse it supports: Zaopin's mice, in place of their own "Mouse Drive Beta" app, and Logitech's PRO X SUPERLIGHT, without G HUB.

Supported mice

Mouse Status
Zaopin Z1 PRO MAX Tested
Zaopin ZI PRO Not tested yet
Zaopin Z2 Not tested yet
Zaopin Z2 MAX Not tested yet
Zaopin Z2 mini Not tested yet
Zaopin Z2 mini MAX Not tested yet
Logitech PRO X SUPERLIGHT Tested
Logitech PRO X SUPERLIGHT 2 Not tested yet
Logitech PRO X SUPERLIGHT 2 DEX Not tested yet
ATK, VXE and MAD mice (137)
Mouse Status
ATK A9 Air + Not tested yet
ATK A9 Air Not tested yet
ATK A9 MAG Not tested yet
ATK A9 Mini + Not tested yet
ATK A9 Mini SPRIGATITO Edition Not tested yet
ATK A9 Mini Not tested yet
ATK A9 NB ULTRA + Not tested yet
ATK A9 NB ULTRA Not tested yet
ATK A9 NB Not tested yet
ATK A9 NK Not tested yet
ATK A9 Plus NK Not tested yet
ATK A9 Pro Max Not tested yet
ATK A9 SE NK Not tested yet
ATK A9 Ultimate + Not tested yet
ATK A9 Ultimate Silent Not tested yet
ATK A9 Ultimate Not tested yet
ATK A9 Ultra Max 2.0 (PAW3395 Ultra) Not tested yet
ATK A9 Ultra Max 2.0 (PAW3950 Ultra) Not tested yet
ATK A9 Ultra Max 2.0 Tri-Mode (PAW3395 Ultra) Not tested yet
ATK A9 Ultra Max 2.0 Tri-Mode (PAW3950 Ultra) Not tested yet
ATK A9 Ultra Not tested yet
ATK A9 Wireless Charging Not tested yet
ATK A9 X Not tested yet
ATK A9 Not tested yet
ATK DRAGONFLY F1 V2 NK Not tested yet
ATK DRAGONFLY F1 V2 PRO MAX Not tested yet
ATK DRAGONFLY F1 V2 Plus NK Not tested yet
ATK DRAGONFLY F1 V2 SE NK Not tested yet
ATK Dragonfly F1 MOBA Not tested yet
ATK Dragonfly F1 PRO MAX Elden Not tested yet
ATK Dragonfly F1 PRO MAX JOJO Not tested yet
ATK Dragonfly F1 PRO MAX Not tested yet
ATK Dragonfly F1 PRO Not tested yet
ATK Dragonfly F1S Not tested yet
ATK Duckbill EXTREME Not tested yet
ATK Duckbill Ultra Not tested yet
ATK F1 EXTREME 2.0 Not tested yet
ATK F1 EXTREME Not tested yet
ATK F1 LEVIATAN 2.0 Not tested yet
ATK F1 LEVIATAN Not tested yet
ATK F1 PRO MAX Not tested yet
ATK F1 PRO Not tested yet
ATK F1 Ultimate 2.0 + Not tested yet
ATK F1 Ultimate 2.0 Not tested yet
ATK F1 Ultimate Not tested yet
ATK F1 Ultra Max 2.0 (PAW3395 Ultra) Not tested yet
ATK F1 Ultra Max 2.0 (PAW3950 Ultra) Not tested yet
ATK F1 Ultra Not tested yet
ATK F1 V3 EXTREME + Not tested yet
ATK F1 V3 LEVIATAN + Not tested yet
ATK F1 V3 PIKACHU Edition Not tested yet
ATK F1 V3 ULTIMATE + Not tested yet
ATK F1 V3 ULTIMATE Not tested yet
ATK FIERCE X Not tested yet
ATK Flow 7 Not tested yet
ATK Ghost EXTREME + Not tested yet
ATK Ghost EXTREME Not tested yet
ATK Ghost Ultimate + Not tested yet
ATK Ghost Ultimate Not tested yet
ATK PHANTOM ULTIMATE Not tested yet
ATK U2 MINI Not tested yet
ATK U2 Mini 2.0 + Not tested yet
ATK U2 Mini 2.0 Not tested yet
ATK U2 NK Not tested yet
ATK U2 Plus NK (PAW3395) Not tested yet
ATK U2 Plus NK (PAW3950 Ultra) Not tested yet
ATK U2 Pro Max (PAW3395 Ultra) Not tested yet
ATK U2 Pro Max (PAW3950 Ultra) Not tested yet
ATK U2 SE NK Not tested yet
ATK U2 Ultimate 2.0 + Not tested yet
ATK U2 Ultimate 2.0 Not tested yet
ATK U2 Ultimate Not tested yet
ATK U2 Ultra Max 2.0 Not tested yet
ATK U2 Ultra Not tested yet
ATK U2 Not tested yet
ATK X EXTREME Not tested yet
ATK X1 Air + Not tested yet
ATK X1 EXTREME 2.0 + Not tested yet
ATK X1 EXTREME 2.0 Not tested yet
ATK X1 EXTREME GT Not tested yet
ATK X1 EXTREME Not tested yet
ATK X1 Lite Not tested yet
ATK X1 MAG Not tested yet
ATK X1 PRO MAX Not tested yet
ATK X1 PRO Not tested yet
ATK X1 S NK (PAW3395) Not tested yet
ATK X1 S NK (PAW3950 Ultra) Not tested yet
ATK X1 SE NK Not tested yet
ATK X1 Ultimate 2.0 + Not tested yet
ATK X1 Ultimate 2.0 Silent Not tested yet
ATK X1 Ultimate 2.0 Not tested yet
ATK X1 Ultimate Not tested yet
ATK X1 Ultra Max 2.0 (PAW3395 Ultra) Not tested yet
ATK X1 Ultra Max 2.0 (PAW3950 DM) Not tested yet
ATK X1 Ultra Max 2.0 (PAW3950 Ultra) Not tested yet
ATK X1 Ultra Not tested yet
ATK X1E Not tested yet
ATK Y9 NK Not tested yet
ATK Y9 PRO MAX Not tested yet
ATK Y9 Plus NK Not tested yet
ATK Y9 SE NK Not tested yet
ATK Y9 Ultimate + Not tested yet
ATK Y9 Ultimate Not tested yet
ATK Z1 PRO MAX Not tested yet
ATK Z1 PRO Not tested yet
ATK Z1 Ultimate 2.0 + Not tested yet
ATK Z1 Ultimate 2.0 Not tested yet
ATK Z1 Ultra Not tested yet
ATK ZERO EX + Not tested yet
ATK ZERO EX Not tested yet
ATK ZERO Not tested yet
MAD R (PAW3395) Not tested yet
MAD R (PAW3950 Ultra) Not tested yet
MAD R + Not tested yet
MAD R MAJOR Not tested yet
MAD R MAJOR+ Not tested yet
VXE R1 (PAW3395) Not tested yet
VXE R1 (PAW3950 Ultra) Not tested yet
VXE R1 NK Not tested yet
VXE R1 PRO (PAW3395) Not tested yet
VXE R1 PRO (PAW3950 Ultra) Not tested yet
VXE R1 PRO MAX (PAW3395) Not tested yet
VXE R1 PRO MAX (PAW3950 Ultra) Not tested yet
VXE R1 S NK Not tested yet
VXE R1 Ultra (PAW3395 Ultra) Not tested yet
VXE R1 Ultra (PAW3395) Not tested yet
VXE R1S+ Not tested yet
VXE R1SE Not tested yet
VXE R1SE+ (CORE26K) Not tested yet
VXE R1SE+ (PAW3395 SE) Not tested yet
VXE R1SE+ Silent (CORE26K) Not tested yet
VXE R1SE+ Silent (PAW3395 SE) Not tested yet
VXE V3 NK Not tested yet
VXE V3 PRO NK Not tested yet
VXE X3 Pro Not tested yet
VXE X3 Turbo Not tested yet
VXE X3 Not tested yet

Zaopin mice connect by their receiver or cable, Logitech's by their LIGHTSPEED receiver or cable. "Tested" means tried on the real mouse; the others use the same protocol as a tested one and should work. More mice come one at a time, each tried with its owners before it's called tested.

ATK's mice are the newest: every ATK, VXE and MAD model in ATK's own app, by receiver or cable. hrtz offers what ATK's app offers on them: the polling rate, debounce, motion sync, angle snapping, ripple control and the onboard profiles; on most, the DPI stages and the DPI light; and lift-off where it's 1 or 2 mm (0.7 mm on a PAW3950). Where hrtz isn't sure how a sensor keeps something, it leaves it out: the DPI on PAW3311, PAW3315 and CORE26K models, and the 0.7 to 1.7 mm lift-off of the PAW3950 Ultra and PAW3955, until owners' checks confirm them. Sleep, the sensor mode and the buttons follow the same way.

Help test it

hrtz is in beta. If you have one of the mice above, these help most:

  • A model that isn't tested yet: its card shows an amber Not tested badge. Click it (or Inspect a mouse in the title bar) for a 2-minute check on a full screen: move the mouse, press each button, and hrtz changes one DPI stage and puts it back. It saves a report and opens a GitHub issue to send it in. A few of those and a model moves to Tested.
  • A mouse that isn't supported yet: Inspect a mouse, in the title bar, checks what it safely can and saves a report for a support request. A mouse hrtz doesn't run is only asked what it tells Windows; a Zaopin model hrtz doesn't know yet (its badge says Not supported yet) is read and measured too, with nothing written.
  • Something wrong: Settings → Report a problem opens an issue with your hrtz version, mouse, firmware and Windows filled in.
  • Questions and ideas: Discussions.

What it does

Each mouse gets what it has; hrtz shows only the settings yours does.

  • Several mice: every mouse hrtz knows is a click away, and the tray, the HUD and the pop-ups follow the one you're using.
  • Sensor: DPI stages you can type or drag, and the polling rate (up to 8,000 Hz on a mouse that has it). On a Zaopin also a colour for each stage, the DPI light (off, steady or breathing), lift-off distance, sensor mode, motion sync, angle snapping, ripple control, click debounce, and the peak performance timeout.
  • SignalRGB (Zaopin): SignalRGB sets the DPI light along with the rest of your lighting, through hrtz's add-on. Solid colours and Pulse carry over. Animated effects leave the light on the last solid colour.
  • Buttons: each button as a mouse button, DPI, scroll or tilt, a media key or a key combination. On a Zaopin also rapid fire, hold-for-DPI and the polling switch; on a Logitech, switching profiles.
  • Profiles: the mouse's own profiles (four on a Zaopin, five on a Superlight), named, and switched by themselves when a chosen app or game comes into focus. A Logitech keeps the names, so G HUB shows them too.
  • Battery: the level over time, how long a charge lasts at each polling rate, charge cycles and capacity, a battery saver that lowers the polling rate when it runs low, and (on a Z1 PRO MAX) how soon the mouse sleeps.
  • In-game HUD: battery, polling rate, DPI and profile at the edge of the screen, in a window of its own. Nothing is injected into games.
  • Lab: checks for the connection (the polling rate that runs best on your PC), tracking, lift-off, DPI accuracy, double clicks and the scroll wheel, a map of where the mouse travels on the pad, and a look at Windows' pointer settings. The timing checks run on a screen of their own, the way a game reads the mouse.
  • Backups: full copies of the mouse's settings, restores that show what changes and can be undone, export and import, and factory settings.
  • Pairing (Zaopin), a tray icon with the battery level, a low-battery alert, and a pop-up when the DPI or profile changes.

Settings are stored on the mouse, so they keep working on PCs without hrtz.

Safety

  • hrtz writes to the mouse's memory only the settings you change.
  • It saves a backup of the mouse before a restore or factory settings, and when it first meets a model. Backups are in %APPDATA%\com.azaek.hrtz\backups.
  • Lab checks that change a setting (the polling rate, the lift-off distance) put yours back when they finish, when you press Esc, or when you leave the check.
  • Quit Zaopin's app while using hrtz with a Zaopin: both talk to the mouse on the same channel, and Zaopin's app turns the mouse's status messages off when it's minimised.
  • G HUB can stay installed beside a Logitech, and hrtz says while it runs. With G HUB's On-board memory mode on, both change the same profiles on the mouse and the last change wins; with it off, G HUB takes the mouse over while it runs, and changes made in hrtz wait until it quits.

Install

Download hrtz_<version>_x64-setup.exe from the latest release and run it. The installer isn't code-signed yet, so Windows SmartScreen may warn about it: choose More info, then Run anyway. After that, hrtz updates itself: a new version downloads in the background, and Restart to update in the sidebar or the tray menu installs it.

Quit Zaopin's own app first, and for a Logitech, G HUB or its On-board memory mode (see Safety).

Build from source

  1. Install Rust, Node.js 20 or later, and pnpm. Windows 11 has the WebView2 runtime the window needs built in.

  2. Then:

    pnpm install
    pnpm tauri dev
    

pnpm tauri build makes an installer (NSIS) in src-tauri/target/release/bundle.

Develop

  • pnpm tauri dev runs the app; the window reloads on save, and a Rust change restarts it.
  • cd src-tauri && cargo test --lib runs the Rust tests; npx tsc --noEmit -p . checks the front end.
  • CLAUDE.md has the layout, the UI kit and the UI rules, for people and coding agents alike.
  • docs/PROTOCOL.md describes how hrtz talks to the mouse and its receiver.
Path
src-tauri/src/mice/ The mice: engine.rs runs a mouse's connection (sleep and wake, plugging in and out, the battery), model.rs is what the UI reads and writes
src-tauri/src/mice/compx/ Zaopin's protocol: the packets, the memory as typed settings written field by field, the models, and a simulated mouse for the tests
src-tauri/src/mice/hidpp/ Logitech's HID++ 2.0, ported from OpenMouse (see PORTED.md): finding the mouse on its receiver, its features, battery, and the onboard profiles it keeps its settings in, with a simulated Superlight for the tests
src-tauri/src/meter.rs, diag.rs, capture.rs Raw input from the mouse, the connection and stroke analysis, and the Lab's game screen
src-tauri/src/pad/, clicks.rs The mousepad map, and double clicks counted over days
src-tauri/src/hud/ The in-game HUD, drawn natively
src-tauri/src/battery.rs, battery_log.rs The battery estimate and its history
src-tauri/src/store.rs Preferences, per-app rules and backups
src/pages/, src/cards/, src/kit/ The pages, the cards with logic, and the shared controls

License

AGPL-3.0-or-later, except the mouse pictures below. Support for more mice is to be ported from OpenMouse's mouse-protocol under the same licence; PORTED.md lists what has been.

Images and trademarks

hrtz isn't made by or affiliated with Zaopin, Logitech or any other mouse maker. "Zaopin", "Logitech", "LIGHTSPEED" and the model names are their makers'. The mouse pictures in src/assets/models are the makers' own product renders, taken from their apps and sites (Zaopin's driver app, Logitech G HUB and logitechg.com). They aren't covered by this project's licence, and are here only to show which mouse is connected (see NOTICE.md). If a maker asks, theirs will be removed.

About

A free, open-source app for gaming mice on Windows

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages