Skip to content

Add per-key backlight off support and fix scroll lock indicator#472

Open
Lord-Memester wants to merge 11 commits into
Keychron:2025q3from
Lord-Memester:2025q3
Lines changed: 34 additions & 268 deletions
Open

Add per-key backlight off support and fix scroll lock indicator#472
Lord-Memester wants to merge 11 commits into
Keychron:2025q3from
Lord-Memester:2025q3

Conversation

@Lord-Memester

Copy link
Copy Markdown

Description

Added support for turning backlight off per-key.
Fixed typos.
Fixed implementation of scroll lock indicator.

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

Checklist

  • My code follows the code style of this project: C, Python
  • I have read the PR Checklist document and have made the appropriate changes.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Sorry, something went wrong.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add files via upload

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…eymap.c

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ules.mk

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
@Lord-Memester
Lord-Memester marked this pull request as ready for review June 1, 2026 04:11
@Lord-Memester Lord-Memester changed the title Add per-key RGB support and fix scroll lock indicator Add per-key backlight off support and fix scroll lock indicator Jun 1, 2026
@Lord-Memester

Lord-Memester commented Jun 1, 2026

Copy link
Copy Markdown
Author

Also notable:

In the main.js for the keychron web configurator tool, line 91171 is as follows:

                    return [w.r, w.g, w.b].some(m => m > 30) || (w[b] = Math.max(30, w[b])),

and performing a local override with the following minor change to that same line

                    return [w.r, w.g, w.b].some(m => m > 30) || (w[b] = Math.max(0, w[b])),

allows users to set hex #000000 for keys, which is what is required to disable them per-key.

hsv.v = rgb_matrix_config.hsv.v;
// If per-key brightness is 0, keep it off (don't apply global brightness)
// Otherwise, apply global brightness
if (per_key_led[i].v > 0) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Apply Global Brightness screws with per-key color values as is, I would recommend either just doing away with the global V entirely in per key mode or multiplying the key specific V by the global V.

@cyatarow

cyatarow commented Jul 26, 2026

Copy link
Copy Markdown

Thank you!
I bought a C3 Pro 8K, but I was confused because I couldn't select specific keys to "turn off" their RGB lighting in the per-key settings.
Modifying per_key_rgb.c as you suggested did the trick.

Could someone from the official Keychron team please merge this?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

None yet

3 participants