Repository navigation
Wyrm 0.2: one app for all your mice - #1
Merged
Merged
Conversation
…al profiles - wyrm/drivers: a small driver interface (discover without I/O, open, sessions) and a registry that offers one hid.enumerate() listing to each driver in turn. Devices that fail to open fall back to a generic driver that shows any mouse by name and is retried later. - SinoWealth: the old wyrm/hid code moved behind the interface. The model is picked by the settings block's marker from per-model JSON files: M811 PRO (full), M690 PRO (detected), unknown markers shown and never written. - Logitech: HID++ 2.0 with an allow-list (name, battery, DPI, report rate, on-board mode), receivers with up to six mice, on-board profiles left alone unless experimental writes are on, and a simulated device for tests and --demo. - Profiles hold settings per mouse model (schema 2). A mouse a profile doesn't set follows the default profile. v0.1 profiles and config migrate to the M811 PRO, with a backup-v1 copy. - The device hub polls every mouse, saves per-model snapshots, queues writes for sleeping mice and asks write permission once per model. - UI: mouse cards on Home, a sidebar list, a mouse picker on the editing pages, pages driven by each mouse's capabilities, a live "In use" badge from Raw Input, hints when a vendor app that fights over the same mouse is running, neutral branding. - Device-state handling runs on the main thread (it was a plain function, which PySide6 ran on the device thread), with a regression test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e, protocols - README: one open-source, offline app for all your mice; a supported-mice table with support levels; safety and what's verified per driver; how to add a mouse. - docs/devices.md, docs/adding-a-device.md (driver interface, model files, safety rules, simulated devices), docs/protocols/sinowealth-wireless.md (was protocol-m811pro.md, now with a model table), docs/protocols/logitech-hidpp.md, CONTRIBUTING.md. - Issue templates for new mice and bugs; screenshots with two mice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Turns Wyrm from a Redragon M811 PRO tool into a brand-neutral app for every mouse, with profiles that cover all your mice.
What changes
wyrm/drivers). A registry offers eachhid.enumerate()listing to the drivers in priority order. Any mouse no driver handles is still shown by the generic driver.backup-v1copy.Test plan
python -m pytest: 75 tests. They cover codecs, the SinoWealth and Logitech drivers against simulated devices, the registry, v1 to v2 migration, profiles across several mice and the device thread.tools/screenshot.pyrenders every page against two simulated mice.Wyrm.exestarts, loads the model files and seeds both demo mice.🤖 Generated with Claude Code