diff options
Diffstat (limited to 'users/dshields/dshields.c')
-rw-r--r-- | users/dshields/dshields.c | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/users/dshields/dshields.c b/users/dshields/dshields.c index 6aff5c6716..bc88cae561 100644 --- a/users/dshields/dshields.c +++ b/users/dshields/dshields.c @@ -1,30 +1,31 @@ -extern keymap_config_t keymap_config; +#include "quantum.h" +#include "dshields.h" -/* uncomment to reset -void matrix_init_user(void) { - eeconfig_init(); -}; -*/ +extern bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record); bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_dynamic_macro(keycode, record)) { return false; } - return true; -} - -// work in progress -uint32_t layer_state_set_user(uint32_t state) { - switch (biton32(state)) { - case DEF: - set_all_leds_to(0,0,0); - break; - case FUN: - // TODO light the fn keys - // set_led_to(?, 0, 128, 0); - // set_led_to(?, 0, 128, 0); - break; + if (keycode == KC_ESC && record->event.pressed) { + bool rc = true; + uint8_t mods = 0; + if ((mods = get_oneshot_mods()) && !has_oneshot_mods_timed_out()) { + clear_oneshot_mods(); + unregister_mods(mods); + rc = false; + } + if ((mods = get_oneshot_locked_mods())) { + clear_oneshot_locked_mods(); + unregister_mods(mods); + rc = false; + } + if (is_oneshot_layer_active()) { + layer_clear(); + rc = false; + } + return rc; } - return state; + return true; } |