Repository navigation
Add support for the SteelSeries Rival Pro (1038:1880) - #1
Open
alexandru-g wants to merge 2 commits into
Open
alexandru-g wants to merge 2 commits into
alexandru-g wants to merge 2 commits into
Conversation
Profiles and golden cases generated from rivalcfg 4.17.0 plus the Rival Pro commits of flozz/rivalcfg#294. Only the Rival Pro is added; the other profiles are unchanged. - multidpi_range_choice_xy: optional preset_suffix (bytes appended after each preset, "xyxy" only) - firmware_version: "ascii" format for profiles with a parse function - battery_level: "rival_pro" format (level in byte 2, no charging state) - Identity output_choices tables are exported as a flag and rebuilt at load time, so the 65000-entry DPI table does not bloat profiles.json - New settings are grouped under performance and power instead of lighting
- Show "Wireless" in the device header for wireless devices whose name has no connection mode - Detect the unit in descriptions such as "(debounce, ms)" - Polish translations for the new labels, descriptions and choices
Owner
|
Hi @alexandru-g, thank you for this PR: tested on the hardware, byte-exact golden I've gone through the changes and the code looks good to me:
One thing I'd like to keep, though: RivalGUI's device support always matches a released version of When it's out, could you:
I'll merge it then. I'll update the README counts (77 models, the golden packet count) myself when I make A couple of small things for whenever you touch it again (none of them blocking):
I'll approve the CI run in the meantime, so you can see the checks pass. |
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.
Add support for the SteelSeries Rival Pro (1038:1880)
This adds the SteelSeries Rival Pro, a wireless-only mouse that connects through a UWB receiver (
1038:1880). Device support comes from my rivalcfg PR, flozz/rivalcfg#294, which isn't merged yet. Until it is,profiles.jsonandgolden.jsonhere are generated from rivalcfg 4.17.0 plus the three commits of that PR. Only the Rival Pro is added; the other profiles and golden cases are unchanged. Once the PR lands in a rivalcfg release, the two tools can be re-run from the release as usual.New settings
All of them use value types the app already supports (choice, range, X/Y DPI, buttons):
Battery level and firmware version are also supported.
Changes
Export tool and Rust port
multidpi_range_choice_xy: optionalpreset_suffix(fixed bytes appended after each preset, "xyxy" mapping only). The Rival Pro stores the lift-off and landing distances there.firmware_version: rivalcfg profiles can now have aparsefunction. The export identifies it by probing, the same way the battery lambdas are handled, and writesformat: "ascii". Without a format, the raw-bytes behavior is unchanged.battery_level: newrival_proformat (level in byte 2, no charging state, because the battery is swappable).output_choicestables that map every value ofinput_rangeto itself are exported asoutput_choices_identity: true. They are rebuilt inSetting::expand_output_choices()when the catalog loads. Without this, the Rival Pro's 65000-entry DPI table grewprofiles.jsonfrom 570 KB to 3.4 MB.view::group_of: the new settings go to Performance and Power. Before, they would have fallen through to Lighting.UI
CLAUDE.md is updated for the new export fields.
Testing
cargo test: all 5037 golden cases match rivalcfg byte for byte (94 of them new, all for the Rival Pro), plus new unit tests forpreset_suffixand the firmware and battery formats.npm run check: no errors.cargo clippy --all-targets: only the existingtype_complexitywarning inbuttons.rs.NO_STRIP=true npx tauri build --bundles appimage).Known limitations