diff options
| -rw-r--r-- | keyboards/keebio/iris/keymaps/sethBarberee/config.h | 30 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/sethBarberee/keymap.c | 181 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/sethBarberee/rules.mk | 6 | ||||
| -rw-r--r-- | keyboards/keebio/sinc/keymaps/sethBarberee/config.h | 30 | ||||
| -rw-r--r-- | keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c | 71 | ||||
| -rw-r--r-- | keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk | 3 | ||||
| -rw-r--r-- | keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk | 1 | ||||
| -rw-r--r-- | users/sethBarberee/config.h | 69 | ||||
| -rw-r--r-- | users/sethBarberee/rgb_light.c | 52 | ||||
| -rw-r--r-- | users/sethBarberee/rgb_light.h | 21 | ||||
| -rw-r--r-- | users/sethBarberee/rules.mk | 9 | ||||
| -rw-r--r-- | users/sethBarberee/sethBarberee.c | 112 | ||||
| -rw-r--r-- | users/sethBarberee/sethBarberee.h | 56 | ||||
| -rw-r--r-- | users/sethBarberee/tap_dance.c | 89 | ||||
| -rw-r--r-- | users/sethBarberee/tap_dance.h | 43 | ||||
| -rw-r--r-- | users/sethBarberee/wrappers.h | 55 | 
16 files changed, 604 insertions, 224 deletions
| diff --git a/keyboards/keebio/iris/keymaps/sethBarberee/config.h b/keyboards/keebio/iris/keymaps/sethBarberee/config.h index c031c03261..bd2ec41210 100644 --- a/keyboards/keebio/iris/keymaps/sethBarberee/config.h +++ b/keyboards/keebio/iris/keymaps/sethBarberee/config.h @@ -30,32 +30,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #undef RGBLED_NUM  #define RGBLED_NUM 8 -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_SLEEP -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#undef RGBLED_SPLIT -#define RGBLED_SPLIT { RGBLED_NUM, 0} // defined to sync animations - -#define FORCE_NKRO // force NKRO on by default - -#undef TAPPING_TERM -#define TAPPING_TERM 200 - -#if !defined(NO_DEBUG) && !defined(CONSOLE_ENABLE) -#define NO_DEBUG -#endif // !NO_DEBUG -#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE) -#define NO_PRINT -#endif // !NO_PRINT - -#define NO_MUSIC_MODE - -// Override caps lock indication from my userspace -//#undef NORMAL_MODE -//#define NORMAL_MODE 1 - -//#undef CAPS_LOCK_MODE -//#define CAPS_LOCK_MODE 28 +#undef RGBLED_SPLIT +#define RGBLED_SPLIT { RGBLED_NUM, 0} diff --git a/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c b/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c index 1e39c33d18..269350403f 100644 --- a/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c +++ b/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c @@ -1,26 +1,24 @@ -#include QMK_KEYBOARD_H + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "sethBarberee.h"  extern backlight_config_t backlight_config; -enum layers { -    _QWERTY, -    _LOWER, -    _RAISE, -    _ADJUST -}; - -enum custom_keycodes { -  QWERTY = SAFE_RANGE, -  LOWER, -  RAISE, -  ADJUST, -}; -  #define KC_ KC_TRNS -#define KC_LOWR LOWER -#define KC_RASE RAISE  #define KC_RST RESET  #define KC_BL_S BL_STEP  #define KC_RTOG RGB_TOG @@ -33,147 +31,54 @@ enum custom_keycodes {  #define KC_RVAD RGB_VAD  #define KC_VK VLK_TOG +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -  [_QWERTY] = LAYOUT_kc( -  //,----+----+----+----+----+----.              ,----+----+----+----+----+----. -     ECAP, 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,MINS, -  //|----+----+----+----+----+----|              |----+----+----+----+----+----| -     TAB , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,DEL , -  //|----+----+----+----+----+----|              |----+----+----+----+----+----| -     LSFT, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT, -  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----| -     LCTL, Z  , X  , C  , V  , B  , SPC,      RASE, N  , M  ,COMM,DOT ,SLSH,RSFT, -  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----' -                       LGUI,LOWR, SPC,         BSPC ,ENT,LALT -  //                  `----+----+----'        `----+----+----' +  [_QWERTY] = LAYOUT_wrapper( +     KC_ECAP, ________________NUMBER_LEFT________________,                 ________________NUMBER_RIGHT_______________,      KC_MINS, +     KC_TAB , _________________QWERTY_L1_________________,                 _________________QWERTY_R1_________________,      KC_DEL , +     KC_LSFT, _________________QWERTY_L2_________________,                 _________________QWERTY_R2_________________, +     KC_LCTL, _________________QWERTY_L3_________________, KC_SPC,         KC_RASE, _________________QWERTY_R3_________________,KC_RSFT, +                                        KC_LGUI, KC_LOWR, KC_SPC,           KC_BSPC , KC_ENT, KC_LALT    ), -  [_LOWER] = LAYOUT_kc( -  //,----+----+----+----+----+----.              ,----+----+----+----+----+----. -     TILD,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, -  //|----+----+----+----+----+----|              |----+----+----+----+----+----| -     RST ,    ,    , UP ,    ,    ,               GRV , P7 , P8 , P9 ,    ,    , -  //|----+----+----+----+----+----|              |----+----+----+----+----+----| -     DEL ,    ,LEFT,DOWN,RGHT,LBRC,               RBRC, P4 , P5 , P6 ,PLUS,PIPE, -  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----| -     BL_S,    ,    ,    ,    ,LCBR,LPRN,     RPRN,RCBR, P1 , P2 , P3 ,MINS,    , -  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----' -                           ,    ,LPRN ,         DEL ,    , P0 -  //                  `----+----+----'        `----+----+----' +  [_LOWER] = LAYOUT( +     KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC,               KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC, +     KC_RST ,_______,_______, KC_UP ,_______,_______,               KC_GRV , KC_P7 , KC_P8 , KC_P9 ,_______,_______, +     KC_DEL ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_LBRC,               KC_RBRC, KC_P4 , KC_P5 , KC_P6 ,KC_PLUS,KC_PIPE, +     KC_BL_S,_______,_______,_______,_______,KC_LCBR,KC_LPRN,       KC_RPRN,KC_RCBR, KC_P1 , KC_P2 , KC_P3 ,KC_MINS,_______, +                                        _______,_______,KC_LPRN,       KC_DEL ,_______, KC_P0    ), -  [_RAISE] = LAYOUT_kc( -  //,----+----+----+----+----+----.              ,----+----+----+----+----+----. -     F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 , -  //|----+----+----+----+----+----|              |----+----+----+----+----+----| -         ,    ,    ,    ,    ,    ,                  ,     ,    ,    ,    ,    , -  //|----+----+----+----+----+----|              |----+----+----+----+----+----| -         ,MPRV,MNXT,VOLU,PGUP,UNDS,               EQL ,HOME,    ,    ,    ,BSLS, -  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----| -     MUTE,MSTP,MPLY,VOLD,PGDN,MINS,    ,         ,PLUS,END ,    ,    ,    ,    , -  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----' -                           ,    ,    ,             ,    , -  //                  `----+----+----'        `----+----+----' +  [_RAISE] = LAYOUT( +     KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 ,              KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 , +     _______,_______,_______,_______,_______,_______,              _______, _______,_______,_______,_______,_______, +     _______,KC_MPRV,KC_MNXT,KC_VOLU,KC_PGUP,KC_UNDS,              KC_EQL ,KC_HOME,_______,_______,_______,KC_BSLS, +     KC_MUTE,KC_MSTP,KC_MPLY,KC_VOLD,KC_PGDN,KC_MINS,_______,      _______,KC_PLUS,KC_END ,_______,_______,_______,_______, +                                        _______,_______,_______,         _______,_______, _______    ), -  [_ADJUST] = LAYOUT_kc( +  [_ADJUST] = LAYOUT(    //,----+----+----+----+----+----.              ,----+----+----+----+----+----. -         ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    , +     _______,_______,_______,_______,_______,_______,               _______,_______,_______,_______,_______,_______,    //|----+----+----+----+----+----|              |----+----+----+----+----+----| -     RTOG,RMOD,RHUI,RSAI,RVAI,    ,                   ,    ,    ,    ,    ,    , +     KC_RTOG,KC_RMOD,KC_RHUI,KC_RSAI,KC_RVAI,_______,               _______,_______,_______,_______,_______,_______,    //|----+----+----+----+----+----|              |----+----+----+----+----+----| -     VK,      ,RHUD,RSAD,RVAD,    ,                   ,    ,    ,    ,    ,    , +     KC_VK,  _______,KC_RHUD,KC_RSAD,KC_RVAD,_______,               _______,_______,_______,_______,_______,_______,    //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----| -     BL_S,RST ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    , +     KC_BL_S,KC_RST ,_______,_______,_______,_______,_______,     _______,_______,_______,_______,_______,_______,_______,    //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----' -                           ,    ,    ,             ,    , +                       _______,_______,_______,         _______,_______, _______    //                  `----+----+----'        `----+----+----'    )  }; -void keyboard_pre_init_user(void) { -    // Make sure the red LEDs don't light -    setPinOutput(D5); -    writePinHigh(D5); - -    setPinOutput(B0); -    writePinHigh(B0); -} - -void keyboard_post_init_user(void){ -    rgblight_enable_noeeprom(); // enable the RGBs -    rgblight_sethsv_noeeprom_red(); // set to red -    rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // set to breathing -} - -void suspend_power_down_user(void){ +void suspend_power_down_keymap(void){      backlight_config.enable = false; // disable LED backlight  } -void suspend_wakeup_init_user(void){ +void suspend_wakeup_init_keymap(void){      backlight_config.enable = true; // enable LED backlight  } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -  switch (keycode) { -    case QWERTY: -      if (record->event.pressed) { -        set_single_persistent_default_layer(_QWERTY); -      } -      return false; -      break; -    case LOWER: -      if (record->event.pressed) { -        layer_on(_LOWER); -        update_tri_layer(_LOWER, _RAISE, _ADJUST); -      } else { -        layer_off(_LOWER); -        update_tri_layer(_LOWER, _RAISE, _ADJUST); -      } -      return false; -      break; -    case RAISE: -      if (record->event.pressed) { -        layer_on(_RAISE); -        update_tri_layer(_LOWER, _RAISE, _ADJUST); -      } else { -        layer_off(_RAISE); -        update_tri_layer(_LOWER, _RAISE, _ADJUST); -      } -      return false; -      break; -    case ADJUST: -      if (record->event.pressed) { -        layer_on(_ADJUST); -      } else { -        layer_off(_ADJUST); -      } -      return false; -      break; -  } -  return true; -} - -uint32_t layer_state_set_user(uint32_t state){ -    switch(biton32(state)) { -      case _QWERTY: -        rgblight_sethsv_noeeprom(HSV_RED); -        break; -      case _LOWER: -        rgblight_sethsv_noeeprom(HSV_GREEN); -        break; -      case _RAISE: -        rgblight_sethsv_noeeprom(HSV_BLUE); -        break; -      case _ADJUST: -        rgblight_sethsv_noeeprom(HSV_ORANGE); -        break; -      default: -        rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3); -        break; - -    } -    return state; -} diff --git a/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk b/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk index 5df198b7bc..b282b1aa4c 100644 --- a/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk +++ b/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk @@ -1,9 +1,5 @@ -BOOTMAGIC_ENABLE = no  CONSOLE_ENABLE = no -EXTRAKEY_ENABLE = yes  # Audio control and System control(+450) -NKRO_ENABLE = yes       # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes  # Enable my Red LEDS -RGBLIGHT_ENABLE = yes  # Enable my RGBS +NKRO_ENABLE = yes  VELOCIKEY_ENABLE = yes # I like RGB  TAP_DANCE_ENABLE = yes # fancy fancy Caps  LTO_ENABLE = yes # Enable link time optimization diff --git a/keyboards/keebio/sinc/keymaps/sethBarberee/config.h b/keyboards/keebio/sinc/keymaps/sethBarberee/config.h new file mode 100644 index 0000000000..2d66aefc3e --- /dev/null +++ b/keyboards/keebio/sinc/keymaps/sethBarberee/config.h @@ -0,0 +1,30 @@ +/* +Copyright 2017 Danny Nguyen <[email protected]> + +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 + +/* Use I2C or Serial, not both */ +// +//#define USE_SERIAL +//#define USE_I2C + +//#ifdef RGBLIGHT_ENABLE +//#   ifdef NORMAL_MODE +//#       undef NORMAL_MODE +//#       define NORMAL_MODE RGBLIGHT_MODE_TWINKLE + 4 +//#   endif +//#endif diff --git a/keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c b/keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c new file mode 100644 index 0000000000..3d55f2c093 --- /dev/null +++ b/keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c @@ -0,0 +1,71 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "sethBarberee.h" + +#define LAYOUT_80_with_macro_wrapper(...) LAYOUT_80_with_macro(__VA_ARGS__) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  [_QWERTY] = LAYOUT_80_with_macro_wrapper( +    KC_MUTE,          KC_ECAP, _________________FUNC_LEFT_________________,         _________________FUNC_RIGHT________________,  KC_F11,  KC_F12,  KC_DEL,  KC_MUTE, +    KC_F1,   KC_F2,   KC_GRV,  ________________NUMBER_LEFT________________,         ________________NUMBER_RIGHT_______________,KC_MINS, KC_EQL,  _______,  KC_BSPC, KC_HOME, +    KC_F3,   KC_F4,   KC_TAB,  _________________QWERTY_L1_________________,         _________________QWERTY_R1_________________,  KC_LBRC, KC_RBRC, KC_BSLS, KC_END, +    KC_F5,   KC_F6,   KC_LSFT, _________________QWERTY_L2_________________,         _________________QWERTY_R2_________________,                   KC_ENT,  KC_PGUP, +    KC_F7,   KC_F8,   KC_LSFT, _________________QWERTY_L3_________________,         _________________QWERTY_R3_________________,          KC_RSFT, KC_UP,   KC_PGDN, +    KC_F9,   KC_F10,  KC_LCTL, KC_LALT, KC_LGUI, KC_LOWR,  _______,  KC_SPC,        KC_RASE, KC_BSPC,  KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +  ), +  [_LOWER] = LAYOUT_80_with_macro_wrapper( +    RGB_TOG,          _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, +    RGB_HUI, RGB_HUD, KC_GESC, _________________FUNC_LEFT_________________,           _________________FUNC_RIGHT________________,  KC_F11,  KC_F12,  _______, _______, KC_MPRV, +    RGB_SAI, RGB_SAD, RGB_TOG, _______, _______, _______, _______, KC_LPRN,           KC_RPRN, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, +    RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_LCBR,           KC_RCBR, _______, _______, _______, _______, _______,          _______, KC_VOLU, +    RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, KC_LBRC,          KC_RBRC, _______, _______, _______, _______, _______, _______, KC_VOLD, +    _______, _______, _______, _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______, _______, _______, _______ +  ), + +  [_RAISE] = LAYOUT_80_with_macro_wrapper( +    _______,          _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, +    RESET,   KC_VRSN, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______,          _______, _______, +    _______, _______, _______,          _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______ +  ), +  [_ADJUST] = LAYOUT_80_with_macro_wrapper( +    _______,          _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______,          _______, _______, +    _______, _______, _______,          _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______ +  ), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { +    if (index == 0) { +        if (clockwise) { +            tap_code(KC_PGDN); +        } else { +            tap_code(KC_PGUP); +        } +    } else if (index == 1) { +        if (clockwise) { +            tap_code(KC_VOLU); +        } else { +            tap_code(KC_VOLD); +        } +    } +} diff --git a/keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk b/keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk new file mode 100644 index 0000000000..049c5ae9b5 --- /dev/null +++ b/keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk @@ -0,0 +1,3 @@ +BACKLIGHT_ENABLE=no +CONSOLE_ENABLE=no +TAP_DANCE_ENABLE=yes diff --git a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk b/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk index fcf3767e16..21b93c5954 100644 --- a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk +++ b/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk @@ -1 +1,2 @@  BOOTMAGIC_ENABLE = lite +VIA_ENABLE = yes diff --git a/users/sethBarberee/config.h b/users/sethBarberee/config.h index a849ac0e77..785c7bc88d 100644 --- a/users/sethBarberee/config.h +++ b/users/sethBarberee/config.h @@ -1,8 +1,69 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 +  #ifdef RGBLIGHT_ENABLE -#   ifndef CAPS_LOCK_MODE -#       define CAPS_LOCK_MODE 1 +#   define RGBLIGHT_SLEEP +# ifndef RGBLIGHT_HUE_STEP +#   define RGBLIGHT_HUE_STEP 8 +#endif +# ifndef RGBLIGHT_SAT_STEPT +#   define RGBLIGHT_SAT_STEP 8 +#endif +# ifndef RGBLIGHT_VAL_STEP +#   define RGBLIGHT_VAL_STEP 8 +#endif +// Trim animations I don't use/like +#   ifdef RGBLIGHT_ANIMATIONS +#       undef RGBLIGHT_ANIMATIONS  #   endif -#   ifndef NORMAL_MODE -#       define NORMAL_MODE 4 +#   define RGBLIGHT_EFFECT_BREATHING +#   define RGBLIGHT_EFFECT_STATIC_GRADIENT +#   define RGBLIGHT_EFFECT_TWINKLE +#   ifndef CAPS_LOCK_MODE +#       define CAPS_LOCK_MODE RGBLIGHT_MODE_STATIC_LIGHT  #   endif +#endif // RGBLIGHT_ENABLE + +#ifndef AUDIO_ENABLE +#       define NO_MUSIC_MODE +#endif // AUDIO_ENABLE + +#define FORCE_NKRO // Force NKRO on by default + +// Totally taken from @drashna's userspace +#ifdef TAPPING_TERM +#    undef TAPPING_TERM +#endif  // TAPPING_TERM +// +// Keeping these commented for examples when I want to tweak per keyboard +// but setting a default across my boards for now +// +//#if defined(KEYBOARD_ergodox_ez) +//#    define TAPPING_TERM 185 +#if defined(KEYBOARD_crkbd) +#    define TAPPING_TERM 185 +#else +#    define TAPPING_TERM 200 +#endif + +/* Disable unused and unneeded features to reduce on firmware size */ +#ifdef LOCKING_SUPPORT_ENABLE +#    undef LOCKING_SUPPORT_ENABLE +#endif +#ifdef LOCKING_RESYNC_ENABLE +#    undef LOCKING_RESYNC_ENABLE  #endif diff --git a/users/sethBarberee/rgb_light.c b/users/sethBarberee/rgb_light.c new file mode 100644 index 0000000000..51cc938c52 --- /dev/null +++ b/users/sethBarberee/rgb_light.c @@ -0,0 +1,52 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "rgb_light.h" + +#if defined(RGBLIGHT_ENABLE) +layer_state_t layer_state_set_rgb_light(layer_state_t state){ +    switch(get_highest_layer(state)) { +      case _QWERTY: +        rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3); +        break; +      case _LOWER: +        rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3); +        break; +      case _RAISE: +        rgblight_set_hsv_and_mode(HSV_BLUE, RGBLIGHT_MODE_BREATHING + 3); +        break; +      case _ADJUST: +        rgblight_set_hsv_and_mode(HSV_GOLDENROD, RGBLIGHT_MODE_BREATHING + 3); +        break; +      default: +        rgblight_set_hsv_and_mode(HSV_PINK, RGBLIGHT_MODE_TWINKLE + 3); +        break; + +    } +    return state; +} + +void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) { +    rgblight_sethsv_noeeprom(hue, sat, val); +    // wait_us(175);  // Add a slight delay between color and mode to ensure it's processed correctly +    rgblight_mode_noeeprom(mode); +} + +void keyboard_post_init_rgb_light(void) +{ +    layer_state_set_rgb_light(layer_state); +} +#endif + diff --git a/users/sethBarberee/rgb_light.h b/users/sethBarberee/rgb_light.h new file mode 100644 index 0000000000..2e0477ce59 --- /dev/null +++ b/users/sethBarberee/rgb_light.h @@ -0,0 +1,21 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "sethBarberee.h" + +layer_state_t layer_state_set_rgb_light(layer_state_t state); +void keyboard_post_init_rgb_light(void); +void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode); diff --git a/users/sethBarberee/rules.mk b/users/sethBarberee/rules.mk index d8aef60523..f1bc3325fe 100644 --- a/users/sethBarberee/rules.mk +++ b/users/sethBarberee/rules.mk @@ -1 +1,10 @@  SRC += sethBarberee.c + +# Add in custom tap dances when tap dance is enabled +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) +	SRC += tap_dance.c +endif + +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) +	SRC += rgb_light.c +endif diff --git a/users/sethBarberee/sethBarberee.c b/users/sethBarberee/sethBarberee.c index 10f78f63b5..536f3f921b 100644 --- a/users/sethBarberee/sethBarberee.c +++ b/users/sethBarberee/sethBarberee.c @@ -1,45 +1,85 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "sethBarberee.h" -#ifdef RGBLIGHT_ENABLE -#ifdef TAP_DANCE_ENABLE - -// Initialize it now -tap caps_status = { -    .toggled = false, -    .toggle_mode = CAPS_LOCK_MODE, -    .normal_mode = NORMAL_MODE -}; - -void dance_ecap_finished (qk_tap_dance_state_t *state, void *user_data){ -    if(state->count == 1){ -        register_code(KC_ESC); -    } else { -        register_code(KC_CAPS); -        if(!caps_status.toggled){ -            // Toggling caps so indicate -            caps_status.toggled =  true; -            rgblight_mode_noeeprom(caps_status.toggle_mode); -        } else { -            // Turning off so return to normal mode -            caps_status.toggled = false; -            rgblight_mode_noeeprom(caps_status.normal_mode); -        } -    } +#include "version.h" + +__attribute__ ((weak)) void keyboard_pre_init_keymap(void) {} + +void keyboard_pre_init_user(void){ +#if defined(BOOTLOADER_CATERINA) +    // Make sure the red LEDs don't light +    setPinOutput(D5); +    writePinHigh(D5); + +    setPinOutput(B0); +    writePinHigh(B0); +#endif +    keyboard_pre_init_keymap();  } -void dance_ecap_reset (qk_tap_dance_state_t *state, void *user_data){ -    if(state->count == 1){ -        unregister_code(KC_ESC); -    } else { -        unregister_code(KC_CAPS); +__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) { return state; } + +layer_state_t layer_state_set_user(layer_state_t state){ + +    if (!is_keyboard_master()) { +        return state;      } + +    state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); +#if defined(RGBLIGHT_ENABLE) +    state = layer_state_set_rgb_light(state); +#endif +    return layer_state_set_keymap(state);  } -//Tap Dance Definitions -qk_tap_dance_action_t tap_dance_actions[] = { -  //Tap once for Esc, twice for Caps Lock -  [TD_ECAP]  = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_ecap_finished, dance_ecap_reset), -// Other declarations would go here, separated by commas, if you have them -}; +__attribute__ ((weak)) void keyboard_post_init_keymap(void) {} +void keyboard_post_init_user(void) +{ +#if defined(RGBLIGHT_ENABLE) +    keyboard_post_init_rgb_light();  #endif +    keyboard_post_init_keymap(); +} + +__attribute__((weak)) void suspend_power_down_keymap(void) {} + +void suspend_power_down_user(void) { +#ifdef OLED_DRIVER_ENABLE +    oled_off();  #endif +    suspend_power_down_keymap(); +} + +__attribute__((weak)) void suspend_wakeup_init_keymap(void) {} + +void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); } + +__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true;} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    if (process_record_keymap(keycode, record)) +    { +        switch (keycode) { +            case KC_VRSN:  // Prints firmware version +                if (record->event.pressed) { +                    SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE); +                } +                break; +        } +    } +    return true; +} diff --git a/users/sethBarberee/sethBarberee.h b/users/sethBarberee/sethBarberee.h index 23774ba4eb..1da79e1a63 100644 --- a/users/sethBarberee/sethBarberee.h +++ b/users/sethBarberee/sethBarberee.h @@ -1,20 +1,50 @@ -#ifndef USERSPACE -#define USERSPACE + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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.h" +#include QMK_KEYBOARD_H -#ifdef TAP_DANCE_ENABLE // only enable for tap dances -    enum { -        TD_ECAP = 0, -    }; +#include "wrappers.h" -    #define KC_ECAP TD(TD_ECAP) +enum layers { +    _QWERTY, +    _LOWER, +    _RAISE, +    _ADJUST +}; -    typedef struct { -        bool toggled; // store whether we have toggled caps lock -        int toggle_mode; // idk why but maybe do something with this.. -        int normal_mode; -    } tap; +enum userspace_keycodes { +    KC_VRSN = SAFE_RANGE, +    NEW_SAFE_RANGE +}; + +#define KC_LOWR MO(_LOWER) +#define KC_RASE MO(_RAISE) + +#ifdef TAP_DANCE_ENABLE +#   include "tap_dance.h"  #endif +#ifdef RGBLIGHT_ENABLE +#   include "rgb_light.h"  #endif + +void keyboard_pre_init_keymap(void); +void keyboard_post_init_keymap(void); +void suspend_power_down_keymap(void); +void suspend_wakeup_init_keymap(void); +layer_state_t layer_state_set_keymap (layer_state_t state); +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); diff --git a/users/sethBarberee/tap_dance.c b/users/sethBarberee/tap_dance.c new file mode 100644 index 0000000000..588ac9be66 --- /dev/null +++ b/users/sethBarberee/tap_dance.c @@ -0,0 +1,89 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "tap_dance.h" + +// Shamelessly stolen from QMK Docs +int cur_dance (qk_tap_dance_state_t *state) { +  if (state->count == 1) { +    if (state->interrupted || !state->pressed) { +      return SINGLE_TAP; +    } else { +      return SINGLE_HOLD; +    } +  } +  else if (state->count == 2) { +    if (state->interrupted) return DOUBLE_SINGLE_TAP; +    else if (state->pressed) return DOUBLE_HOLD; +    else return DOUBLE_TAP; +  } +  if (state->count == 3) { +    if (state->interrupted || !state->pressed)  return TRIPLE_TAP; +    else return TRIPLE_HOLD; +  } +  else return 8; +} + + +// Initialize it now +tap caps_status = { +    .toggled = false, +    .state = 0 +}; + + +void dance_ecap_finished (qk_tap_dance_state_t *state, void *user_data){ +    caps_status.state = cur_dance(state); +    switch(caps_status.state){ +        case SINGLE_TAP: +            tap_code(KC_ESC); +            break; +        case SINGLE_HOLD: +            register_code(KC_LCTRL); +            break; +        case DOUBLE_TAP: +            tap_code(KC_CAPS); +            if(!caps_status.toggled){ +                // Toggling caps so indicate +                caps_status.toggled =  true; +#ifdef RGBLIGHT_ENABLE +                // Save mode we can from +                caps_status.normal_mode = rgblight_get_mode(); +                rgblight_mode_noeeprom(CAPS_LOCK_MODE); +#endif +            } else { +                // Turning off so return to normal mode +                caps_status.toggled = false; +#ifdef RGBLIGHT_ENABLE +                rgblight_mode_noeeprom(caps_status.normal_mode); +#endif +            } +            break; +    } +} + +void dance_ecap_reset (qk_tap_dance_state_t *state, void *user_data){ +    if(caps_status.state == SINGLE_HOLD){ +        unregister_code(KC_LCTRL); +    } +    caps_status.state = 0; +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { +  //Tap once for Esc, twice for Caps Lock +  [TD_ECAP]  = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_ecap_finished, dance_ecap_reset), +// Other declarations would go here, separated by commas, if you have them +}; diff --git a/users/sethBarberee/tap_dance.h b/users/sethBarberee/tap_dance.h new file mode 100644 index 0000000000..709185b39a --- /dev/null +++ b/users/sethBarberee/tap_dance.h @@ -0,0 +1,43 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "sethBarberee.h" + +//Define a type for as many tap dance states as you need +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 +}; + + +enum { +    TD_ECAP = 0, +}; + +#define KC_ECAP TD(TD_ECAP) + +typedef struct { +    bool toggled; // store whether we have toggled caps lock +#ifdef RGBLIGHT_ENABLE +    int normal_mode; +#endif // RGBLIGHT_ENABLE +    int state; +} tap; diff --git a/users/sethBarberee/wrappers.h b/users/sethBarberee/wrappers.h new file mode 100644 index 0000000000..b24f52b332 --- /dev/null +++ b/users/sethBarberee/wrappers.h @@ -0,0 +1,55 @@ + /* Copyright 2021 SethBarberee <[email protected]> +  * +  * 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 "sethBarberee.h" + +/* +    Since our quirky block definitions are basically a list of comma separated +    arguments, we need a wrapper in order for these definitions to be +    expanded before being used as arguments to the LAYOUT_xxx macro. +*/ + +/* +    Blocks for each of the four major keyboard layouts +    Organized so we can quickly adapt and modify all of them +    at once, rather than for each keyboard, one at a time. +    And this allows for much cleaner blocks in the keymaps. +    For instance Tap/Hold for Control on all of the layouts + +    NOTE: These are all the same length.  If you do a search/replace +      then you need to add/remove underscores to keep the +      lengths consistent. +*/ + +// clang-format off +#define _________________QWERTY_L1_________________       KC_Q,    KC_W,    KC_E,    KC_R,    KC_T +#define _________________QWERTY_L2_________________       KC_A,    KC_S,    KC_D,    KC_F,    KC_G +#define _________________QWERTY_L3_________________       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B + +#define _________________QWERTY_R1_________________       KC_Y,    KC_U,    KC_I,    KC_O,    KC_P +#define _________________QWERTY_R2_________________       KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT +#define _________________QWERTY_R3_________________       KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH + +#define ________________NUMBER_LEFT________________       KC_1,    KC_2,    KC_3,    KC_4,    KC_5 +#define ________________NUMBER_RIGHT_______________       KC_6,    KC_7,    KC_8,    KC_9,    KC_0 +#define _________________FUNC_LEFT_________________       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5 +#define _________________FUNC_RIGHT________________       KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10 + +#define ___________________BLANK___________________       _______, _______, _______, _______, _______ + +// clang-format on + | 
