Skip to content

K-Snake button remapping missing from panel despite protocol support (mouse-protocol#68 merged) #214

Closed

Description

@yanhenrique-dev

Problem

K-Snake X11 button remapping was merged upstream in OpenMouse-Project/mouse-protocol#68 (5 commits, merged into main by @snekxs on 2026-09-07), but the official panel still shows no button-remap card for K-Snake.

Root causes

  1. Panel has no ksnake traits. src/device/traits.ts BY_FAMILY has no ksnake entry, so advancedSection resolves to false and src/app/cards/availability.ts hides the ButtonMappingCard — even though the driver now publishes buttonMappings/buttonOptions. The protocol half landed; the panel half did not.
  2. Tab filter drops the card. filterTabs in src/app/App.tsx does not account for has.buttonMapping, so the card is filtered out even when data is present.
  3. Deployment lag. The app consumes the driver via git URL (@openmouse/protocol in package.json), which npm snapshots at install time — the merge only reaches the official site after a reinstall + redeploy.

Fix in flight

  • feat(cards): polling header readout, button tab gating, fixed rows #206 (open polling-header-and-button-cards branch) adds the ksnake traits entry, the filterTabs fix, and the fixedButtons guard (keeps Left Click locked like the vendor panel).
  • Follow-up driver bits (showAdvancedSection, fixedButtons in MouseStatus) are still local and will come as a separate mouse-protocol PR.

Expected

After #206 merges and the site redeploys with a fresh install, K-Snake shows the button-remap card with Left locked.

Activity

  1. jazzstack commented on Oct 25, 2026

    @jazzstack
    Contributor

    Resolved — closing as completed.

    • The panel half of the K-Snake button remapping landed in PR feat(cards): polling header readout, button tab gating, fixed rows #206 (merged 2026-09-07): the ksnake traits entry, the tab gating on has.buttonMapping, and the fixedButtons guard (Left Click stays locked, like the vendor panel).
    • Since then the card pipeline was reworked in refactor codebase & new UI #1137: src/device/traits.ts no longer has a BY_FAMILY map at all, and src/features/devices/cards/availability.ts derives buttonMapping straight from the driver's published status.buttonMappings / status.buttonOptions, with workspace-tabs.ts opening the Buttons tab on the same signal. There is no family-list left that could drop the card.
    • The follow-up driver bits called out here (protocol-side showAdvancedSection / fixedButtons) landed in @openmouse/protocol (0.42+); current builds consume 0.46.0.

    So on any current build, a connected K-Snake shows the button-remap card with Left Click locked and macro editing available. If anyone still sees the card missing, please file a fresh issue with a diagnostic report (Help → Download report) and note the protocol version — this issue's description pointed at code that no longer exists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions