Skip to content

supported-mice: mark the Lamzu Inca 8K as PR-pending with its PIDs - #157

Draft
bpavlina wants to merge 1 commit into
OpenMouse-Project:control-panelfrom
bpavlina:feat/lamzu-inca-supported
Draft

supported-mice: mark the Lamzu Inca 8K as PR-pending with its PIDs#157
bpavlina wants to merge 1 commit into
OpenMouse-Project:control-panelfrom
bpavlina:feat/lamzu-inca-supported

Conversation

@bpavlina

@bpavlina bpavlina commented Sep 4, 2026

Copy link
Copy Markdown

Companion to OpenMouse-Project/mouse-protocol#45, which adds the Lamzu Inca 8K under Lamzu's own vendor id 0x37b0.

src/supported-mice.ts currently carries the Inca as status: "quickwin" with the note "CompX protocol implemented; Inca PID not yet in driver". That understates it — the model was invisible to the driver because it enumerates under 0x37b0 rather than the shared CompX ODM id 0x373e, not because a PID was missing from a catalog the driver already read. This updates the row and pins the three product ids.

Why "pr" and not "supported"

PID_UNIVERSE in supported-mice.test.ts is built from the registries that @openmouse/protocol exports, and the published package does not export LAMZU_INCA_PRODUCTS yet. Marking the row supported therefore cannot even compile until mouse-protocol#45 lands. A pr row is exempt from the pinned-PID check, which is exactly what that status is for, so this is green against the currently published protocol and can merge on its own.

Once #45 is in and the dependency is bumped, the follow-up is two small edits together:

  1. supported-mice.test.ts — import LAMZU_INCA_PRODUCTS and spread its keys into PID_UNIVERSE.
  2. supported-mice.ts — flip this row to supported and shorten the note.

Neither compiles without the other, so they belong in one commit after the bump.

Two things deliberately not changed

  • The model name stays "Inca", not "Inca 8K". supported-live.ts overlays request votes by normalized brand|model, and its word-overlap matcher returns early for single-word model names. Renaming this row would silently orphan the req: 1 it already carries.
  • No LAMZU_INCA_PRODUCTS loop was added to registrySupportedModels(). That function emits model: info.model, which is "Inca 8K" — a different brandModelKey from this row, so the dedupe would miss it and the supported-devices page would list the same mouse twice.

Verification

npm run check passes against the currently published @openmouse/protocoltsc --noEmit && vite build clean, 112/112 tests. Also verified green against a local build of mouse-protocol#45, so it stays passing after that merges.

No device artwork is included: ui/device-images.ts has no 37b0:* mapping, so the Inca resolves to unknown-device.png, which is the same treatment Orbital and moddo get today. Happy to add the mapping once art exists in the bucket.

The Inca enumerates under Lamzu's own vendor id 0x37b0 rather than the
shared CompX ODM id 0x373e that every other Lamzu, CRDRAKO and Attack
Shark product uses, so the driver never saw it. The row's old note said
only that a PID was missing from an existing driver, which understated
it. Read-only support is now open upstream in mouse-protocol.

The three product ids are pinned now: 0x0009 the mouse on its cable and
0x0010 the 8K receiver, both confirmed on hardware, and 0x000f the 1K
receiver, which comes from the vendor's device table alone and has not
been exercised. A "pr" row is exempt from the PID_UNIVERSE check, so
this stays green against the currently published protocol; the flip to
"supported", plus the matching PID_UNIVERSE entry, follows that merge.

The row deliberately keeps the model name "Inca" rather than "Inca 8K".
The live overlay matches request votes by brand and model, and its fuzzy
matcher ignores single-word model names, so renaming this row would
orphan the request count it already carries.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018C96pMdnhGcXhLQhHYkLWc
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.

1 participant