M keyboards/melody96/keymaps/konstantin/keymap.c => keyboards/melody96/keymaps/konstantin/keymap.c +9 -2
@@ 1,8 1,12 @@
#include QMK_KEYBOARD_H
#include "konstantin.h"
+static const hsv_t *colors[] = { &GODSPEED_BLUE, &GODSPEED_YELLOW };
+static size_t cnum = sizeof colors / sizeof *colors;
+static size_t cidx;
+
void eeconfig_init_keymap(void) {
- rgblight_sethsv(GODSPEED_BLUE.h, GODSPEED_BLUE.s, GODSPEED_BLUE.v);
+ rgblight_sethsv(colors[cidx]->h, colors[cidx]->s, colors[cidx]->v);
}
enum keycodes_keymap {
@@ 12,7 16,10 @@ enum keycodes_keymap {
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RGB_SET:
- rgblight_sethsv(GODSPEED_BLUE.h, GODSPEED_BLUE.s, GODSPEED_BLUE.v);
+ if (record->event.pressed) {
+ cidx = (cidx + 1) % cnum;
+ rgblight_sethsv(colors[cidx]->h, colors[cidx]->s, colors[cidx]->v);
+ }
return false;
default:
M users/konstantin/konstantin.c => users/konstantin/konstantin.c +1 -1
@@ 61,7 61,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
#ifdef LAYER_FN
- static bool fn_lock;
+ static bool fn_lock;
case FN_FNLK:
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
M users/konstantin/rgb.c => users/konstantin/rgb.c +2 -1
@@ 1,3 1,4 @@
#include "rgb.h"
-const hsv_t GODSPEED_BLUE = { .h = 300, .s = 68, .v = RGBLIGHT_LIMIT_VAL };
+const hsv_t GODSPEED_BLUE = { .h = 300, .s = 68, .v = RGBLIGHT_LIMIT_VAL };
+const hsv_t GODSPEED_YELLOW = { .h = 35, .s = 165, .v = RGBLIGHT_LIMIT_VAL };
M users/konstantin/rgb.h => users/konstantin/rgb.h +1 -0
@@ 15,3 15,4 @@ typedef struct {
} rgb_t;
extern const hsv_t GODSPEED_BLUE;
+extern const hsv_t GODSPEED_YELLOW;