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.cppandKeychronProtocolCommon.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 (
masteris protected by default when creating a fork, so it is recommended to not use it as your source). - The
New Deviceissue raised for this device is linked to this MR with a keywordCloses / Resolves / Implements - There is a device protocol page in the Developer Wiki or there is enough information / captures in the
New Deviceissue 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