summaryrefslogtreecommitdiff
path: root/users/konstantin/konstantin.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/konstantin/konstantin.c')
-rw-r--r--users/konstantin/konstantin.c65
1 files changed, 41 insertions, 24 deletions
diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c
index 9e3caca414..9cee25ac66 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);
+}