Skip to content

Scale per-key V component by global V component rather than ignoring per-key V component#492

Open
CalcProgrammer1 wants to merge 1 commit into
Keychron:2025q3from
CalcProgrammer1:2025q3_per_key_v_scaling
Open

Scale per-key V component by global V component rather than ignoring per-key V component#492
CalcProgrammer1 wants to merge 1 commit into
Keychron:2025q3from
CalcProgrammer1:2025q3_per_key_v_scaling

Conversation

@CalcProgrammer1

@CalcProgrammer1 CalcProgrammer1 commented Jul 7, 2026

Copy link
Copy Markdown

The per-key RGB (actually HSV) implementation currently completely ignores the per-key V component, meaning that every key must be the same brightness (V). This means you cannot have any keys darker or lighter than others, only different hues and saturations. This is not ideal for driving the keyboard's per-key RGB from external effects software such as OpenRGB or SignalRGB, which often generate effect patterns with varying brightness and expect the keyboard's LEDs to follow these colors accurately.

In this PR, I have updated the per-key RGB modes to scale the per-key V component by the global V component. If the per-key V component is kept at 255 (full brightness) for each key, there is no functional change. However, this now allows keys to have lower brightnesses than others, and they will scale accordingly.

Tested on Keychron Q2. I can still adjust the brightness for the per-key modes using Fn+W/S but keys that are dimmer than full bright scale accordingly now.

Fixes #480

Video of OpenRGB Effects Plugin with an effect that varies per-key brightness:

https://www.youtube.com/watch?v=vb103j4zNA8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Per-key static color ignores color-specific V component of HSV, greatly limiting color range

1 participant