Merge pull request #6 from glasser/glasser/sticky-color

Show sticky keys in a different color
pull/389/head
Gergely Nagy 7 years ago committed by GitHub
commit c8b954c6ec

@ -46,6 +46,10 @@ property:
> The color to use for highlighting the modifiers. Defaults to a white color. > The color to use for highlighting the modifiers. Defaults to a white color.
### `.sticky_color`
> The color to use for highlighting one-shot modifiers when they are sticky. Defaults to a red color.
## Dependencies ## Dependencies
* [Kaleidoscope-LEDControl](https://github.com/keyboardio/Kaleidoscope-LEDControl) * [Kaleidoscope-LEDControl](https://github.com/keyboardio/Kaleidoscope-LEDControl)

@ -26,6 +26,8 @@ cRGB ActiveModColorEffect::highlight_color = (cRGB) {
0xff, 0xff, 0xff 0xff, 0xff, 0xff
}; };
cRGB ActiveModColorEffect::sticky_color = CRGB(0xff, 0x00, 0x00);
void ActiveModColorEffect::begin(void) { void ActiveModColorEffect::begin(void) {
Kaleidoscope.useLoopHook(loopHook); Kaleidoscope.useLoopHook(loopHook);
} }
@ -39,7 +41,9 @@ void ActiveModColorEffect::loopHook(bool is_post_clear) {
Key k = Layer.lookupOnActiveLayer(r, c); Key k = Layer.lookupOnActiveLayer(r, c);
if (::OneShot.isOneShotKey(k)) { if (::OneShot.isOneShotKey(k)) {
if (::OneShot.isActive(k)) if (::OneShot.isSticky(k))
::LEDControl.setCrgbAt(r, c, sticky_color);
else if (::OneShot.isActive(k))
::LEDControl.setCrgbAt(r, c, highlight_color); ::LEDControl.setCrgbAt(r, c, highlight_color);
else else
::LEDControl.refreshAt(r, c); ::LEDControl.refreshAt(r, c);

@ -29,6 +29,7 @@ class ActiveModColorEffect : public KaleidoscopePlugin {
void begin(void) final; void begin(void) final;
static cRGB highlight_color; static cRGB highlight_color;
static cRGB sticky_color;
private: private:
static void loopHook(bool is_post_clear); static void loopHook(bool is_post_clear);

Loading…
Cancel
Save