You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would like to contribute a Caps Lock LED indicator feature.
Problem
On keyboards without a dedicated Caps Lock indicator, it is easy to accidentally type in uppercase, only notice after writing, disable Caps Lock, and retype. I would like the Caps Lock key LED to change color while the host reports Caps Lock as active.
Proposed behavior
Firmware detects the host Caps Lock LED state.
If Caps Lock is active, the physical key currently mapped to Caps Lock is highlighted with a configurable color.
If Caps Lock is inactive, normal LED behavior is restored.
Bazecor exposes this as an optional LED setting:
enabled/disabled
indicator color
Compatibility approach
Bazecor should only show the setting when firmware exposes the required Focus commands via help.
Older firmware should continue to work unchanged.
The UI should remain configuration-only; the actual behavior belongs in firmware.
Implementation sketch
Firmware Focus commands:
led.capsLockIndicator.enabled
led.capsLockIndicator.color
Firmware responsibilities:
Store the setting in EEPROM/config.
Read the host Caps Lock LED state.
Locate the physical key currently mapped to Key_CapsLock on the active keymap/layer.
Apply a temporary LED overlay for that key while Caps Lock is active.
Restore normal LED behavior when Caps Lock is inactive.
Bazecor responsibilities:
Discover support through help.
Read/write the setting in Preferences > LEDs.
Hide the setting for firmware that does not expose the commands.
Kaleidoscope findings
After looking further into the upstream firmware stack, keyboardio/Kaleidoscope looks highly relevant here:
The Kaleidoscope documentation describes it as firmware for Arduino-powered keyboards and lists Dygma Raise as a Kaleidoscope-powered keyboard. There are also older Keyboardio community discussions showing the same general pattern for Caps Lock LED behavior:
However, the Defy Wireless firmware layout appears to have an additional Dygma-specific adapter layer. In NeuronWirelessLibs/.gitmodules, the firmware references:
keyboardio/Kaleidoscope likely provides the upstream concept/API pattern.
Dygmalab/kaleidoscope_adapter likely provides the Defy-specific bridge to keyboard_api.h, kbdapi, kbdif, keymap access, and layer/key events.
The Defy Wireless architecture also involves Neuron + side keyscanners + remote LED handling, so the final integration may need to happen through Dygma's adapter/LED pipeline rather than as a plain standalone Kaleidoscope plugin.
Bazecor UI is gated by Focus help, so older firmware should not expose the setting.
Firmware config storage and Focus commands are drafted.
The live overlay behavior is intentionally not complete yet.
Open questions
Is Dygmalab/kaleidoscope_adapter intended to be accessible to external contributors, or is there another preferred public API/path for this integration?
For Defy Wireless specifically, should the live Caps Lock LED behavior be implemented in NeuronLedLibrary, in the Kaleidoscope adapter layer, or closer to the side keyscanner LED pipeline?
Is the preferred host-state source still the Kaleidoscope/HID LED state pattern, or does the Defy Wireless stack already expose a Dygma-specific host LED-state event?
Should the firmware highlight only keys currently mapped to Key_CapsLock, or should Bazecor allow selecting an arbitrary indicator key?
The remaining firmware piece is: detect host Caps Lock state, locate the active Caps Lock key, and temporarily override its LED color without disrupting the regular LED mode.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi Dygma team,
I would like to contribute a Caps Lock LED indicator feature.
Problem
On keyboards without a dedicated Caps Lock indicator, it is easy to accidentally type in uppercase, only notice after writing, disable Caps Lock, and retype. I would like the Caps Lock key LED to change color while the host reports Caps Lock as active.
Proposed behavior
Compatibility approach
help.Implementation sketch
Firmware Focus commands:
led.capsLockIndicator.enabledled.capsLockIndicator.colorFirmware responsibilities:
Key_CapsLockon the active keymap/layer.Bazecor responsibilities:
help.Kaleidoscope findings
After looking further into the upstream firmware stack,
keyboardio/Kaleidoscopelooks highly relevant here:The Kaleidoscope documentation describes it as firmware for Arduino-powered keyboards and lists Dygma Raise as a Kaleidoscope-powered keyboard. There are also older Keyboardio community discussions showing the same general pattern for Caps Lock LED behavior:
The important upstream pattern appears to be reading the host LED state with something equivalent to:
kaleidoscope::hid::getKeyboardLEDs() & LED_CAPS_LOCKand then setting or refreshing the relevant LED.
However, the Defy Wireless firmware layout appears to have an additional Dygma-specific adapter layer. In
NeuronWirelessLibs/.gitmodules, the firmware references:[submodule "kaleidoscope_adapter"] path = kaleidoscope_adapter url = git@github.com:Dygmalab/kaleidoscope_adapter.git branch = mainSo my current understanding is:
keyboardio/Kaleidoscopelikely provides the upstream concept/API pattern.Dygmalab/kaleidoscope_adapterlikely provides the Defy-specific bridge tokeyboard_api.h,kbdapi,kbdif, keymap access, and layer/key events.Draft PRs
I opened draft PRs as an implementation example:
Current status of the drafts:
help, so older firmware should not expose the setting.Open questions
Dygmalab/kaleidoscope_adapterintended to be accessible to external contributors, or is there another preferred public API/path for this integration?NeuronLedLibrary, in the Kaleidoscope adapter layer, or closer to the side keyscanner LED pipeline?Key_CapsLock, or should Bazecor allow selecting an arbitrary indicator key?The remaining firmware piece is: detect host Caps Lock state, locate the active Caps Lock key, and temporarily override its LED color without disrupting the regular LED mode.
All reactions