diff options
Diffstat (limited to 'users/miketronic/process_records.c')
-rw-r--r-- | users/miketronic/process_records.c | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/users/miketronic/process_records.c b/users/miketronic/process_records.c new file mode 100644 index 0000000000..5c60ddf100 --- /dev/null +++ b/users/miketronic/process_records.c @@ -0,0 +1,151 @@ +// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com> +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" +#include "process_records.h" + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + return true; +} + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + case VERSION: + if (!record->event.pressed) { + send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER); + } + break; + + case M01: + if (record->event.pressed) { + SEND_STRING("//a11"); + } + break; + + case M02: + if (record->event.pressed) { + SEND_STRING("//a12"); + } + break; + + case M03: + if (record->event.pressed) { + SEND_STRING("//a08"); + } + break; + + case M04: + if (record->event.pressed) { + SEND_STRING("//a09"); + } + break; + + case M05: + if (record->event.pressed) { + SEND_STRING("//th"); + } + break; + + case M06: + if (record->event.pressed) { + SEND_STRING("//re"); + } + break; + + case M07: + if (record->event.pressed) { + SEND_STRING("//yw"); + } + break; + + case M08: + if (record->event.pressed) { + tap_random_base64(); + } + break; + + case CCCV: // One key copy/paste + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + tap_code16(LCTL(KC_C)); + } else { // Tap, paste + tap_code16(LCTL(KC_V)); + } + } + break; + + case IENTER: // Tap for letter "i", slight hold for "enter" + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, enter + tap_code16(KC_ENT); + } else { // Tap, "i" + tap_code16(KC_I); + } + } + break; + + case PRN: + if (record->event.pressed) { + SEND_STRING("()"); + tap_code(KC_LEFT); + } + break; + + case BRACES: + if (record->event.pressed) { + uint8_t shifted = get_mods() & (MOD_MASK_SHIFT); + if (shifted) { + unregister_code(KC_LSFT); + unregister_code(KC_RSFT); + SEND_STRING("<>"SS_TAP(X_LEFT)); + } + else { + SEND_STRING("[]"SS_TAP(X_LEFT)); + } + } + break; + +#if defined(RGBLIGHT_ENABLE) + case RGB1: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_BLUE); + } + break; + + case RGB2: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_RED); + } + break; + + case RGB3: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_ORANGE); + } + break; + + case RGB4: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_WHITE); + } + break; + + case RGB5: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_GREEN); + } + break; +#endif + } + return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); +} |