aboutsummaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorKonstantin Đorđević <konstantin.djordjevic@tradecore.com>2019-07-25 21:31:40 +0200
committerDrashna Jaelre <drashna@live.com>2019-07-25 12:31:40 -0700
commit36d3902504d6aa0d2bdac88c90339c902ade11b3 (patch)
treeb4a36c6b3cb5d54f44680df60c1845e8cb917197 /users
parentf204ed67f210b1dde20333727c79c47a5b70518a (diff)
downloadqmk_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')
-rw-r--r--users/konstantin/config.h6
-rw-r--r--users/konstantin/konstantin.c52
-rw-r--r--users/konstantin/konstantin.h22
-rw-r--r--users/konstantin/rgb.c7
-rw-r--r--users/konstantin/rgb.h12
-rw-r--r--users/konstantin/tap_dance.c2
-rw-r--r--users/konstantin/tap_dance.h4
7 files changed, 66 insertions, 39 deletions
diff --git a/users/konstantin/config.h b/users/konstantin/config.h
index 4edab2baa..d712e79d3 100644
--- a/users/konstantin/config.h
+++ b/users/konstantin/config.h
@@ -13,6 +13,12 @@
13#define NO_ACTION_MACRO 13#define NO_ACTION_MACRO
14#define NO_ACTION_ONESHOT 14#define NO_ACTION_ONESHOT
15 15
16#undef RGBLIGHT_ANIMATIONS
17#define RGBLIGHT_EFFECT_BREATHING
18#define RGBLIGHT_EFFECT_RAINBOW_MOOD
19#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
20#define RGBLIGHT_EFFECT_SNAKE
21
16#define PERMISSIVE_HOLD 22#define PERMISSIVE_HOLD
17#define TAPPING_TERM 200 23#define TAPPING_TERM 200
18#define TAPPING_TOGGLE 2 24#define TAPPING_TOGGLE 2
diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c
index 9e3caca41..c56c9490f 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) {
32 } 32 }
33 33
34 switch (keycode) { 34 switch (keycode) {
35 case CLEAR: 35 uint16_t kc;
36 if (record->event.pressed) {
37 SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
38 }
39 return false;
40
41 case DST_P_R:
42 (record->event.pressed ? register_code16 : unregister_code16)(
43 (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV
44 );
45 return false;
46
47 case DST_N_A:
48 (record->event.pressed ? register_code16 : unregister_code16)(
49 (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT
50 );
51 return false;
52
53#ifdef LAYER_FN 36#ifdef LAYER_FN
54 static bool fn_lock; 37 static bool fn_lock = false;
55 38
56 case FN_FNLK: 39 case FN_FNLK:
57 if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { 40 if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
@@ -77,6 +60,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
77 } 60 }
78 return true; 61 return true;
79 62
63 case CLEAR:
64 if (record->event.pressed) {
65 CLEAN_MODS(
66 SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
67 )
68 }
69 return false;
70
71 case DST_P_R:
72 kc = (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV;
73 CLEAN_MODS(
74 (record->event.pressed ? register_code16 : unregister_code16)(kc);
75 )
76 return false;
77
78 case DST_N_A:
79 kc = (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT;
80 CLEAN_MODS(
81 (record->event.pressed ? register_code16 : unregister_code16)(kc);
82 )
83 return false;
84
80 default: 85 default:
81 return true; 86 return true;
82 } 87 }
@@ -91,7 +96,7 @@ uint32_t layer_state_set_user(uint32_t state) {
91 state = layer_state_set_keymap(state); 96 state = layer_state_set_keymap(state);
92 97
93#ifdef LAYER_NUMPAD 98#ifdef LAYER_NUMPAD
94 bool numpad = state & 1UL<<L_NUMPAD; 99 bool numpad = IS_LAYER_ON_STATE(state, L_NUMPAD);
95 bool num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK); 100 bool num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK);
96 if (numpad != num_lock) { 101 if (numpad != num_lock) {
97 tap_code(KC_NLCK); // Toggle Num Lock to match Numpad layer state 102 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) {
100 105
101 return state; 106 return state;
102} 107}
108
109__attribute__((weak))
110void led_set_keymap(uint8_t usb_led) {}
111
112void led_set_user(uint8_t usb_led) {
113 led_set_keymap(usb_led);
114}
diff --git a/users/konstantin/konstantin.h b/users/konstantin/konstantin.h
index d43712b96..84d90dda5 100644
--- a/users/konstantin/konstantin.h
+++ b/users/konstantin/konstantin.h
@@ -47,15 +47,16 @@
47 47
48#define LCT_CPS LCTL_T(KC_CAPS) 48#define LCT_CPS LCTL_T(KC_CAPS)
49 49
50#ifdef SEND_STRING_CLEAN 50#define IS_LAYER_ON_STATE(state, layer) ( (state) & (1UL << (layer)))
51 #undef SEND_STRING 51#define IS_LAYER_OFF_STATE(state, layer) (~(state) & (1UL << (layer)))
52 #define SEND_STRING(string) { \ 52
53 uint8_t ss_mods = get_mods(); \ 53// Clear mods, perform action, restore mods
54 clear_mods(); \ 54#define CLEAN_MODS(action) { \
55 send_string_P(PSTR(string)); \ 55 uint8_t mods = get_mods(); \
56 set_mods(ss_mods); \ 56 clear_mods(); \
57 } 57 action; \
58#endif 58 set_mods(mods); \
59 }
59 60
60enum keycodes_user { 61enum keycodes_user {
61 CLEAR = SAFE_RANGE, 62 CLEAR = SAFE_RANGE,
@@ -81,5 +82,6 @@ void keyboard_pre_init_keymap(void);
81void eeconfig_init_keymap(void); 82void eeconfig_init_keymap(void);
82void keyboard_post_init_keymap(void); 83void keyboard_post_init_keymap(void);
83 84
84bool process_record_keymap(uint16_t keycode, keyrecord_t *record); 85bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
85uint32_t layer_state_set_keymap(uint32_t state); 86uint32_t layer_state_set_keymap(uint32_t state);
87void led_set_keymap(uint8_t usb_led);
diff --git a/users/konstantin/rgb.c b/users/konstantin/rgb.c
index a96cad019..fffa250f2 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 };
20const uint8_t PROGMEM RGBLED_KNIGHT_INTERVALS[] = { 20, 50, 100 }; 20const uint8_t PROGMEM RGBLED_KNIGHT_INTERVALS[] = { 20, 50, 100 };
21#endif 21#endif
22 22
23const HSV GODSPEED_BLUE = { .h = 198, .s = 68, .v = 255 }; 23const HSV godspeed_blue = { GODSPEED_BLUE };
24const HSV GODSPEED_YELLOW = { .h = 27, .s = 153, .v = 255 }; 24const HSV godspeed_yellow = { GODSPEED_YELLOW };
25const HSV MODERN_DOLCH_RED = { .h = 252, .s = 255, .v = 144 }; 25const HSV modern_dolch_cyan = { MODERN_DOLCH_CYAN };
26const HSV modern_dolch_red = { MODERN_DOLCH_RED };
diff --git a/users/konstantin/rgb.h b/users/konstantin/rgb.h
index 36a9d9cd7..cc7d91808 100644
--- a/users/konstantin/rgb.h
+++ b/users/konstantin/rgb.h
@@ -2,6 +2,12 @@
2 2
3#include "quantum.h" 3#include "quantum.h"
4 4
5extern const HSV GODSPEED_BLUE; 5#define GODSPEED_BLUE 198, 68, 255
6extern const HSV GODSPEED_YELLOW; 6#define GODSPEED_YELLOW 27, 153, 255
7extern const HSV MODERN_DOLCH_RED; 7#define MODERN_DOLCH_CYAN 110, 255, 108
8#define MODERN_DOLCH_RED 251, 255, 108
9
10extern const HSV godspeed_blue;
11extern const HSV godspeed_yellow;
12extern const HSV modern_dolch_cyan;
13extern const HSV modern_dolch_red;
diff --git a/users/konstantin/tap_dance.c b/users/konstantin/tap_dance.c
index ba1453fc0..b36bc3dcc 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) {
107qk_tap_dance_action_t tap_dance_actions[] = { 107qk_tap_dance_action_t tap_dance_actions[] = {
108 [TD_DST_A_R] = ACTION_TAP_DANCE_DOUBLE(DST_ADD, DST_REM), 108 [TD_DST_A_R] = ACTION_TAP_DANCE_DOUBLE(DST_ADD, DST_REM),
109 109
110 [TD_RAL_LAL] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RALT, KC_LALT),
111 [TD_RAL_RGU] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RALT, KC_RGUI), 110 [TD_RAL_RGU] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RALT, KC_RGUI),
112 [TD_RCT_RSF] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RCTL, KC_RSFT), 111 [TD_RCT_RSF] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RCTL, KC_RSFT),
113 [TD_RSF_RCT] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RSFT, KC_RCTL), 112 [TD_RSF_RCT] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RSFT, KC_RCTL),
114 113
115 [TD_LSFT_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_LSFT, L_FN), 114 [TD_LSFT_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_LSFT, L_FN),
116 [TD_RCTL_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_RCTL, L_FN), 115 [TD_RCTL_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_RCTL, L_FN),
116
117 [TD_FN_RCTL] = ACTION_TAP_DANCE_LAYER_MOD(L_FN, KC_RCTL), 117 [TD_FN_RCTL] = ACTION_TAP_DANCE_LAYER_MOD(L_FN, KC_RCTL),
118}; 118};
diff --git a/users/konstantin/tap_dance.h b/users/konstantin/tap_dance.h
index d2f00c8cb..461d7ba8a 100644
--- a/users/konstantin/tap_dance.h
+++ b/users/konstantin/tap_dance.h
@@ -4,24 +4,24 @@
4 4
5#define DST_A_R TD(TD_DST_A_R) 5#define DST_A_R TD(TD_DST_A_R)
6 6
7#define RAL_LAL TD(TD_RAL_LAL)
8#define RAL_RGU TD(TD_RAL_RGU) 7#define RAL_RGU TD(TD_RAL_RGU)
9#define RCT_RSF TD(TD_RCT_RSF) 8#define RCT_RSF TD(TD_RCT_RSF)
10#define RSF_RCT TD(TD_RSF_RCT) 9#define RSF_RCT TD(TD_RSF_RCT)
11 10
12#define LSFT_FN TD(TD_LSFT_FN) 11#define LSFT_FN TD(TD_LSFT_FN)
13#define RCTL_FN TD(TD_RCTL_FN) 12#define RCTL_FN TD(TD_RCTL_FN)
13
14#define FN_RCTL TD(TD_FN_RCTL) 14#define FN_RCTL TD(TD_FN_RCTL)
15 15
16enum tap_dance { 16enum tap_dance {
17 TD_DST_A_R, 17 TD_DST_A_R,
18 18
19 TD_RAL_LAL,
20 TD_RAL_RGU, 19 TD_RAL_RGU,
21 TD_RCT_RSF, 20 TD_RCT_RSF,
22 TD_RSF_RCT, 21 TD_RSF_RCT,
23 22
24 TD_LSFT_FN, 23 TD_LSFT_FN,
25 TD_RCTL_FN, 24 TD_RCTL_FN,
25
26 TD_FN_RCTL, 26 TD_FN_RCTL,
27}; 27};