feat: add Keychron Q1 HE keyboard support and restructure Keychron controllers

Initial commit for Keychron Q1 HE keyboard.

Adds support for the Keychron Q1 HE (Hall Effect) keyboard with per-key RGB control via the Keychron proprietary HID protocol (command group 0xA8). Also restructures the existing Keychron controller directory into per-device subfolders following the LogitechController pattern.

Changes:

  • Added KeychronQHEKeyboardController/ with full protocol implementation (per-key direct mode, effect modes, brightness/speed)
  • Added shared KeychronControllerDetect.cpp and KeychronProtocolCommon.h
  • Moved existing K3 V2 files into KeychronK3Controller/ subfolder with renamed classes
  • Protocol: VID 0x3434, PID 0x0B10, HID interface 1 (usage page 0xFF60, usage 0x61)
  • 81 LEDs with individual key control

Tested with my own keyboard, everything is working.

Checklist for Accepting a Merge Request for a New Device

  • The source branch of the merge request is not protected (master is protected by default when creating a fork, so it is recommended to not use it as your source).
  • The New Device issue raised for this device is linked to this MR with a keyword Closes / Resolves / Implements
  • There is a device protocol page in the Developer Wiki or there is enough information / captures in the New Device issue to provide ongoing support.
  • The code to be merged follows the style guide and change requirements as documented in the contributing guide.
  • Meta data for the device is included in RGBController_* file
  • This device is detected and is working on Windows 10 and / or 11
  • This device is detected and is working on Linux (Please specify distribution and releases tested)
  • Logging for Info, Warnings and Errors has been added for troubleshooting purposes

Merge request reports

Loading