123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #include "replicaJunction.h"
- #include "version.h"
- #ifdef TAP_DANCE_ENABLE
- void dance_layer(qk_tap_dance_state_t *state, void *user_data)
- {
- uint8_t layer = biton32(layer_state);
- if (state->count >= 5)
- {
- // 5 or more taps resets the keyboard
- reset_keyboard();
- }
- #ifdef L_QWERTY
- else if (state->count == 3)
- {
- // Triple tap changes to QWERTY layer
- if (layer == L_QWERTY)
- {
- layer_off(L_QWERTY);
- }
- else
- {
- layer_on(L_QWERTY);
- }
- }
- #endif
- #ifdef L_NUM
- else if (state->count == 2)
- {
- // Double tap toggles Number layer
- if (layer == L_NUM)
- {
- layer_off(L_NUM);
- }
- else
- {
- layer_on(L_NUM);
- }
- }
- #endif
- else
- {
- // Single tap sends Escape, and also turns off layers
- // That's mostly in case I get stuck and forget where I am
- #ifdef L_NUM
- layer_off(L_NUM);
- #endif
- #ifdef L_EXTEND
- layer_off(L_EXTEND);
- #endif
- #ifdef L_SYMBOL
- layer_off(L_SYMBOL);
- #endif
- #ifdef L_QWERTY
- layer_off(L_QWERTY);
- #endif
- register_code(KC_ESC);
- unregister_code(KC_ESC);
- }
- };
- // Tap Dance Definitions
- // Note - this needs to come AFTER the function is declared
- qk_tap_dance_action_t tap_dance_actions[] = {
- [TD_LAYER_TOGGLE] = ACTION_TAP_DANCE_FN(dance_layer)
- };
- #endif // TAP_DANCE_ENABLE
- // These functions can be overridden in individual keymap files.
- // This allows a user function to be shared for all my keyboards, while each
- // keyboard can also have a keyboard-specific section.
- // Note that keymaps don't need to override these if there's nothing to
- // override them with.
- __attribute__ ((weak))
- void matrix_init_keymap(void) {}
- __attribute__ ((weak))
- void matrix_scan_keymap(void) {}
- __attribute__ ((weak))
- bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
- };
- // Runs just one time when the keyboard initializes.
- void matrix_init_user(void) {
- #ifdef UNICODEMAP_ENABLE
- // Set Unicode input to use WinCompose
- // https://github.com/samhocevar/wincompose
- set_unicode_input_mode(UC_WINC);
- #endif // UNICODEMAP_ENABLE
- matrix_init_keymap();
- };
- // Runs constantly in the background, in a loop.
- void matrix_scan_user(void) {
- matrix_scan_keymap();
- }
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed)
- return true;
- switch(keycode)
- {
- case RJ_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
- #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
- ":dfu"
- #elif defined(BOOTLOADER_HALFKAY)
- ":teensy"
- #elif defined(BOOTLOADER_CATERINA)
- ":avrdude"
- #endif // bootloader options
- //SS_TAP(X_ENTER)
- );
- return false;
- case RJ_QMKV:
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- return false;
- case RJ_EQ:
- SEND_STRING("==");
- return false;
- case RJ_NEQ:
- SEND_STRING("!=");
- return false;
- case RJ_GEQ:
- SEND_STRING(">=");
- return false;
- case RJ_LEQ:
- SEND_STRING("<=");
- return false;
- case RJ_GEQR:
- SEND_STRING("=>");
- return false;
- case RJ_DUND:
- SEND_STRING("$_");
- return false;
- case RJ_SELS:
- SEND_STRING("select *");
- return false;
- }
- return process_record_keymap(keycode, record);
- };
|