#include "seq.h" static char buffer[32]; static uint8_t buffer_size = 0; void seq_start(void) { buffer_size = 0; SEND_STRING(":"); } bool seq_feed(uint16_t keycode) { if (keycode == KC_ENTER) { for (int i = 0; i < buffer_size + 1; i++) { tap_code(KC_BSPACE); } for (int i = 0; i < seq_config_size; i++) { seq_t item = seq_config[i]; if (strncmp(item.sequence, buffer, buffer_size) == 0) { send_unicode_string(item.result); } } buffer_size = 0; return false; } else if (keycode == KC_BSPACE) { if (buffer_size) { buffer_size--; tap_code(keycode); } return true; } else { if (keycode >= KC_A && keycode <= KC_Z) { buffer[buffer_size++] = keycode - KC_A + 'a'; tap_code(keycode); } return true; } }