I picked up the RGB keyboard, and I would like to make some very custom modifications to it. In particular, these are the things I’m interested in:
- Using the RGB lights as PC status indicators (battery %, temperature, utilization, etc.)
- On top of having zones of the keyboard certain color, I could also envision lighting up the numbers in order to give specific numeric readouts. E.g., if the battery is at 95%, flash the 9 led and then flash the 5 led. That could be triggered when the % goes down, or when a macro is pressed.
- RGB indication of discord mic active/muted
- Flash if my total power consumption goes over a certain threshold while on battery. E.g., I want to know if I’m drawing >15W while on battery, as there is definitely something wrong at that given my workflows.
- Wifi connection status/strength
- Dedicated keys for showing fault flags such as PROCHOT.
- Whether the dGPU is in D0 or d3Cold state.
- Automatically turn all lights on/off depending on battery power (e.g. via bash script to turn on/off)
I am capable of writing custom software if need be, and I understand the keyboard firmware is opensource, however I am not sure what my options are for implementing these features. I am not terribly entrenched in the keyboard community. Just looking for someone to guide me to the right rabbit hole.
- Does this functionality already exist somewhere?
- Are there alternate OSS firmware’s I can install that would allow me to more easily implement the features? If there are, what are they called so I may find them? I see terms like QMK, VIA, and VIAL come up a lot, but other than knowing the FW 16 is QMK based (I’m not familiar with QMK either), these don’t mean much to me.
- Could I achieve this by modifying the existing FW firmware?
- Is it even possible at all to send data/commands to the keyboard live while it is in use?
- How likely am I to brick the keyboard in such a way that even plugging in a 2nd keyboard can’t get it working again?
Keyboards to me have always been a simple input device to me, so with all these fancy new features I’m not sure where the boundaries of possible are. Thanks!