diff options
author | Konstantin Đorđević <konstantin.djordjevic@tradecore.com> | 2019-07-25 21:31:40 +0200 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2019-07-25 12:31:40 -0700 |
commit | 36d3902504d6aa0d2bdac88c90339c902ade11b3 (patch) | |
tree | b4a36c6b3cb5d54f44680df60c1845e8cb917197 /users/konstantin | |
parent | f204ed67f210b1dde20333727c79c47a5b70518a (diff) | |
download | qmk_firmware-36d3902504d6aa0d2bdac88c90339c902ade11b3.tar.gz qmk_firmware-36d3902504d6aa0d2bdac88c90339c902ade11b3.zip |
[User] Update personal userspace and keymaps, add reactive underglow (#6410)
* Update MODERN_DOLCH_RED color
* Remove unused RAL_LAL tap dance
* Disable Space Cadet on all boards
* Rework SEND_STRING_CLEAN into CLEAN_MODS, fix DST_P_R/DST_N_A
* Disable unnecessary underglow animations
* Rearrange feature flags in rules.mk files
* Change custom colors from structs to defines
* Add some explicit initializers
* Add MODERN_DOLCH_CYAN color
* Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros
* Add led_set_keymap() template function
* Change underglow color based on Caps/Fn state
* Preserve val when changing underglow colors
* Only trigger Fn light for Fn layer
* Refactor fn_light() and caps_light() slightly
* Add comments to fn_light() and caps_light()
Diffstat (limited to 'users/konstantin')
-rw-r--r-- | users/konstantin/config.h | 6 | ||||
-rw-r--r-- | users/konstantin/konstantin.c | 52 | ||||
-rw-r--r-- | users/konstantin/konstantin.h | 22 | ||||
-rw-r--r-- | users/konstantin/rgb.c | 7 | ||||
-rw-r--r-- | users/konstantin/rgb.h | 12 | ||||
-rw-r--r-- | users/konstantin/tap_dance.c | 2 | ||||
-rw-r--r-- | users/konstantin/tap_dance.h | 4 |
7 files changed, 66 insertions, 39 deletions
diff --git a/users/konstantin/config.h b/users/konstantin/config.h index 4edab2baab..d712e79d3f 100644 --- a/users/konstantin/config.h +++ b/users/konstantin/config.h @@ -13,6 +13,12 @@ #define NO_ACTION_MACRO #define NO_ACTION_ONESHOT +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE + #define PERMISSIVE_HOLD #define TAPPING_TERM 200 #define TAPPING_TOGGLE 2 diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c index 9e3caca414..c56c9490fc 100644 --- a/users/konstantin/konstantin.c +++ b/users/konstantin/konstantin.c @@ -32,26 +32,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { - case CLEAR: - if (record->event.pressed) { - SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); - } - return false; - - case DST_P_R: - (record->event.pressed ? register_code16 : unregister_code16)( - (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV - ); - return false; - - case DST_N_A: - (record->event.pressed ? register_code16 : unregister_code16)( - (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT - ); - return false; - + uint16_t kc; #ifdef LAYER_FN - static bool fn_lock; + static bool fn_lock = false; case FN_FNLK: if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { @@ -77,6 +60,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; + case CLEAR: + if (record->event.pressed) { + CLEAN_MODS( + SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); + ) + } + return false; + + case DST_P_R: + kc = (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV; + CLEAN_MODS( + (record->event.pressed ? register_code16 : unregister_code16)(kc); + ) + return false; + + case DST_N_A: + kc = (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT; + CLEAN_MODS( + (record->event.pressed ? register_code16 : unregister_code16)(kc); + ) + return false; + default: return true; } @@ -91,7 +96,7 @@ uint32_t layer_state_set_user(uint32_t state) { state = layer_state_set_keymap(state); #ifdef LAYER_NUMPAD - bool numpad = state & 1UL<<L_NUMPAD; + bool numpad = IS_LAYER_ON_STATE(state, L_NUMPAD); bool num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK); if (numpad != num_lock) { tap_code(KC_NLCK); // Toggle Num Lock to match Numpad layer state @@ -100,3 +105,10 @@ uint32_t layer_state_set_user(uint32_t state) { return state; } + +__attribute__((weak)) +void led_set_keymap(uint8_t usb_led) {} + +void led_set_user(uint8_t usb_led) { + led_set_keymap(usb_led); +} diff --git a/users/konstantin/konstantin.h b/users/konstantin/konstantin.h index d43712b965..84d90dda57 100644 --- a/users/konstantin/konstantin.h +++ b/users/konstantin/konstantin.h @@ -47,15 +47,16 @@ #define LCT_CPS LCTL_T(KC_CAPS) -#ifdef SEND_STRING_CLEAN - #undef SEND_STRING - #define SEND_STRING(string) { \ - uint8_t ss_mods = get_mods(); \ - clear_mods(); \ - send_string_P(PSTR(string)); \ - set_mods(ss_mods); \ - } -#endif +#define IS_LAYER_ON_STATE(state, layer) ( (state) & (1UL << (layer))) +#define IS_LAYER_OFF_STATE(state, layer) (~(state) & (1UL << (layer))) + +// Clear mods, perform action, restore mods +#define CLEAN_MODS(action) { \ + uint8_t mods = get_mods(); \ + clear_mods(); \ + action; \ + set_mods(mods); \ + } enum keycodes_user { CLEAR = SAFE_RANGE, @@ -81,5 +82,6 @@ void keyboard_pre_init_keymap(void); void eeconfig_init_keymap(void); void keyboard_post_init_keymap(void); -bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); uint32_t layer_state_set_keymap(uint32_t state); +void led_set_keymap(uint8_t usb_led); diff --git a/users/konstantin/rgb.c b/users/konstantin/rgb.c index a96cad019d..fffa250f25 100644 --- a/users/konstantin/rgb.c +++ b/users/konstantin/rgb.c @@ -20,6 +20,7 @@ const uint8_t PROGMEM RGBLED_SNAKE_INTERVALS[] = { 20, 50, 100 }; const uint8_t PROGMEM RGBLED_KNIGHT_INTERVALS[] = { 20, 50, 100 }; #endif -const HSV GODSPEED_BLUE = { .h = 198, .s = 68, .v = 255 }; -const HSV GODSPEED_YELLOW = { .h = 27, .s = 153, .v = 255 }; -const HSV MODERN_DOLCH_RED = { .h = 252, .s = 255, .v = 144 }; +const HSV godspeed_blue = { GODSPEED_BLUE }; +const HSV godspeed_yellow = { GODSPEED_YELLOW }; +const HSV modern_dolch_cyan = { MODERN_DOLCH_CYAN }; +const HSV modern_dolch_red = { MODERN_DOLCH_RED }; diff --git a/users/konstantin/rgb.h b/users/konstantin/rgb.h index 36a9d9cd74..cc7d91808a 100644 --- a/users/konstantin/rgb.h +++ b/users/konstantin/rgb.h @@ -2,6 +2,12 @@ #include "quantum.h" -extern const HSV GODSPEED_BLUE; -extern const HSV GODSPEED_YELLOW; -extern const HSV MODERN_DOLCH_RED; +#define GODSPEED_BLUE 198, 68, 255 +#define GODSPEED_YELLOW 27, 153, 255 +#define MODERN_DOLCH_CYAN 110, 255, 108 +#define MODERN_DOLCH_RED 251, 255, 108 + +extern const HSV godspeed_blue; +extern const HSV godspeed_yellow; +extern const HSV modern_dolch_cyan; +extern const HSV modern_dolch_red; diff --git a/users/konstantin/tap_dance.c b/users/konstantin/tap_dance.c index ba1453fc05..b36bc3dcc8 100644 --- a/users/konstantin/tap_dance.c +++ b/users/konstantin/tap_dance.c @@ -107,12 +107,12 @@ void td_layer_mod_reset(qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_action_t tap_dance_actions[] = { [TD_DST_A_R] = ACTION_TAP_DANCE_DOUBLE(DST_ADD, DST_REM), - [TD_RAL_LAL] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RALT, KC_LALT), [TD_RAL_RGU] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RALT, KC_RGUI), [TD_RCT_RSF] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RCTL, KC_RSFT), [TD_RSF_RCT] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RSFT, KC_RCTL), [TD_LSFT_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_LSFT, L_FN), [TD_RCTL_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_RCTL, L_FN), + [TD_FN_RCTL] = ACTION_TAP_DANCE_LAYER_MOD(L_FN, KC_RCTL), }; diff --git a/users/konstantin/tap_dance.h b/users/konstantin/tap_dance.h index d2f00c8cb3..461d7ba8a9 100644 --- a/users/konstantin/tap_dance.h +++ b/users/konstantin/tap_dance.h @@ -4,24 +4,24 @@ #define DST_A_R TD(TD_DST_A_R) -#define RAL_LAL TD(TD_RAL_LAL) #define RAL_RGU TD(TD_RAL_RGU) #define RCT_RSF TD(TD_RCT_RSF) #define RSF_RCT TD(TD_RSF_RCT) #define LSFT_FN TD(TD_LSFT_FN) #define RCTL_FN TD(TD_RCTL_FN) + #define FN_RCTL TD(TD_FN_RCTL) enum tap_dance { TD_DST_A_R, - TD_RAL_LAL, TD_RAL_RGU, TD_RCT_RSF, TD_RSF_RCT, TD_LSFT_FN, TD_RCTL_FN, + TD_FN_RCTL, }; |