Skip to content

feat(keychron): add G6 HE, G3 HE, RSR7 Ultra+ and LM7 Air product ids - #265

Open
snekxs wants to merge 1 commit into
mainfrom
feat/keychron-launcher-gaps
Open

snekxs wants to merge 1 commit into
mainfrom
feat/keychron-launcher-gaps

Conversation

@snekxs

@snekxs snekxs commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

Summary

Diffed Keychron Launcher's per-model definitions (launcher.keychron.com, PIDs under VID 0x3434) against this repo. Four product ids were missing:

  • 0xd0a2 Keychron G6 HE and 0xd0a3 Keychron G3 HE: new Launcher config rows (same shape as the existing G6 HE 0xd09d).
  • 0xd085 JamesDonkey RSR7 Ultra+: new config row.
  • 0x2801 Keychron LM7 Air: listed with the 8K Nordic mice, as Launcher flags it 8k_nordic.

Left alone

0xd030 is "Lemokey G2" in Launcher but a Link receiver here; 0xd06a (Nape) and 0xff04 (GM32) lack enough data. These need a decision or a device.

Notes

Taken from Launcher configs; not confirmed on hardware. Local npx tsx --test of this branch passes except nape-hid.test.ts, which fails identically on untouched origin/main here because the worktree has no built dist/.

Note

Add Keychron G6 HE, G3 HE, RSR7 Ultra+ and LM7 Air mouse product IDs

  • Adds catalog entries for product IDs 0xd0a2 (G6 HE 8K), 0xd0a3 (G3 HE) and 0xd085 (RSR7 Ultra+) to KEYCHRON_LAUNCHER_MICE in index.ts, with DPI ranges, polling rates, lift-off settings and button mappings
  • Registers 0x2801 as Keychron LM7 Air in the KEYCHRON_8K_NORDIC_MICE catalog, so it uses the 8K Nordic protocol

Macroscope summarized e51d6b3.

Summary by CodeRabbit

  • New Features
    • Added launcher support for the G6 HE 8K, G3 HE, and JamesDonkey RSR7 Ultra+ mice.
    • Added support for the Keychron LM7 Air.

Add the Launcher config rows for G6 HE (0xd0a2), G3 HE (0xd0a3) and
JamesDonkey RSR7 Ultra+ (0xd085), and list LM7 Air (0x2801) with the
8K Nordic mice. Taken from Launcher's per-model configs; not confirmed
on hardware.
@github-actions github-actions Bot added type: enhancement PR title category: enhancement area: protocol Protocol codecs and shared types labels Oct 30, 2026
@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 1fd3f30 and e51d6b3.

Files selected for processing: 1
  • src/keychron/index.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The Keychron mouse registry adds Launcher entries for three mice and adds the Keychron LM7 Air to the 8K Nordic mouse list.

Changes: Keychron mouse support

Layer / File(s) Summary
Add mouse registry entries
src/keychron/index.ts
The Launcher list gains entries for G6 HE 8K, G3 HE, and JamesDonkey RSR7 Ultra+, including their settings and button mappings. The 8K Nordic list gains the Keychron LM7 Air product ID.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Feature

Suggested reviewers: ydw1904

Merge Risk: Minimal · up to e51d6

The change adds four mouse registry entries. No actionable merge-blocking issue is established, although hardware compatibility remains unconfirmed.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely identifies the four product IDs added by the pull request. It matches the main changes in the changeset.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@macroscopeapp

macroscopeapp Bot commented Oct 30, 2026

Copy link
Copy Markdown

Approvability

Verdict: Approved at e51d6b3

Macroscope's review found this PR approvable — Adds four mouse product IDs with capability metadata and existing protocol routing. Effects are confined to the listed models, with no changes to shared protocol implementations.

Notes:

  • Your repo's Minimum Blocking Severity is Off, so correctness findings do not automatically block approval.

You can add or adjust custom eligibility rules. Learn more.

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

Labels

area: protocol Protocol codecs and shared types type: enhancement PR title category: enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant