aboutsummaryrefslogtreecommitdiff
path: root/waffle
diff options
context:
space:
mode:
Diffstat (limited to 'waffle')
-rw-r--r--waffle/oled.c26
-rw-r--r--waffle/oled.h1
-rw-r--r--waffle/tapping.c27
-rw-r--r--waffle/waffle.h1
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,