summaryrefslogtreecommitdiff
path: root/users/ericgebhart/process_records.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/ericgebhart/process_records.c')
-rwxr-xr-xusers/ericgebhart/process_records.c216
1 files changed, 6 insertions, 210 deletions
diff --git a/users/ericgebhart/process_records.c b/users/ericgebhart/process_records.c
index c1036c7f07..bb4bc2563b 100755
--- a/users/ericgebhart/process_records.c
+++ b/users/ericgebhart/process_records.c
@@ -1,5 +1,5 @@
/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+ Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,80 +15,26 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ericgebhart.h"
-#include "caps_word.h"
-#include "g/keymap_combo.h"
+#include "extensions.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; }
-
-uint16_t tap_taplong_timer;
-
-inline void tap_taplong(uint16_t kc1, uint16_t kc2, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_taplong_timer = timer_read();
- } else {
- if (timer_elapsed(tap_taplong_timer) > TAPPING_TERM) {
- tap_code16(kc2);
- } else {
- tap_code16(kc1);
- }
- }
-}
-
-/* for (){}[]""''<>``. tap for open. Hold for open and close, ending inbetween. */
-/* Assumes a one character length. */
-inline void open_openclose(uint16_t kc1, uint16_t kc2, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_taplong_timer = timer_read();
- }else{
- if (timer_elapsed(tap_taplong_timer) > TAPPING_TERM) {
- tap_code16(kc1);
- tap_code16(kc2);
- tap_code16(KC_LEFT);
- } else {
- tap_code16(kc1);
- }
- }
-}
-
// Defines actions for my global custom keycodes. Defined in ericgebhart.h file
// Then runs the _keymap's record handier if not processed here
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // If console is enabled, it will print the matrix position and status of each key pressed
-#ifdef OLED_ENABLE
+#ifdef OLED_CUSTOM_ENABLE
process_record_user_oled(keycode, record);
-#endif // OLED
+#endif
- if (!process_caps_word(keycode, record)) { return false; }
+ PROCESS_EXTENSIONS
if (process_record_keymap(keycode, record) && process_record_secrets(keycode, record)) {
switch (keycode) {
- // Handle the key translations for Dvorak on bepo. It's best if these are the first
- // enums after SAFE_RANGE.
- case DB_1 ... BB_QUOT:
- if(record->event.pressed)
- send_keycode(keycode);
- unregister_code(keycode);
- break;
-
- // Set the default layer. eeprom if shifted.
- case KC_DVORAK ... KC_BEPO:
- if (record->event.pressed) {
- uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
- if (!mods) {
- default_layer_set(1UL << (keycode - KC_DVORAK));
- } else if (mods & MOD_MASK_SHIFT) {
- set_single_persistent_default_layer(1UL << (keycode - KC_DVORAK));
- }
- }
- break;
-
-
- case KC_RESET: // Custom RESET code
+ case KC_RESET:
if (!record->event.pressed) {
reset_keyboard();
}
@@ -99,156 +45,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// default_layer_set(1UL << _BEAKL);
// tap_code16(LSFT(KC_SPACE));
break;
-
-
- // tap or long tap for different key.
- case KC_CCCV: // One key copy/paste
- tap_taplong(LCTL(KC_C), LCTL(KC_V), record);
- break;
-
- case BP_CCCV: // One key copy/paste
- tap_taplong(LCTL(BP_C), LCTL(BP_V), record);
- break;
-
- case KC_CTCN: // New TaB/Window
- tap_taplong(LCTL(KC_T), LCTL(KC_N), record);
- break;
-
- case BP_CTCN: // New TaB/Window
- tap_taplong(LCTL(BP_T), LCTL(BP_N), record);
- break;
-
- case KC_CWCQ: // Close Tab-window/Quit
- tap_taplong(LCTL(KC_W), LCTL(KC_Q), record);
- break;
-
- case BP_CWCQ: // Close Tab-window/Quit
- tap_taplong(LCTL(BP_W), LCTL(BP_Q), record);
- break;
-
- case KC_XM_PORD: // Xmonad scratch pads or desktop
- tap_taplong(LGUI(KC_E), LGUI(KC_T), record);
- break;
-
- case BP_XM_PORD: // Xmonad scratch pads or desktop
- tap_taplong(LGUI(BP_E), LGUI(BP_T), record);
- break;
-
-
- // Open on tap and Open with close and back arrow on hold.
- case KC_OCPRN:
- open_openclose(KC_LPRN, KC_RPRN, record);
- break;
-
- case BP_OCPRN:
- open_openclose(DB_LPRN, DB_RPRN, record);
- break;
-
- case KC_OCBRC:
- open_openclose(KC_LBRC, KC_RBRC, record);
- break;
-
- case BP_OCBRC:
- open_openclose(KC_RBRC, KC_LBRC, record);
- break;
-
- case KC_OCCBR:
- open_openclose(KC_LCBR, KC_RCBR, record);
- break;
-
- case BP_OCCBR:
- open_openclose(BP_LCBR, BP_RCBR, record);
- break;
-
- case KC_OCDQUO:
- open_openclose(KC_DQUO, KC_DQUO, record);
- break;
-
- case BP_OCDQUO:
- open_openclose(BP_DQUO, BP_DQUO, record);
- break;
-
- case KC_OCQUOT:
- open_openclose(KC_QUOT, KC_QUOT, record);
- break;
-
- case BP_OCQUOT:
- open_openclose(BP_QUOT, BP_QUOT, record);
- break;
-
- case KC_OCGRV:
- open_openclose(KC_GRAVE, KC_GRAVE, record);
- break;
-
- case BP_OCGRV:
- open_openclose(BP_GRV, BP_GRV, record);
- break;
-
- case KC_OCLTGT:
- open_openclose(KC_LT, KC_GT, record);
- break;
-
- case BP_OCLTGT:
- open_openclose(BP_LDAQ, BP_RDAQ, record);
- break;
-
-
- //Turn shift backspace into delete.
- /* case KC_BSPC: */
- /* { */
- /* // Initialize a boolean variable that keeps track */
- /* // of the delete key status: registered or not? */
- /* static bool delkey_registered; */
- /* if (record->event.pressed) { */
- /* uint8_t mod_state = get_mods(); */
- /* // Detect the activation of either shift keys */
- /* if (mod_state & MOD_MASK_SHIFT) { */
- /* // First temporarily canceling both shifts so that */
- /* // shift isn't applied to the KC_DEL keycode */
- /* del_mods(MOD_MASK_SHIFT); */
- /* register_code(KC_DEL); */
- /* // Update the boolean variable to reflect the status of KC_DEL */
- /* delkey_registered = true; */
- /* // Reapplying modifier state so that the held shift key(s) */
- /* // still work even after having tapped the Backspace/Delete key. */
- /* set_mods(mod_state); */
- /* return false; */
- /* } */
- /* } else { // on release of KC_BSPC */
- /* // In case KC_DEL is still being sent even after the release of KC_BSPC */
- /* if (delkey_registered) { */
- /* unregister_code(KC_DEL); */
- /* delkey_registered = false; */
- /* return false; */
- /* } */
- /* } */
- /* // Let QMK process the KC_BSPC keycode as usual outside of shift */
- /* return true; */
- /* } */
-
-
-#ifdef UNICODE_ENABLE
- case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
- if (record->event.pressed) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
- break;
- case UC_TABL: // ┬─┬ノ( º _ ºノ)
- if (record->event.pressed) {
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
- break;
- case UC_SHRG: // ¯\_(ツ)_/¯
- if (record->event.pressed) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- break;
- case UC_DISA: // ಠ_ಠ
- if (record->event.pressed) {
- send_unicode_string("ಠ_ಠ");
- }
- break;
-#endif
}
}
return true;