Skip to content

Adding UI Support for Custom driver bridge - #111

Closed
viix0dev wants to merge 370 commits into
OpenMouse-Project:mainfrom
viix0dev:custom-driver-bridge
Closed

Adding UI Support for Custom driver bridge#111
viix0dev wants to merge 370 commits into
OpenMouse-Project:mainfrom
viix0dev:custom-driver-bridge

Conversation

@viix0dev

Copy link
Copy Markdown

Those UI edits will support the custom driver bridge mouses to have the same ui as HID mouses


Custom Driver Bridge: OpenMouse-Project/OpenMouse-Bridge#2

viix0dev and others added 30 commits August 8, 2026 11:53
build/check-bundle-size.ts
".js": 325_000, -> ".js": 335_000,
Isolate Bolt pairing/long-report handling in bolt.ts so Lightspeed and wired Logitech paths stay shared with minimal conflict surface.

Co-authored-by: Cursor <cursoragent@cursor.com>
Production JS is ~325.4 kB after bolt.ts; lift the budget to 330 kB with headroom.

Co-authored-by: Cursor <cursoragent@cursor.com>
The receiver returns garbage while it reconfigures the wireless link after
switching to 8,000 Hz, so the DPI and charging reads failed with bad checksums
and the lift-off read silently hid the panel. exchange now re-sends a request
whose reply came back corrupt, and setPollingRate pauses 150 ms for the link to
settle before reading back.
The receiver returns garbage while it reconfigures the wireless link after
switching to 8,000 Hz, so the DPI and charging reads failed with bad checksums
and the lift-off read silently hid the panel. exchange now re-sends a request
whose reply came back corrupt, and setPollingRate pauses 150 ms for the link to
settle before reading back.
Add verified protocol support and capability-driven UI so OpenMouse mirrors Teevolink safely.

Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse existing slider styles and document the production protocol code that requires a larger JavaScript budget.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ct mice

Direct-connect mice (G402/G403 HERO/G502 HERO) store their polling rate in the
onboard profile, so the 1 kHz stop was rendered disabled. Route setPollingRate
through the CRC-checked profile write for verified formats, encode base-v1 rates
as the USB polling interval in milliseconds rather than a table index, and add
LOGAN (format 2) report-rate capabilities. Mark format 2 verified for the
report-rate field only; DPI stages, names and bunny hop stay locked.
snekxs and others added 29 commits August 16, 2026 01:55
…3-supported

fix(devices): mark Pulsar X3 Medium test-needed until XS-1 driver lands
…pping

Implemented button mapping for the vv3p
Bump @openmouse/protocol (lockfile) to 3c3a445: the XS-1 feature-report
driver, 4K receiver, and corrected DPI encoding. X3 Medium now connects
through its 0xffff:1 control interface; pin its PIDs in the registry and
flip the devices table to supported. Guard the receiver-LED toggle for
clients that expose no dongle LED control.
The X3 family codec and 4K receiver support in mouse-protocol 3c3a445 add
~1.3 kB to the measured aggregate; raise the budget from 600 kB to 610 kB.
fix(pulsar): ship the XS-1 driver and mark X3 Medium supported
The 0x5402 1K Dongle now reports as 'Pulsar X3 M' instead of the generic
product name.
chore(protocol): bump to ba64a12 for the X3 M dongle name
Reddragon and Eyooso catalog submissions previously surfaced as separate
brand groups. canonicalBrand() now folds free-text variants onto the
canonical names (Redragon, E-YOOSO) used by the static table, and the
Eyooso row is renamed to E-YOOSO.
…e-aliases

fix(supported): collapse brand typos (Reddragon, Eyooso) onto canonical names
The support catalog stores manufacturer as free text, so spellings like
'redragon' (lowercase), 'RedDragon', 'Logitec', 'Glorius' and 'rapoo Vpro'
rendered as their own brand groups on the page. canonicalBrand() now maps
every normalized variant of a known static-table brand onto its canonical
display name, with an explicit alias map for genuine spelling typos. The
whole Redragon family (20 catalog rows) now renders under 'Redragon'.
…os-live-catalog

fix(supported): fold live-catalog brand typos onto canonical names
Audit of the live catalog against the static table surfaced more free-text
brand errors that rendered as their own groups: redrasgon, Raser, Logitec/
Logitech G, glorius, thecosmicbyte, Dunevoyger, HSXJ, Razer Basilisk,
razer viper 8k, MX Anywhere (model in brand field), 'hyper x pulsefire
hastle 2', and ROG. All now fold onto the canonical brand. The static
'IGM IGM-6000' row is corrected to 'ISY IGM-6000' (ISY is the real brand;
the catalog already records it). Distinct rendered brands drop 161 -> 115.
…it-extra-typos

fix(supported): alias more live-catalog brand typos and fix IGM brand
Keeps the Attack Shark X11 Bridge work and brings in upstream's Razer
button mapping and Pulsar XS-1 / 4K receiver support. Only conflict was the
JS bundle budget in build/check-bundle-size.ts (both sides raised it);
resolved to 614 kB to fit both feature sets. 81 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@viix0dev viix0dev closed this Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.