diff options
Diffstat (limited to 'users/talljoe')
-rw-r--r-- | users/talljoe/config.h | 12 | ||||
-rw-r--r-- | users/talljoe/readme.md | 7 | ||||
-rw-r--r-- | users/talljoe/rules.mk | 9 | ||||
-rw-r--r-- | users/talljoe/talljoe.c | 179 | ||||
-rw-r--r-- | users/talljoe/talljoe.h | 199 | ||||
-rw-r--r-- | users/talljoe/tapdance.c | 146 |
6 files changed, 0 insertions, 552 deletions
diff --git a/users/talljoe/config.h b/users/talljoe/config.h deleted file mode 100644 index 33374014df..0000000000 --- a/users/talljoe/config.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef USERSPACE_CONFIG_H -#define USERSPACE_CONFIG_H - -#define PERMISSIVE_HOLD - -#define RESET_LAYER 15 - -#define BOOTMAGIC_KEY_SALT KC_ESC -#define BOOTMAGIC_KEY_SKIP KC_I -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_E - -#endif // !USERSPACE_CONFIG_H diff --git a/users/talljoe/readme.md b/users/talljoe/readme.md deleted file mode 100644 index e70c5c6dc0..0000000000 --- a/users/talljoe/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -Copyright 2018 Joe Wasson <info@talljoe.com> @talljoe - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file diff --git a/users/talljoe/rules.mk b/users/talljoe/rules.mk deleted file mode 100644 index e0a71561f4..0000000000 --- a/users/talljoe/rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -SRC += talljoe.c tapdance.c - -EXTRAFLAGS+=-flto - -TAP_DANCE_ENABLE=yes -CONSOLE_ENABLE=no -COMMAND_ENABLE=no -DYNAMIC_KEYMAP_ENABLE=no -BOOTMAGIC_ENABLE=full diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c deleted file mode 100644 index 345b5604bb..0000000000 --- a/users/talljoe/talljoe.c +++ /dev/null @@ -1,179 +0,0 @@ -#include QMK_KEYBOARD_H - -#include "talljoe.h" -#ifdef ZEAL_RGB -#include "../../../keyboards/zeal60/rgb_backlight.h" -#endif - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = TEMPLATE_TKL( - KC_ESC, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SLCK, MO_ADJ , - US_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , US_BSLS, KC_INS , KC_HOME, KC_PGUP, - US_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T , KC_Y, KC_U, KC_I, KC_O, KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL , KC_END , KC_PGDN, - CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G , KC_H, KC_J, KC_K, KC_L, US_SCLN, KC_QUOT, US_ENT , - SH_LBRC, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SH_RBRC, KC_UP , - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC2, KC_SPC1, KC_SPC3, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT , KC_LEFT, KC_DOWN, KC_RGHT), - [_WORKMAN] = TEMPLATE( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , US_SCLN, _______, _______, _______, - _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, - _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_NORMAN] = TEMPLATE( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , US_SCLN, _______, _______, _______, - _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, - _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_DVORAK] = TEMPLATE( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, - _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y , KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL , _______, - _______, KC_A, KC_O, KC_E, KC_U, KC_I , KC_D, KC_H, KC_T, KC_N, KC_S, US_MINS, _______, - _______, US_SCLN, KC_Q, KC_J, KC_K, KC_X , KC_B, KC_M, KC_W, KC_V, KC_Z, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_COLMAK] = TEMPLATE( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q, KC_W, KC_F, KC_P, KC_G , KC_J, KC_L, KC_U, KC_Y, US_SCLN, _______, _______, _______, - _______, KC_A, KC_R, KC_S, KC_T, KC_D , KC_H, KC_N, KC_E, KC_I, KC_O , _______, _______, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -#if (SPACE_COUNT > 1) - // A tweaked version of the Maltron layout - [_MALTROFF] = TEMPLATE( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q, KC_P, KC_Y, KC_G, KC_B , KC_J, KC_M, KC_U, KC_K, KC_L, _______, _______, _______, - _______, KC_A, KC_N, KC_I, KC_S, KC_F , KC_D, KC_T, KC_H, KC_O, KC_R , US_ENT , KC_BSPC, - _______, KC_Z, KC_X, KC_C, KC_V, US_QUOT, KC_SCLN, KC_W, KC_COMM, KC_DOT, KC_SLSH, _______, _______, - _______, _______, _______, MLT_E , _______, _______, _______, _______, _______, _______), -#endif -#ifdef ENABLE_GAME_LAYER - [_GAME] = TEMPLATE( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV, - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, - MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ , - KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_PTT ), -#endif - [_NAV] = TEMPLATE_NAV( - KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX, XXXXXXX, - US_TAB , KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_INS , KC_PGUP, KC_UP , KC_PGDN, KC_BTN1, KC_BTN3, KC_BTN2, KC_DEL , - CTL_ESC, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_AMPR, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , US_QUOT, TG_ADJ , - KC_LSFT, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, KC_ASTR, KC_CALC, US_GRV , KC_WBAK, KC_WFWD, KC_WREF, KC_RSFT, KC_APP , - KC_LCTL, KC_LGUI, KC_LALT, NV_SPC2, NV_SPC1, NV_SPC3, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), - [_NUM] = TEMPLATE_NUM( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_CIRC, KC_7, KC_8, KC_9, KC_PMNS, XXXXXXX, XXXXXXX, KC_DEL , - CTL_ESC, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_PENT, KC_4, KC_5, KC_6, KC_PPLS, XXXXXXX, KC_ENT , - KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_PIPE, KC_1, KC_2, KC_3, KC_PAST, KC_PSLS, TG_NUM , - KC_LCTL, KC_LGUI, KC_LALT, NM_SPC2, NM_SPC1, NM_SPC3, KC_PDOT, KC_PCMM, KC_RCTL, KC_PTT ), - // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards) - [_ADJUST] = TEMPLATE_ADJUST( - MO_RST , FX(1) , FX(2) , FX(3) , FX(4) , FX(5) , FX(6) , FX(7) , FX(8) , FX(9) , FX(10) , BR_DEC , BR_INC , XXXXXXX, MO_RST , - MO_RST , H1_INC , S1_INC , H2_INC , S2_INC , EF_INC , RGB_HUI, RGB_SAI, RGB_MOD, RGB_M_P, DFAULTS, RGB_VAD, RGB_VAI, MO_RST , - XXXXXXX, H1_DEC , S1_DEC , H2_DEC , S2_DEC , EF_DEC , RGB_HUD, RGB_SAD, RGB_RMOD,RGB_M_K, RGB_M_B, RGB_M_G, TG_ADJ , - TG_NKRO, LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK, XXXXXXX, LY_MALT, XXXXXXX, XXXXXXX, KC_MAKE, KC_CAPS, XXXXXXX, - MO_RST , AG_SWAP, AG_NORM, XXXXXXX, BL_TOGG, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, TG_GAME), - // To Reset hit FN + ` + Esc - [_RESET] = TEMPLATE_RESET, -}; - -void matrix_scan_user(void) { - #ifdef KEYBOARD_gh60 - if (IS_LAYER_ON(_GAME)) { - gh60_wasd_leds_on(); - } else { - gh60_wasd_leds_off(); - } - #endif -} - -void matrix_init_user(void) { - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } -} - -uint32_t default_layer_state_set_kb(uint32_t state) { - // persist changes to default layers - eeconfig_update_default_layer(state); - return state; -} - -__attribute__ ((weak)) -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -} - -#ifdef ZEAL_RGB -extern backlight_config g_config; -#endif -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -#ifdef ZEAL_RGB - static uint8_t last_effect; -#endif - -#ifdef RGBLIGHT_ENABLE - static uint32_t savedRgbMode; - static uint16_t savedHue; - static uint8_t savedSat; - static uint8_t savedVal; - - if (keycode == KC_ESC) { - if (record->event.pressed) { - savedRgbMode = rgblight_get_mode(); - savedHue = rgblight_get_hue(); - savedSat = rgblight_get_sat(); - savedVal = rgblight_get_val(); - rgblight_mode(1); - rgblight_setrgb(255, 0, 0); - } else { - rgblight_mode(savedRgbMode); - rgblight_sethsv(savedHue, savedSat, savedVal); - } - } -#endif -// If console is enabled, it will print the matrix position and status of each key pressed -#ifdef CONSOLE_ENABLE - xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed); -#endif //CONSOLE_ENABLE - - switch (keycode) { - case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader - if (!record->event.pressed) { - SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP - - #if defined(BOOTLOADER_HALFKAY) - ":teensy" - #elif defined(BOOTLOADER_CATERINA) - ":avrdude" - #else - ":dfu" - #endif - SS_TAP(X_ENTER)); - } - return false; - break; -#ifdef ZEAL_RGB - case BL_TOGG: - if (IS_PRESSED(record->event)) { - if (g_config.effect) { - last_effect = g_config.effect; - g_config.effect = 0; - } else { - g_config.effect = last_effect; - } - } - return false; - case EFFECT...EFFECT_END: - if (IS_PRESSED(record->event)) { - uint8_t effect = keycode - EFFECT; - if(effect == g_config.effect) - effect = 0; // Toggle effect on second press - g_config.effect = effect; - backlight_config_save(); - } - return false; -#endif - } - return process_record_keymap(keycode, record); -} diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h deleted file mode 100644 index 496a6222a9..0000000000 --- a/users/talljoe/talljoe.h +++ /dev/null @@ -1,199 +0,0 @@ -#ifndef USERSPACE -#define USERSPACE - -#include "quantum.h" - -enum userspace_custom_keycodes { - KC_MAKE = SAFE_RANGE, // can always be here - DFAULTS, - TOGGLE_BACKLIGHT, - EFFECT, - EFFECT_END = EFFECT + 20 -}; - -#ifndef RESET_LAYER -#define RESET_LAYER 15 -#endif - -enum layers { - _BASE = 0, - _WORKMAN, - _NORMAN, - _DVORAK, - _COLMAK, - _MALTROFF, - _GAME, - _NAV, - _NUM, - _ADJUST, - _RESET = RESET_LAYER, -}; - -enum tap_dancers { - TD_SEMICOLON, - TD_GRAVE, - TD_QUOTE, -}; - -#define MO_NAV MO(_NAV) -#define MO_ADJ MO(_ADJUST) -#define MO_RST MO(_RESET) -#define TG_ADJ TG(_ADJUST) -#define TG_NUM TG(_NUM) -#ifdef ENABLE_GAME_LAYER - #define TG_GAME TG(_GAME) -#else - #define TG_GAME KC_NO -#endif -#define LY_QWER DF(_BASE) -#define LY_WORK DF(_WORKMAN) -#define LY_NRMN DF(_NORMAN) -#define LY_DVRK DF(_DVORAK) -#define LY_CLMK DF(_COLMAK) -#if SPACE_COUNT >= 2 - #define LY_MALT DF(_MALTROFF) -#else - #define LY_MALT KC_NO -#endif -#define TG_NKRO MAGIC_TOGGLE_NKRO -#define KC_PTT KC_F24 -#define MS_MID KC_MS_BTN3 -#define FX(x) (EFFECT + x) - -#define CTL_ESC CTL_T(KC_ESC) -#define US_ENT RCTL_T(KC_ENT) -#define US_MINS RCTL_T(KC_QUOT) -#define US_BSLS LCA_T(KC_BSLS) -#define US_SCLN TD(TD_SEMICOLON) -#define US_GRV TD(TD_GRAVE) -#define US_QUOT TD(TD_QUOTE) -#define US_TAB C_S_T(KC_TAB) -#define SH_LBRC LSFT_T(KC_LBRC) -#define SH_RBRC RSFT_T(KC_RBRC) - -#define MLT_E LT(_NUM, KC_E) - -#ifndef SPACE_COUNT - #define SPACE_COUNT 1 -#endif -#if (SPACE_COUNT == 1) - #define KC_SPC1 LT(_NAV, KC_SPC) - #define KC_SPC2 XXXXXXX - #define KC_SPC3 XXXXXXX - - #define NV_SPC1 _______ - #define NV_SPC2 _______ - #define NV_SPC3 _______ - - #define NM_SPC1 _______ - #define NM_SPC2 _______ - #define NM_SPC3 _______ -#elif (SPACE_COUNT == 2) - #define KC_SPC1 LT(_NAV,KC_SPC) - #define KC_SPC2 LT(_NUM,KC_ENT) - - #define NV_SPC1 KC_SPC - #define NV_SPC2 KC_ENT - - #define NM_SPC1 KC_0 - #define NM_SPC2 KC_SPC - - #define KC_SPC3 XXXXXXX - #define NV_SPC3 XXXXXXX - #define NM_SPC3 XXXXXXX -#elif (SPACE_COUNT == 3) - #ifdef SWAP_HANDS_ENABLE - #define KC_SPC1 SH_T(KC_BSPC) - #else - #define KC_SPC1 KC_BSPC - #endif - #define KC_SPC2 LT(_NUM,KC_ENT) - #define KC_SPC3 LT(_NAV,KC_SPC) - - #define NV_SPC1 KC_SPC - #define NV_SPC2 KC_ENT - #define NV_SPC3 KC_SPC - - #define NM_SPC1 KC_SPC - #define NM_SPC2 XXXXXXX - #define NM_SPC3 KC_0 -#else - #error "Unsupported space count:" SPACE_COUNT -#endif - -#ifndef ZEAL_RGB - #define BR_INC KC_NO - #define BR_DEC KC_NO - #define EF_INC KC_NO - #define EF_DEC KC_NO - #define ES_INC KC_NO - #define ES_DEC KC_NO - #define H1_INC KC_NO - #define H1_DEC KC_NO - #define S1_INC KC_NO - #define S1_DEC KC_NO - #define H2_INC KC_NO - #define H2_DEC KC_NO - #define S2_INC KC_NO - #define S2_DEC KC_NO - #define FN_MO13 KC_NO - #define FN_MO2 KC_NO -#endif - -#ifndef TEMPLATE - #define _X_ KC_NO - #define TEMPLATE( \ - KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \ - KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \ - KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ - KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \ - KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \ - ) TEMPLATE_TKL ( \ - KJ6, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, KA5, \ - KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, _X_, _X_, _X_, \ - KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, _X_, _X_, _X_, \ - KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ - KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, _X_, \ - KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, _X_, _X_, _X_ \ - ) -#endif -#ifndef TEMPLATE_TKL - #define TEMPLATE_TKL( \ - KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ - KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ - KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \ - KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ - KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \ - KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ - ) TEMPLATE( \ - KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \ - KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \ - KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ - KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \ - KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \ - ) -#endif - -#ifndef TEMPLATE_ALT - #define TEMPLATE_ALT TEMPLATE -#endif -#ifndef TEMPLATE_NUM - #define TEMPLATE_NUM TEMPLATE_ALT -#endif -#ifndef TEMPLATE_NAV - #define TEMPLATE_NAV TEMPLATE_ALT -#endif -#ifndef TEMPLATE_ADJUST - #define TEMPLATE_ADJUST TEMPLATE_ALT -#endif - -#ifndef TEMPLATE_RESET - #define TEMPLATE_RESET TEMPLATE_ALT( \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX) -#endif - -#endif diff --git a/users/talljoe/tapdance.c b/users/talljoe/tapdance.c deleted file mode 100644 index c4d6025f0f..0000000000 --- a/users/talljoe/tapdance.c +++ /dev/null @@ -1,146 +0,0 @@ -//Tap Dance -#include "talljoe.h" - -enum { - SINGLE_TAP = 1, - SINGLE_HOLD = 2, - DOUBLE_TAP = 3, - DOUBLE_HOLD = 4, - DOUBLE_SINGLE_TAP = 5, //send two single taps - TRIPLE_TAP = 6, - TRIPLE_HOLD = 7, - SPECIAL = 8 -}; - -static struct { - int quote; - int semicolon; -} tap_state = {0}; - -int cur_dance (qk_tap_dance_state_t *state) { - if (state->count == 1) { - //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP - if (state->interrupted) { - // if (!state->pressed) return SINGLE_TAP; - //need "permissive hold" here. - // else return SINGLE_HOLD; - //If the interrupting key is released before the tap-dance key, then it is a single HOLD - //However, if the tap-dance key is released first, then it is a single TAP - //But how to get access to the state of the interrupting key???? - return SINGLE_TAP; - } - else { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } - } - //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated - //with single tap. - else if (state->count == 2) { - if (state->interrupted) return DOUBLE_SINGLE_TAP; - else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; - } - else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP; - else if (state->count == 3) return TRIPLE_HOLD; - else return SPECIAL; -} - -int hold_cur_dance (qk_tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted) { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } - else { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } - } - //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated - //with single tap. - else if (state->count == 2) { - if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; - } - else if (state->count == 3) { - if (!state->pressed) return TRIPLE_TAP; - else return TRIPLE_HOLD; - } - else return SPECIAL; -} - -// Send semi-colon + enter on two taps -void tap_dance_semicolon_finished(qk_tap_dance_state_t *state, void *user_data) { - tap_state.semicolon = hold_cur_dance(state); - switch (tap_state.semicolon) { - case SINGLE_TAP: case DOUBLE_HOLD: register_code(KC_SCLN); break; - case SINGLE_HOLD: layer_on(_NUM); break; - } -} - -void tap_dance_semicolon_reset(qk_tap_dance_state_t *state, void *user_data) { - switch (tap_state.semicolon) { - case SINGLE_TAP: case DOUBLE_HOLD: unregister_code(KC_SCLN); break; - case DOUBLE_TAP: { - if (get_mods()) { - SEND_STRING(";;"); // send normal when mods are pressed - } - else { - SEND_STRING(";\n"); - } - break; - } - case TRIPLE_TAP: { - SEND_STRING(";\n\n"); - } - case SPECIAL: layer_invert(_NUM); break; - case SINGLE_HOLD: layer_off(_NUM); break; - } - tap_state.semicolon = 0; -} - -// Send `. ~. ``` -void tap_dance_grave_finished(qk_tap_dance_state_t *state, void *user_data) { - switch(state->count) { - case 1: - SEND_STRING("`"); - break; - case 2: - SEND_STRING("~"); - break; - } -} - -void tap_dance_grave_each(qk_tap_dance_state_t *state, void *user_data) { - if(state->count == 3) { - SEND_STRING("```"); - } else if (state->count > 3) { - SEND_STRING("`"); - } -} - - -void tap_dance_quote_finished(qk_tap_dance_state_t *state, void *user_data) { - tap_state.quote = hold_cur_dance(state); - switch (tap_state.quote) { - case SINGLE_TAP: case DOUBLE_HOLD: register_code(KC_QUOT); break; - case SINGLE_HOLD: layer_on(_NAV); break; - } -} - -void tap_dance_quote_reset(qk_tap_dance_state_t *state, void *user_data) { - switch (tap_state.quote) { - case SINGLE_TAP: case DOUBLE_HOLD: unregister_code(KC_QUOTE); break; - case DOUBLE_TAP: SEND_STRING("\""); break; - case TRIPLE_TAP: layer_invert(_NAV); break; - case SINGLE_HOLD: layer_off(_NAV); break; - } - tap_state.quote = 0; -} - -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_SEMICOLON] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_semicolon_finished, tap_dance_semicolon_reset), - [TD_GRAVE] = ACTION_TAP_DANCE_FN_ADVANCED(tap_dance_grave_each, tap_dance_grave_finished, NULL), - [TD_QUOTE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_quote_finished, tap_dance_quote_reset), -}; |