diff options
Diffstat (limited to 'waffle')
-rw-r--r-- | waffle/oled.c | 26 | ||||
-rw-r--r-- | waffle/oled.h | 1 | ||||
-rw-r--r-- | waffle/tapping.c | 27 | ||||
-rw-r--r-- | waffle/waffle.h | 1 |
4 files changed, 38 insertions, 17 deletions
diff --git a/waffle/oled.c b/waffle/oled.c index 4b2cdcb..a89ee7e 100644 --- a/waffle/oled.c +++ b/waffle/oled.c @@ -90,8 +90,8 @@ void keylock_status(led_t led_usb_state) { oled_write_ln(blink ? PSTR("% _") : PSTR("% "), false); } -static uint16_t log_timer = 0; -char keylog_str[5] = {0}; +char keylog_str[5] = {}; +static uint16_t keylog_timer = 0; const char code_to_name[60] = { ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', @@ -102,14 +102,15 @@ const char code_to_name[60] = { }; void add_keylog(uint16_t keycode) { - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) - keycode = keycode & 0xFF; - for (uint8_t i = 4; i > 0; i--) + for (uint8_t i = ARRAY_SIZE(keylog_str) - 1; i > 0; i--) keylog_str[i] = keylog_str[i - 1]; - if (keycode < 60) - keylog_str[0] = code_to_name[keycode]; - keylog_str[4] = 0; - log_timer = timer_read(); + if (keycode < ARRAY_SIZE(code_to_name)) + keylog_str[0] = code_to_name[keycode & 0xFF]; + keylog_timer = timer_read(); +} + +void render_keylog(void) { + oled_write(keylog_str, false); } void render_keylogger(void) { oled_write(keylog_str, false); } @@ -225,10 +226,6 @@ void layer_anim(void) { } #endif -__attribute__((weak)) bool oled_task_keymap(void) { - return true; -} - bool oled_task_user(void) { if (is_keyboard_master()) { if (timer_elapsed32(oled_timer) > 180000) { @@ -237,8 +234,7 @@ bool oled_task_user(void) { } else oled_on(); } - if (!oled_task_keymap()) - return false; + oled_task_keymap(); return false; } diff --git a/waffle/oled.h b/waffle/oled.h index 20f3081..95eb74e 100644 --- a/waffle/oled.h +++ b/waffle/oled.h @@ -21,6 +21,7 @@ void bongo(void); //solid-filled bongo cat (0 or 180 rotation) void wpm_graph(void); //wpm graph for 128x64 oled (memory intensive) void layer_anim(void); void oled_timer_reset(void); +bool oled_task_keymap(void); #ifdef BONGO_CAT static const char PROGMEM bongo_idle[5][512] = { { diff --git a/waffle/tapping.c b/waffle/tapping.c index 5e89d52..1294384 100644 --- a/waffle/tapping.c +++ b/waffle/tapping.c @@ -137,8 +137,9 @@ tap_dance_action_t tap_dance_actions[] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (!process_record_unicode(keycode, record)) - return false; +#ifdef UNICODE_COMMON_ENABLE + process_record_unicode(keycode, record); +#endif #ifdef OLED_ENABLE if (record->event.pressed) { oled_timer_reset(); @@ -150,6 +151,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) SEND_STRING("../"); break; + case NUKE: + if (record->event.pressed) { + tap_code16(C(KC_A)); + SEND_STRING("\b```suggestion\n```"); + } + break; INTERCEPT_MOD_TAP(LALT_T, KC_EXLM) INTERCEPT_MOD_TAP(LGUI_T, KC_AT) INTERCEPT_MOD_TAP(LCTL_T, KC_HASH) @@ -170,3 +177,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } + +bool caps_word_press_user(uint16_t keycode) { + switch (keycode) { + case KC_A ... KC_Z: + case KC_MINS: + add_weak_mods(MOD_BIT(KC_LSFT)); + return true; + case KC_1 ... KC_0: + case KC_BSPC: + case KC_DEL: + case KC_UNDS: + return true; + case KC_LPRN: return false; + default: return false; + } +} diff --git a/waffle/waffle.h b/waffle/waffle.h index c48670c..629a87e 100644 --- a/waffle/waffle.h +++ b/waffle/waffle.h @@ -37,6 +37,7 @@ enum tapdances { enum custom_keycodes { UPDIR = QK_USER, + NUKE, TABLE1, TABLE2, KC_NOMODE, |