qmk-keychron-q3-colemak-dh/users/miketronic/process_records.c

152 lines
4.0 KiB
C
Raw Normal View History

// 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);
}