summaryrefslogtreecommitdiff
path: root/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
diff options
context:
space:
mode:
authorKonstantin Đorđević <vomindoraan@gmail.com>2020-04-09 18:54:19 +0200
committerGitHub <noreply@github.com>2020-04-09 09:54:19 -0700
commit439afc883a94627fd3f742d573fcfdf90ddbb22a (patch)
tree47c3b781426c340d8eae3e2bdca6d3e67698b383 /keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
parent07c75feba3f2c0b4baf1c230750483004e502020 (diff)
[Keymap] Update personal userspace and keymaps (#8747)
* Update mousekey parameters in userspace * Disable GRAVE_ESC in boards where it isn't used * Tweak MODERN_DOLCH_RED and reset RGB on Shift+Toggle in KBD6X * Disable RGB controls when Fn/Caps indicator lights are on * Use LTO_ENABLE instead of setting -flto directly * Add led_update_keymap, use SS_LCTL instead of SS_LCTRL * Change TAPPING_TOGGLE from 2 to 3
Diffstat (limited to 'keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c')
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
index d002322056..46cc0a1137 100644
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
+++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
@@ -14,8 +14,23 @@ void eeconfig_init_keymap(void) {
rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL);
}
+bool indicator_light = false;
+
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
+ case RGB_TOG ... RGB_SPD:
+ // Disable RGB controls when Fn/Caps indicator lights are on
+ if (indicator_light) {
+ return false;
+ }
+ // Shift+Toggle = reset RGB
+ if (record->event.pressed && keycode == RGB_TOG && get_mods() & MOD_MASK_SHIFT) {
+ eeconfig_init_keymap();
+ return false;
+ }
+ break;
+
+ // Combined RCtrl and layer
case RCTRL:
if (record->event.pressed) {
register_code(KC_RCTRL);
@@ -33,17 +48,20 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
static inline void fn_light(void) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
rgblight_sethsv_noeeprom(modern_dolch_red.h, modern_dolch_red.s, rgblight_get_val());
+ indicator_light = true;
}
static inline void caps_light(void) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
rgblight_sethsv_noeeprom(modern_dolch_cyan.h, modern_dolch_cyan.s, rgblight_get_val());
+ indicator_light = true;
}
static inline void restore_light(void) {
rgblight_config_t saved = { .raw = eeconfig_read_rgblight() };
rgblight_sethsv_noeeprom(saved.hue, saved.sat, saved.val);
rgblight_mode_noeeprom(saved.mode);
+ indicator_light = false;
}
static void check_light_layer(uint32_t state) {