diff options
34 files changed, 880 insertions, 323 deletions
| diff --git a/keyboards/atreus/keymaps/talljoe-atreus/config.h b/keyboards/atreus/keymaps/talljoe-atreus/config.h deleted file mode 100644 index 87b68ffc65..0000000000 --- a/keyboards/atreus/keymaps/talljoe-atreus/config.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include QMK_KEYBOARD_CONFIG_H - -#define PREVENT_STUCK_MODIFIERS -#define SPACE_COUNT 2 - -#define TEMPLATE(                                                                     \ -    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D,      \ -    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \ -    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \ -    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,           \ -    K40, K41, K42,      K44, K45, K46,      K48, K49,      K4B, K4C                 \ -) LAYOUT( \ -  K11, K12, K13, K14, K15,           K16, K17, K18, K19, K1A, \ -  K21, K22, K23, K24, K25,           K26, K27, K28, K29, K2A, \ -  K32, K33, K34, K35, K36,           K37, K38, K39, K3A, K3B, \ -  K10, K41, K42, K30, K44, K1D, K20, K45, K3C, K0D, K2B, K3D \ -) - -#define TEMPLATE_NUM(                                                                     \ -    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D,      \ -    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \ -    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \ -    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,           \ -    K40, K41, K42,      K44, K45, K46,      K48, K49,      K4B, K4C                 \ -) LAYOUT( \ -  K11, K12, K13, K14, K15,           K16, K17, K18, K19, K1A, \ -  K21, K22, K23, K24, K25,           K26, K27, K28, K29, K2A, \ -  K32, K33, K34, K35, K36,           K37, K38, K39, K3A, K3B, \ -  K10, K41, K42, K30, K44, K1D, K20, K45, K48, K49, K2B, K3D \ -) - - -#define TEMPLATE_RESET LAYOUT( \ -  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, XXXXXXX, XXXXXXX, XXXXXXX, \ -  RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ -) -#endif diff --git a/keyboards/atreus/keymaps/talljoe/config.h b/keyboards/atreus/keymaps/talljoe/config.h new file mode 100644 index 0000000000..64d5b58943 --- /dev/null +++ b/keyboards/atreus/keymaps/talljoe/config.h @@ -0,0 +1,53 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define SPACE_COUNT 3 + +#define TEMPLATE_TKL( \ +  KESC,       KF01, KF02, KF03, KF04, KF05, KF06, KF07, KF08, KF09, KF10, KF11, KF12,   KSCL, KPRS, KADJ, \ +  KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSP,   KINS, KHOM, KPUP, \ +  KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBLS,   KDEL, KEND, LPDN, \ +  KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO,       KENT,                     \ +  KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS,             KRSH,         K_UP,       \ +  KLCT, KLOS, KLAL,             KSP3, KSP2, KSP1,             KRAL, KROS, KRCT, KPTT,   K_LT, K_DN, K_RT  \ +) LAYOUT( \ +  K_Q , K_W , K_E , K_R , K_T ,             K_Y , K_U , K_I , K_O , K_P , \ +  K_A , K_S , K_D , K_F , K_G ,             K_H , K_J , K_K , K_L , KSMI, \ +  K_Z , K_X , K_C , K_V , K_B ,             K_N , K_M , KCMA, KDOT, KSLS, \ +  KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRSH, KBLS, KQUO, KADJ \ +) + +#define TEMPLATE_NUM( \ +  KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSL, KESC, \ +  KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR,       KBSP, \ +  KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO,             KENT, \ +  KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS,             KRSH, KADJ, \ +  KLCT, KLOS, KLAL,             KSP3, KSP2, KSP1,             KRAL, KROS, KRCT, KPTT        \ +) LAYOUT( \ +  K_Q , K_W , K_E , K_R , K_T ,             K_Y , K_U , K_I , K_O , K_P , \ +  K_A , K_S , K_D , K_F , K_G ,             K_H , K_J , K_K , K_L , KSMI, \ +  K_Z , K_X , K_C , K_V , K_B ,             K_N , K_M , KCMA, KDOT, KSLS, \ +  KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRAL, KROS, KQUO, KADJ \ +) + +#define TEMPLATE_RESET LAYOUT( \ +  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, XXXXXXX, XXXXXXX, XXXXXXX, \ +  RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ +) diff --git a/keyboards/atreus/keymaps/talljoe-atreus/keymap.c b/keyboards/atreus/keymaps/talljoe/keymap.c index 7812add812..7812add812 100644 --- a/keyboards/atreus/keymaps/talljoe-atreus/keymap.c +++ b/keyboards/atreus/keymaps/talljoe/keymap.c diff --git a/keyboards/atreus/keymaps/talljoe-atreus/rules.mk b/keyboards/atreus/keymaps/talljoe/rules.mk index 92007fe8ad..92007fe8ad 100644 --- a/keyboards/atreus/keymaps/talljoe-atreus/rules.mk +++ b/keyboards/atreus/keymaps/talljoe/rules.mk diff --git a/keyboards/jd45/keymaps/talljoe/config.h b/keyboards/jd45/keymaps/talljoe/config.h index f8b0333cfb..8b06cefd52 100644 --- a/keyboards/jd45/keymaps/talljoe/config.h +++ b/keyboards/jd45/keymaps/talljoe/config.h @@ -1,7 +1,19 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include QMK_KEYBOARD_CONFIG_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once  #define PREVENT_STUCK_MODIFIERS  #define SPACE_COUNT 2 @@ -14,9 +26,7 @@      K40, K41, K42,      K44, K45, K46,      K48, K49,      K4B, K4C                 \  ) { \      { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K0D,   K1D    }, \ -    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2C,   KC_NO  }, \ +    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   KC_NO  }, \      { K30,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   KC_NO  }, \ -    { K40,   K00,   K41,   K42,   K44,   KC_NO, K45,   KC_NO, K48,   K49,   K3D,   K4C,   KC_NO  }  \ +    { K40,   K00,   K41,   K42,   K44,   KC_NO, K46,   KC_NO, K48,   K49,   K3D,   K4C,   KC_NO  }  \  } - -#endif diff --git a/keyboards/primekb/prime_e/keymaps/talljoe/config.h b/keyboards/primekb/prime_e/keymaps/talljoe/config.h new file mode 100644 index 0000000000..7ecea9c151 --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/talljoe/config.h @@ -0,0 +1,33 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define SPACE_COUNT 2 + +#define TEMPLATE(                                                                   \ +    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D,      \ +    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \ +    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \ +    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,           \ +    K40, K41, K42,      K44, K45, K46,      K48, K49,      K4B, K4C                 \ +)                                                                                   \ +LAYOUT( \ +	K10, K11, K12, K13, K14, K15,  		K16, K17, K18, K19, K1A, K1D, K2D, \ +	K20, K21, K22, K23, K24, K25,  		K26, K27, K28, K29, K2A,      K2C, \ +	K30, K32, K33, K34, K35, K36,  		K2B, K37, K38, K39, K3A, K3B, K3C, \ +	K40, K41,  			K42, K44,  		K46, K48, 				 K49, K3D \ +) diff --git a/keyboards/primekb/prime_e/keymaps/talljoe/keymap.c b/keyboards/primekb/prime_e/keymaps/talljoe/keymap.c new file mode 100644 index 0000000000..7812add812 --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/talljoe/keymap.c @@ -0,0 +1 @@ +// This space intentionally left blank diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h index fc9bd3d616..40b3fd3ecc 100644 --- a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h +++ b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h @@ -1,7 +1,20 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ -#include QMK_KEYBOARD_CONFIG_H +#pragma once  #define SPACE_COUNT 3 @@ -18,5 +31,3 @@      { K30, KC_NO,    K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D },  \      { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO }\  } - -#endif diff --git a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h index 26d5e207e8..89980614e1 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h @@ -1,7 +1,21 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once -#include QMK_KEYBOARD_CONFIG_H  #define SPACE_COUNT 2 @@ -15,7 +29,7 @@      K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \      K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K0D, \ -    K41, K49, K42,      K44, K45,      K3C, K0B, K00, K3D       \ +    K41, K49, K42,      K44, K46,      K3C, K0B, K00, K3D       \  )  #define TEMPLATE_ALT(                                                              \ @@ -28,7 +42,7 @@      K00, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \      K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ -    K41, K49, K42,      K44, K45,      K48, K49, K4B, K4C       \ +    K41, K49, K42,      K44, K46,      K48, K49, K4B, K4C       \  )  #define TEMPLATE_ADJUST(                                                            \ @@ -41,7 +55,7 @@      K00, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K2D, \      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \      K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ -    K40, K41, K42,      K44, K45,      K48, K0B, K0C, K4C       \ +    K40, K41, K42,      K44, K46,      K48, K0B, K0C, K4C       \  )  #define TEMPLATE_RESET LAYOUT_arrow( \ @@ -49,5 +63,3 @@      KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \      KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \      KC_NO, KC_NO, KC_NO,      KC_NO, KC_NO,      KC_NO, KC_NO, KC_NO, RESET) - -#endif diff --git a/keyboards/tmo50/keymaps/talljoe/config.h b/keyboards/tmo50/keymaps/talljoe/config.h new file mode 100644 index 0000000000..53d593385f --- /dev/null +++ b/keyboards/tmo50/keymaps/talljoe/config.h @@ -0,0 +1,33 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define SPACE_COUNT 2 + +#define TEMPLATE_TKL(\ +  KESC,       KF01, KF02, KF03, KF04, KF05, KF06, KF07, KF08, KF09, KF10, KF11, KF12,   KSCL, KPRS, KADJ, \ +  KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBLS,   KINS, KHOM, KPUP, \ +  KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP,   KDEL, KEND, LPDN, \ +  KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO,       KENT,                     \ +  KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS,             KRSH,         K_UP,       \ +  KLCT, KLOS, KLAL,             KSP2, KSP3, KSP1,             KRAL, KROS, KRCT, KPTT,   K_LT, K_DN, K_RT  \ +) LAYOUT_all( \ +	KF01, KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP, \ +	KF02, KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO,       KENT, \ +	KF03, KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS,       KRSH, KADJ, \ +	KF04,             KLOS, KLAL,       KSP2,             KSP1,       KRAL, KESC              \ +) diff --git a/keyboards/tmo50/keymaps/talljoe/keymap.c b/keyboards/tmo50/keymaps/talljoe/keymap.c new file mode 100644 index 0000000000..fa6523992e --- /dev/null +++ b/keyboards/tmo50/keymaps/talljoe/keymap.c @@ -0,0 +1,44 @@ +#include "quantum.h" +#include "talljoe.h" + +bool process_indicator_led_user(uint32_t state){ +  return false; +} + +#define LED_MASK (_BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3)) +#define WHITE (_BV(PB0)) +#define YELLOW (_BV(PB1)) +#define MAGENTA (_BV(PB2)) +#define RED (_BV(PB3)) + +void matrix_scan_keymap(void) { +  uint32_t lights = WHITE; + +  switch(get_highest_layer(layer_state)) +  { +    case _NAV: +      lights |= YELLOW; +      break; +    case _NUM: +      lights |= MAGENTA; +      break; +    case _ADJUST: +      lights |= RED; +      break; +    default: { +      uint8_t default_layer = get_highest_layer(default_layer_state); +      lights = 0; // no white LED by default. +      if(default_layer & 1) +        lights |= YELLOW; +      if(default_layer & 2) +        lights |= MAGENTA; +      if(default_layer & 4) +        lights |= RED; +    } +  } + +  uint32_t port = PORTB; +  port |= LED_MASK; +  port &= ~lights; +  PORTB = port; +} diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h index 4326a2fd10..79cc190014 100644 --- a/layouts/community/60_ansi/talljoe-ansi/config.h +++ b/layouts/community/60_ansi/talljoe-ansi/config.h @@ -1,5 +1,20 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once  #include QMK_KEYBOARD_CONFIG_H @@ -16,7 +31,5 @@      K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \      K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,                \ -    K40, K41, K42,           K45,           K48, K49,      K4B, K4C                 \ +    K40, K41, K42,           K46,           K48, K49,      K4B, K4C                 \  ) - -#endif //CONFIG_USER_H diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h index 65568d3abf..2a2ead2273 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h @@ -1,7 +1,20 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include QMK_KEYBOARD_CONFIG_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once  #define ENABLE_GAME_LAYER @@ -16,7 +29,7 @@      K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \      K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,           \ -    K40, K41, K42,           K45,           K48, K49,      K4B, K4C                 \ +    K40, K41, K42,           K46,           K48, K49,      K4B, K4C                 \  )  /* Color Map */ @@ -68,5 +81,3 @@    #define BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001  #endif //KEYBOARD_zeal60 - -#endif //CONFIG_USER_H diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c index 3e9e726b95..617132d4ef 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c @@ -1,3 +1,19 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +  #include "solarized.h"  #define MAKE_COLOR(_H, _S, _V) \ diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h index 3b00caea70..15e3d588b1 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h @@ -1,5 +1,20 @@ -#ifndef SOLARIZED_H -#define SOLARIZED_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once  #include "quantum/color.h" @@ -23,5 +38,3 @@ typedef struct {  } solarized_t;  extern solarized_t solarized; - -#endif diff --git a/layouts/community/60_hhkb/talljoe-hhkb/config.h b/layouts/community/60_hhkb/talljoe-hhkb/config.h index 54756a940b..0424fee1f3 100644 --- a/layouts/community/60_hhkb/talljoe-hhkb/config.h +++ b/layouts/community/60_hhkb/talljoe-hhkb/config.h @@ -1,5 +1,20 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once  #include QMK_KEYBOARD_CONFIG_H @@ -16,10 +31,9 @@      K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,                \      K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,           \ -         K41, K42,           K45,           K48, K4C                                \ +         K41, K42,           K46,           K48, K4C                                \  )  #ifdef RGB_BACKLIGHT_M60_A    #define ZEAL_RGB  #endif -#endif //CONFIG_USER_H diff --git a/layouts/community/ortho_4x12/talljoe/config.h b/layouts/community/ortho_4x12/talljoe/config.h index 61229e7f6c..34c24b8624 100644 --- a/layouts/community/ortho_4x12/talljoe/config.h +++ b/layouts/community/ortho_4x12/talljoe/config.h @@ -1,7 +1,21 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once -#include QMK_KEYBOARD_CONFIG_H  #define SPACE_COUNT 3  #define TEMPLATE(                                                                   \ @@ -17,6 +31,3 @@ LAYOUT_ortho_4x12(                                              \      K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \      K40, K41, K0D, K42, K44, K45, K45, K46, K48, K49, K4B, K4C  \  ) - - -#endif //CONFIG_USER_H diff --git a/layouts/community/tkl_ansi/talljoe-tkl/config.h b/layouts/community/tkl_ansi/talljoe-tkl/config.h index 02f8a94e39..15869ed0b6 100644 --- a/layouts/community/tkl_ansi/talljoe-tkl/config.h +++ b/layouts/community/tkl_ansi/talljoe-tkl/config.h @@ -1,5 +1,20 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once  #include QMK_KEYBOARD_CONFIG_H @@ -18,7 +33,5 @@    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,                KK6,                KC0, KM3, KD0, KA1,   KO0, KK0, KL0  \ +  KA4, KP2, KC6,                KX2,                KC0, KM3, KD0, KA1,   KO0, KK0, KL0  \  ) - -#endif //CONFIG_USER_H diff --git a/users/talljoe/config.h b/users/talljoe/config.h index 33374014df..8a5fd50cb7 100644 --- a/users/talljoe/config.h +++ b/users/talljoe/config.h @@ -1,5 +1,19 @@ -#ifndef USERSPACE_CONFIG_H -#define USERSPACE_CONFIG_H +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once  #define PERMISSIVE_HOLD @@ -9,4 +23,5 @@  #define BOOTMAGIC_KEY_SKIP KC_I  #define BOOTMAGIC_KEY_EEPROM_CLEAR KC_E -#endif // !USERSPACE_CONFIG_H +#define COMBO_COUNT 2 +#define COMBO_TERM 250 diff --git a/users/talljoe/macros.c b/users/talljoe/macros.c new file mode 100644 index 0000000000..db8d28d4ce --- /dev/null +++ b/users/talljoe/macros.c @@ -0,0 +1,40 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#include "talljoe.h" + +extern keymap_config_t keymap_config; + +ostype_t get_os() { +  if(keymap_config.swap_lalt_lgui) { +    return MACOSX; +  } + +  return WINDOWS; +} + +#define IS_OSX() (get_os() == MACOSX) + +#define MOD_SEND(KEY) (IS_OSX() ? SEND_STRING(SS_LCMD(KEY)) : SEND_STRING(SS_LCTRL(KEY))) + +void macro_copy() { MOD_SEND("c"); } +void macro_paste() { MOD_SEND("v"); } +void macro_lock() { +  if (IS_OSX()) { +    SEND_STRING(SS_LCTRL(SS_LCMD("q"))); +  } else { +    SEND_STRING(SS_LGUI("l")); +  } +} diff --git a/users/talljoe/macros.h b/users/talljoe/macros.h new file mode 100644 index 0000000000..832d4403fc --- /dev/null +++ b/users/talljoe/macros.h @@ -0,0 +1,27 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +typedef enum OSTYPE { +  WINDOWS, +  MACOSX, +  LINUX +} ostype_t; + +ostype_t get_os(void); + +void macro_copy(void); +void macro_paste(void); +void macro_lock(void); diff --git a/users/talljoe/rules.mk b/users/talljoe/rules.mk index e0a71561f4..42ffb411a9 100644 --- a/users/talljoe/rules.mk +++ b/users/talljoe/rules.mk @@ -1,4 +1,11 @@ -SRC += talljoe.c tapdance.c +SRC += talljoe.c macros.c $(wildcard users/talljoe/tapdance/*.c) +ifeq ($(strip $(VISUALIZER_ENABLE)), yes) +  SRC += visualizer.c +endif + +ifeq ($(strip $(FLASH_BOOTLOADER)), yes) +    OPT_DEFS += -DFLASH_BOOTLOADER +endif  EXTRAFLAGS+=-flto diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c index a533ff6103..517f712ec8 100644 --- a/users/talljoe/talljoe.c +++ b/users/talljoe/talljoe.c @@ -1,3 +1,18 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */  #include QMK_KEYBOARD_H  #include "talljoe.h" @@ -5,14 +20,31 @@  #include "../../../keyboards/wilba_tech/wt_rgb_backlight.h"  #endif +#ifdef VISUALIZER_ENABLE +const char layer_names[32][16] = { +  [_BASE] = "QWERTY", +  [_WORKMAN] = "Workman", +  [_NORMAN] = "Norman", +  [_DVORAK] = "Dvorak", +  [_COLMAK] = "Colmak", +  [_MALTROFF] = "Maltroff", +  [_NORTRON] = "Nortron", +  [_GAME] = "Game", +  [_NAV] = "Navigation", +  [_NUM] = "Numpad", +  [_ADJUST] = "Adjust", +  [_RESET] = "Reset", +}; +#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_LOCK, 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), +      KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC2, KC_SPC3, KC_SPC1,                   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, _______, _______, _______, @@ -42,9 +74,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    [_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,          _______, _______, +      _______, KC_A,    KC_N,    KC_I,    KC_S,    KC_F   , KC_D,    KC_T,    KC_H,    KC_O,    KC_R   , _______,          _______, +      _______, KC_Z,    KC_X,    KC_C,    KC_V,    KC_SCLN, KC_BSPC, KC_W,    KC_COMM, KC_DOT,  KC_SLSH,          _______, _______,        _______, _______, _______,                   MLT_E  , _______, _______,                   _______, _______, _______, _______), +  // It's Norman but like Maltron +  [_NORTRON] = TEMPLATE( +      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +      _______, KC_Q   , KC_W   , KC_D   , KC_F   , KC_K   , KC_J   , KC_U   , KC_BSPC, KC_L   , US_SCLN, _______, _______, _______, +      _______, KC_A   , KC_S   , KC_I   , KC_T   , KC_G   , KC_Y   , KC_N   , KC_R   , KC_O   , KC_H   , _______,          _______, +      _______, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_P   , KC_M   , KC_COMM, KC_DOT , KC_SLSH,          _______, _______, +      _______, _______, _______,                   MLT_E  , US_ENT , _______,                   _______, _______, _______, _______),  #endif  #ifdef ENABLE_GAME_LAYER    [_GAME] = TEMPLATE( @@ -57,27 +96,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    [_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 , +      CTL_ESC, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_AMPR, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , KC_BSPC,          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 ), +      KC_LCTL, KC_LGUI, KC_LALT,                   NV_SPC2, NV_SPC3, NV_SPC1,                   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 , +      CTL_ESC, KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_MUTE, KC_PENT, KC_4,    KC_5,    KC_6,    KC_PPLS, KC_BSPC,          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 ), +      KC_LCTL, KC_LGUI, KC_LALT,                   NM_SPC2, NM_SPC3, NM_SPC1,                   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), +      TG_NKRO, LY_QWER, LY_WORK, LY_CLMK, LY_DVRK, LY_NTRN, LY_NRMN, LY_MALT, XXXXXXX, XXXXXXX, KC_MAKE,          KC_CAPS, XXXXXXX, +      MO_RST , AG_SWAP, AG_NORM,                   XXXXXXX, XXXXXXX, BL_TOGG,                   RGB_TOG, XXXXXXX, XXXXXXX, TG_GAME),    // To Reset hit FN + ` + Esc    [_RESET] = TEMPLATE_RESET,  }; +__attribute__((weak)) +void matrix_scan_keymap(void) { +} +  void matrix_scan_user(void) { +  matrix_scan_keymap(); +    #ifdef KEYBOARD_gh60      if (IS_LAYER_ON(_GAME)) {        gh60_wasd_leds_on(); @@ -140,16 +185,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {    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)); +          uint8_t temp_mod = get_mods(); +          uint8_t temp_osm = get_oneshot_mods(); +          clear_mods(); clear_oneshot_mods(); +          SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP); +#ifndef FLASH_BOOTLOADER +          if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) +#endif +          { +              SEND_STRING(":flash"); +          } +          if ((temp_mod | temp_osm) & MOD_MASK_CTRL) { +              SEND_STRING(" -j8 --output-sync"); +          } +          tap_code(KC_ENT); +          set_mods(temp_mod);        }        return false;        break; diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h index 496a6222a9..f151bde685 100644 --- a/users/talljoe/talljoe.h +++ b/users/talljoe/talljoe.h @@ -1,7 +1,24 @@ -#ifndef USERSPACE -#define USERSPACE - -#include "quantum.h" +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include QMK_KEYBOARD_H +#include "tapdance/tapdance.h" +#include "macros.h"  enum userspace_custom_keycodes {    KC_MAKE = SAFE_RANGE, // can always be here @@ -22,6 +39,7 @@ enum layers {      _DVORAK,      _COLMAK,      _MALTROFF, +    _NORTRON,      _GAME,      _NAV,      _NUM, @@ -29,14 +47,12 @@ enum layers {      _RESET = RESET_LAYER,  }; -enum tap_dancers { -  TD_SEMICOLON, -  TD_GRAVE, -  TD_QUOTE, -}; +#ifdef VISUALIZER_ENABLE +  extern const char layer_names[][16]; +#endif  #define MO_NAV    MO(_NAV) -#define MO_ADJ    MO(_ADJUST) +#define MO_ADJ    TD(TD_FUNCTION)  #define MO_RST    MO(_RESET)  #define TG_ADJ    TG(_ADJUST)  #define TG_NUM    TG(_NUM) @@ -52,8 +68,10 @@ enum tap_dancers {  #define LY_CLMK   DF(_COLMAK)  #if SPACE_COUNT >= 2    #define LY_MALT DF(_MALTROFF) +  #define LY_NTRN DF(_NORTRON)  #else    #define LY_MALT KC_NO +  #define LY_NTRN KC_NO  #endif  #define TG_NKRO   MAGIC_TOGGLE_NKRO  #define KC_PTT    KC_F24 @@ -66,61 +84,29 @@ enum tap_dancers {  #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 US_LOCK   TD(TD_LOCK)  #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 +#ifndef SWAP_HANDS_ENABLE +#define SH_T  #endif +#define KC_SPC1   LT(_NAV,KC_SPC) +#define KC_SPC2   LT(_NUM,KC_ENT) +#define KC_SPC3   SH_T(KC_BSPC) + +#define NV_SPC1   KC_SPC +#define NV_SPC2   KC_ENT +#define NV_SPC3   KC_SPC + +#define NM_SPC1   KC_0 +#define NM_SPC2   XXXXXXX +#define NM_SPC3   KC_SPC +  #ifndef ZEAL_RGB    #define BR_INC KC_NO    #define BR_DEC KC_NO @@ -195,5 +181,3 @@ enum tap_dancers {        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), -}; diff --git a/users/talljoe/tapdance/actions/td.function.c b/users/talljoe/tapdance/actions/td.function.c new file mode 100644 index 0000000000..fffbf283dd --- /dev/null +++ b/users/talljoe/tapdance/actions/td.function.c @@ -0,0 +1,35 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +static struct { +  int state; +} function_state = {0}; + +// Send semi-colon + enter on two taps +void tap_dance_function_finished(qk_tap_dance_state_t *state, void *user_data) { +  function_state.state = hold_cur_dance(state); +  switch (function_state.state) { +    case SINGLE_HOLD: layer_on(_ADJUST); break; +  } +} + +void tap_dance_function_reset(qk_tap_dance_state_t *state, void *user_data) { +  switch (function_state.state) { +    case SPECIAL: reset_keyboard(); break; +    case SINGLE_HOLD: layer_off(_ADJUST); break; +  } +  function_state.state = 0; +} diff --git a/users/talljoe/tapdance/actions/td.grave.c b/users/talljoe/tapdance/actions/td.grave.c new file mode 100644 index 0000000000..509b66dc35 --- /dev/null +++ b/users/talljoe/tapdance/actions/td.grave.c @@ -0,0 +1,36 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +// 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("`"); +  } +} + diff --git a/users/talljoe/tapdance/actions/td.lock.c b/users/talljoe/tapdance/actions/td.lock.c new file mode 100644 index 0000000000..4422d9e252 --- /dev/null +++ b/users/talljoe/tapdance/actions/td.lock.c @@ -0,0 +1,35 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +static struct { +  int state; +} lock_state = {0}; + +// Send semi-colon + enter on two taps +void tap_dance_lock_finished(qk_tap_dance_state_t *state, void *user_data) { +  lock_state.state = cur_dance(state); +  switch (lock_state.state) { +    case SINGLE_TAP: register_code(KC_ESC); break; +    case SINGLE_HOLD: macro_lock(); break; +  } +} + +void tap_dance_lock_reset(qk_tap_dance_state_t *state, void *user_data) { +  switch (lock_state.state) { +    case SINGLE_TAP: unregister_code(KC_ESC); break; +  } +  lock_state.state = 0; +} diff --git a/users/talljoe/tapdance/actions/td.semicolon.c b/users/talljoe/tapdance/actions/td.semicolon.c new file mode 100644 index 0000000000..45776492a4 --- /dev/null +++ b/users/talljoe/tapdance/actions/td.semicolon.c @@ -0,0 +1,54 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +static struct { +  int semicolon; +  bool mods; +} tap_state = {0}; + +void tap_dance_semicolon_each(qk_tap_dance_state_t *state, void *user_data) { +    tap_state.mods |= get_mods(); +} + +// 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 (tap_state.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; +} diff --git a/users/talljoe/tapdance/tapdance.h b/users/talljoe/tapdance/tapdance.h new file mode 100644 index 0000000000..532e978ca8 --- /dev/null +++ b/users/talljoe/tapdance/tapdance.h @@ -0,0 +1,26 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include "quantum.h" +#include "td_setup.h" + +enum tap_dancers { +  TD_SEMICOLON, +  TD_GRAVE, +  TD_LOCK, +  TD_FUNCTION, +}; + diff --git a/users/talljoe/tapdance/tapdance_actions.c b/users/talljoe/tapdance/tapdance_actions.c new file mode 100644 index 0000000000..59a34b7b9e --- /dev/null +++ b/users/talljoe/tapdance/tapdance_actions.c @@ -0,0 +1,28 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include "../talljoe.h" +#include "actions/td.grave.c" +#include "actions/td.lock.c" +#include "actions/td.semicolon.c" +#include "actions/td.function.c" + +qk_tap_dance_action_t tap_dance_actions[] = { +  [TD_SEMICOLON] = ACTION_TAP_DANCE_FN_ADVANCED(tap_dance_semicolon_each, tap_dance_semicolon_finished, tap_dance_semicolon_reset), +  [TD_LOCK]      = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_lock_finished, tap_dance_lock_reset), +  [TD_GRAVE]     = ACTION_TAP_DANCE_FN_ADVANCED(tap_dance_grave_each, tap_dance_grave_finished, NULL), +  [TD_FUNCTION]  = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_function_finished, tap_dance_function_reset), +}; diff --git a/users/talljoe/tapdance/td_setup.c b/users/talljoe/tapdance/td_setup.c new file mode 100644 index 0000000000..d8464144ac --- /dev/null +++ b/users/talljoe/tapdance/td_setup.c @@ -0,0 +1,70 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include "tapdance.h" + +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; +} diff --git a/users/talljoe/tapdance/td_setup.h b/users/talljoe/tapdance/td_setup.h new file mode 100644 index 0000000000..85d45d944f --- /dev/null +++ b/users/talljoe/tapdance/td_setup.h @@ -0,0 +1,29 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +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 +}; + +int cur_dance (qk_tap_dance_state_t *state); +int hold_cur_dance (qk_tap_dance_state_t *state); diff --git a/users/talljoe/visualizer.c b/users/talljoe/visualizer.c new file mode 100644 index 0000000000..c17b56706b --- /dev/null +++ b/users/talljoe/visualizer.c @@ -0,0 +1,21 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include "talljoe.h" + +static void get_visualizer_layer_and_color(visualizer_state_t* state) { +  state->status_text = layer_names[biton32(state->status.layer)]; +} | 
