diff options
author | William Chang <william@factual.com> | 2019-11-20 22:17:07 -0800 |
---|---|---|
committer | William Chang <william@factual.com> | 2019-11-20 22:17:07 -0800 |
commit | e7f4d56592b3975c38af329e77b4efd9108495e8 (patch) | |
tree | 0a416bccbf70bfdbdb9ffcdb3bf136b47378c014 /users/konstantin/konstantin.c | |
parent | 71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (diff) | |
parent | 8416a94ad27b3ff058576f09f35f0704a8b39ff3 (diff) | |
download | firmware-e7f4d56592b3975c38af329e77b4efd9108495e8.tar.gz firmware-e7f4d56592b3975c38af329e77b4efd9108495e8.tar.bz2 firmware-e7f4d56592b3975c38af329e77b4efd9108495e8.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'users/konstantin/konstantin.c')
-rw-r--r-- | users/konstantin/konstantin.c | 65 |
1 files changed, 41 insertions, 24 deletions
diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c index 9e3caca41..9cee25ac6 100644 --- a/users/konstantin/konstantin.c +++ b/users/konstantin/konstantin.c @@ -32,32 +32,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { - case CLEAR: + uint16_t kc; +#ifdef LAYER_FN + static bool fn_lock = false; + + case FNLK: if (record->event.pressed) { - SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); + fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this } - 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; - -#ifdef LAYER_FN - static bool fn_lock; + break; case FN_FNLK: if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this + fn_lock = !IS_LAYER_ON(L_FN); } - return true; + break; #endif case KC_ESC: @@ -75,11 +64,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif } - return true; + break; - default: - return true; + case CLEAR: + if (record->event.pressed) { + CLEAN_MODS( + SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); + ) + } + break; + + case DST_P_R: + kc = (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV; + CLEAN_MODS( + (record->event.pressed ? register_code16 : unregister_code16)(kc); + ) + break; + + case DST_N_A: + kc = (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT; + CLEAN_MODS( + (record->event.pressed ? register_code16 : unregister_code16)(kc); + ) + break; } + + return true; } __attribute__((weak)) @@ -91,7 +101,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 +110,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); +} |