summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/keebio/iris/keymaps/sethBarberee/config.h30
-rw-r--r--keyboards/keebio/iris/keymaps/sethBarberee/keymap.c181
-rw-r--r--keyboards/keebio/iris/keymaps/sethBarberee/rules.mk6
-rw-r--r--keyboards/keebio/sinc/keymaps/sethBarberee/config.h30
-rw-r--r--keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c71
-rw-r--r--keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk3
-rw-r--r--keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk1
-rw-r--r--users/sethBarberee/config.h69
-rw-r--r--users/sethBarberee/rgb_light.c52
-rw-r--r--users/sethBarberee/rgb_light.h21
-rw-r--r--users/sethBarberee/rules.mk9
-rw-r--r--users/sethBarberee/sethBarberee.c112
-rw-r--r--users/sethBarberee/sethBarberee.h56
-rw-r--r--users/sethBarberee/tap_dance.c89
-rw-r--r--users/sethBarberee/tap_dance.h43
-rw-r--r--users/sethBarberee/wrappers.h55
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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <danny@keeb.io>
+
+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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 <seth.barberee@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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
+