|
|
@@ -174,7 +174,8 @@ enum function_id { |
|
|
|
AF_RGB_DECREASE, |
|
|
|
AF_RGB_FIXED, |
|
|
|
AF_RGB_VARIABLE, |
|
|
|
AF_RGB_STEP |
|
|
|
AF_RGB_STEP, |
|
|
|
TRICKY_ESC |
|
|
|
}; |
|
|
|
|
|
|
|
/* |
|
|
@@ -227,6 +228,7 @@ uint16_t fn_actions_count(void) { |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) |
|
|
|
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) |
|
|
|
{ |
|
|
|
if (record->event.pressed) { |
|
|
@@ -257,6 +259,25 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
static uint8_t tricky_esc_registered; |
|
|
|
switch (id) { |
|
|
|
case TRICKY_ESC: |
|
|
|
if (record->event.pressed) { |
|
|
|
if (get_mods() & MODS_SHIFT_MASK) { |
|
|
|
tricky_esc_registered = KC_GRV; |
|
|
|
} |
|
|
|
else { |
|
|
|
tricky_esc_registered = KC_ESC; |
|
|
|
} |
|
|
|
register_code(tricky_esc_registered); |
|
|
|
send_keyboard_report(); |
|
|
|
} |
|
|
|
else { |
|
|
|
unregister_code(tricky_esc_registered); |
|
|
|
send_keyboard_report(); |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* |