[OneDev #29] peripherals: file libratbag upstream issue/PR with G915 X 0x1B05 FullKeyCustomization findings #11

Open
opened 2026-05-24 04:46:36 +00:00 by joseph · 0 comments
Owner

Imported from OneDev issue #29 (id 35529)
Original project: internal-joseph
Original state: Open
Original submitterId: 5
Original submitDate: 2026-05-05T15:32:19.252+00:00
Original lastActivity: {'date': '2026-05-05T15:32:19.252+00:00', 'description': 'opened', 'userId': 5}

Original fields:

  • Type: New Feature
  • Priority: Normal
  • Assignees: None

Context

Per peripherals/g915x-vs-public-knowledge.md, our RE work (2026-05-04 → 2026-05-05) is potentially the first public implementation of feat 0x1B05 FullKeyCustomization for the G915 X. libratbag and keyleds (the two main open-source Logitech HID++ projects) don't have it.

Three features documented:

  • 0x1B05 FullKeyCustomization — the activation handshake + event format
  • 0x8101 OnboardProfiles-kbd — keyboard binding wire format
  • 0x8051 LogiModifiers — modifier-state event source

This unlocks libratbag G915 X support on Linux, which currently doesn't exist.

Tasks

  • Open an issue on https://github.com/libratbag/libratbag with summary of the protocol findings
  • Cross-link peripherals/g915x-vs-public-knowledge.md (or a sanitized version) for the technical detail
  • If the maintainers are receptive, write a PR adding feat 0x1B05 to hidpp20.h + a hidpp20-feature-0x1b05.c implementation modeled on hidpp20-feature-0x1b04.c
  • Test on Linux (anywhere — joseph-desktop has WSL with Linux; could also use a temporary Linux VM)

Prereq

Should probably wait until issue #27 (trim 437-write replay) is done so the upstream patch is the minimal sequence, not a 437-write blob.

Why bother

Right-to-repair angle. Three years of no public alternative for these gaming keyboards. Other G-series keyboard owners running Linux can't do anything beyond what libratbag's older feature set supports. This is contributable knowledge.

Imported from OneDev issue #29 (id 35529) Original project: internal-joseph Original state: Open Original submitterId: 5 Original submitDate: 2026-05-05T15:32:19.252+00:00 Original lastActivity: {'date': '2026-05-05T15:32:19.252+00:00', 'description': 'opened', 'userId': 5} Original fields: - Type: New Feature - Priority: Normal - Assignees: None ## Context Per `peripherals/g915x-vs-public-knowledge.md`, our RE work (2026-05-04 → 2026-05-05) is potentially the **first public implementation of feat `0x1B05 FullKeyCustomization`** for the G915 X. libratbag and keyleds (the two main open-source Logitech HID++ projects) don't have it. Three features documented: - `0x1B05 FullKeyCustomization` — the activation handshake + event format - `0x8101 OnboardProfiles-kbd` — keyboard binding wire format - `0x8051 LogiModifiers` — modifier-state event source This unlocks libratbag G915 X support on Linux, which currently doesn't exist. ## Tasks - [ ] Open an issue on https://github.com/libratbag/libratbag with summary of the protocol findings - [ ] Cross-link `peripherals/g915x-vs-public-knowledge.md` (or a sanitized version) for the technical detail - [ ] If the maintainers are receptive, write a PR adding feat 0x1B05 to `hidpp20.h` + a `hidpp20-feature-0x1b05.c` implementation modeled on `hidpp20-feature-0x1b04.c` - [ ] Test on Linux (anywhere — joseph-desktop has WSL with Linux; could also use a temporary Linux VM) ## Prereq Should probably wait until issue #27 (trim 437-write replay) is done so the upstream patch is the minimal sequence, not a 437-write blob. ## Why bother Right-to-repair angle. Three years of no public alternative for these gaming keyboards. Other G-series keyboard owners running Linux can't do anything beyond what libratbag's older feature set supports. This is contributable knowledge.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
joseph/internal-joseph#11
No description provided.