Keyboard Gradients

Static gradients on RGB keyboards look cool. They’re colorful, but not too distracting. The problems is that ICUE, the software for Corsair keyboards, doesn’t have the option to create a static gradient. I made a gradient by manually by adding lighting layers for each column of keys and it took forever. So I wondered if I could automate the process. The plan: ICUE can export profiles as XML. If I could write a program to edit the profile and create the layers, I could re-import the profile and have a gradient with much less work. Additionally, I could create layers for each key, which could look better than for each column.

Phase 1: Finding the lighting configuration and creating layers

ICUE exports a bunch of unrelated stuff along with the lighting configuration, even with just “export lighting” checked. I’m sure it has good reasons, but it makes the lighting section hard to find. The lighting section starts with:

<polymorphic_id>
    2147483668
</polymorphic_id>
<polymorphic_name>
    AdvancedLightingLayer
</polymorphic_name>

See that “polymorphic_id”? It’s going to be the bane of this project. Each subsection of the lighting configuration has its own polymorphic_id, and they don’t start with any clear order. The first section increases the ID by 8 and subsequent sections only by 1. The layer IDs need to be correct for ICUE to recognize the profile. I tried a ton of things to get this part working, but the best I could do was practically copying and pasting from the original profile. I did get two lighting layers back into ICUE, but nothing else worked.

Phase 2: If creating lighting layers is hard, don’t.

My second idea is adding all the layers inside ICUE, so that the exported profile already has correct IDs for each layer. Then all I have to do is find the tags for the key codes and colors, edit them, and save the file. I’m going to try this tomorrow, so I’ll see you then!

Leave a comment

Your email address will not be published. Required fields are marked *

Your data is processed in accordance with my privacy policy. Comments are manually approved and may take a while to appear.