Update to drashna keymaps and userspace - RGB edition (#4143)

* Fix up userspace after feature merges

* Add new macros for keyboard layouts

* Keep new layouts in keymap for easy reference

* Cleanup layouts

* Fix CRKBD wrappers

* Fix up comments

* Fix spacing in orthodox base layer

* ergodox related cleanup

* Make KC_MAKE only flash when holding shift

* Add option to fast compile boards

* Clean up rgb modes to save space

* Re-enable Swap Hands on my Iris
master
Drashna Jaelre 2018-10-15 12:34:49 -07:00 committed by Jack Humbert
parent 44a348d56f
commit 31d12662bd
19 changed files with 281 additions and 247 deletions

View File

@ -34,10 +34,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define TAPPING_FORCE_HOLD // #define TAPPING_FORCE_HOLD
// #define TAPPING_TERM 100 // #define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM #undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 27 #define RGBLED_NUM 27
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 120 #define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10 #endif
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17

View File

@ -20,37 +20,48 @@ enum crkbd_keycodes {
RGBRST = NEW_SAFE_RANGE RGBRST = NEW_SAFE_RANGE
}; };
#define LAYOUT_crkbd_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE \
)
#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper( [_QWERTY] = LAYOUT_crkbd_base_wrapper(
KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
KC_MLSF, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_MRSF, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
), ),
[_COLEMAK] = LAYOUT_wrapper(
KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, [_COLEMAK] = LAYOUT_crkbd_base_wrapper(
KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
KC_MLSF, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_MRSF, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_wrapper(
KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, [_DVORAK] = LAYOUT_crkbd_base_wrapper(
KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
KC_MLSF, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_MRSF, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_wrapper(
KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, [_WORKMAN] = LAYOUT_crkbd_base_wrapper(
KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
KC_MLSF, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_MRSF, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
), ),
[_MODS] = LAYOUT_wrapper( [_MODS] = LAYOUT_wrapper(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, KC_RSFT,
_______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______
), ),
@ -65,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC, KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
_______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
_______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
_______, _______, _______, _______, _______, _______ //`--------------------' `--------------------' _______, _______, _______, _______, _______, _______
), ),
[_ADJUST] = LAYOUT_wrapper( \ [_ADJUST] = LAYOUT_wrapper( \

View File

@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM #undef RGBLED_NUM
#define RGBLED_NUM 18 // Number of LEDs #define RGBLED_NUM 18 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12 #define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12 #define RGBLIGHT_VAL_STEP 12

View File

@ -2,42 +2,53 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#include "drashna.h" #include "drashna.h"
#define LAYOUT_iris_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, \
KC_TAB , K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \
KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, ALT_APP, OS_RGUI, K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE \
)
#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper( [_QWERTY] = LAYOUT_iris_base_wrapper(
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
KC_MLSF, _________________QWERTY_L3_________________, ALT_APP, OS_RGUI, _________________QWERTY_R3_________________, KC_MRSF,
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
), ),
[_COLEMAK] = LAYOUT_wrapper(
KC_ESC , ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, [_COLEMAK] = LAYOUT_iris_base_wrapper(
KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
KC_MLSF, _________________COLEMAK_L3________________, ALT_APP, OS_RGUI, _________________COLEMAK_R3________________, KC_MRSF, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
), ),
[_DVORAK] = LAYOUT_wrapper(
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, [_DVORAK] = LAYOUT_iris_base_wrapper(
KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
KC_MLSF, _________________DVORAK_L3_________________, ALT_APP, OS_RGUI, _________________DVORAK_R3_________________, KC_MRSF, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
), ),
[_WORKMAN] = LAYOUT_wrapper(
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, [_WORKMAN] = LAYOUT_iris_base_wrapper(
KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
KC_MLSF, _________________WORKMAN_L3________________, ALT_APP, OS_RGUI, _________________WORKMAN_R3________________, KC_MRSF, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
), ),
[_MODS] = LAYOUT_wrapper( [_MODS] = LAYOUT_wrapper(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, KC_LSFT, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, KC_RSFT,
_______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______
), ),

View File

@ -8,10 +8,10 @@ RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = yes AUDIO_ENABLE = yes
NKRO_ENABLE = yes NKRO_ENABLE = yes
BACKLIGHT_ENABLE = no BACKLIGHT_ENABLE = no
SWAP_HANDS_ENABLE = no SWAP_HANDS_ENABLE = yes
INDICATOR_LIGHTS = yes INDICATOR_LIGHTS = yes
MACROS_ENABLED = no MACROS_ENABLED = no
RGBLIGHT_TWINKLE = no RGBLIGHT_TWINKLE = yes
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu

View File

@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3 #define RGB_DI_PIN D3
#define RGBLED_NUM 16 // Number of LEDs #define RGBLED_NUM 16 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12 #define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12 #define RGBLIGHT_VAL_STEP 12

View File

@ -30,41 +30,47 @@ uint8_t last_led;
uint8_t last_osm; uint8_t last_osm;
#endif #endif
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
// Fillers to make layering more clear #define LAYOUT_orthodox_base( \
#define _______ KC_TRNS K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
#define XXXXXXX KC_NO K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
KC_TAB, K11, K12, K13, K14, K15, ALT_APP, OS_LGUI, KC_LALT, OS_RGUI, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, CTL_T(K2A), KC_MRSF \
)
#define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(\ [_QWERTY] = LAYOUT_orthodox_base_wrapper(
KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
KC_TAB, _________________QWERTY_L2_________________, ___________ORTHODOX_THUMP_TOP_____________, _________________QWERTY_R2_________________, KC_QUOT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
KC_MLSF, _________________QWERTY_L3_________________, ___________________ORTHODOX_THUMB_BOTTOM____________________, _________________QWERTY_R3_________________, KC_MRSF _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_wrapper(\ [_COLEMAK] = LAYOUT_orthodox_base_wrapper(
KC_ESC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
KC_TAB, _________________COLEMAK_L2________________, ___________ORTHODOX_THUMP_TOP_____________, _________________COLEMAK_R2________________, KC_QUOT, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
KC_MLSF, _________________COLEMAK_L3________________, ___________________ORTHODOX_THUMB_BOTTOM____________________, _________________COLEMAK_R3________________, KC_MRSF _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_wrapper(\ [_DVORAK] = LAYOUT_orthodox_base_wrapper(
KC_ESC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
KC_TAB, _________________DVORAK_L2_________________, ___________ORTHODOX_THUMP_TOP_____________, _________________DVORAK_R2_________________, KC_MINS, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
KC_MLSF, _________________DVORAK_L3_________________, ___________________ORTHODOX_THUMB_BOTTOM____________________, _________________DVORAK_R3_________________, KC_MRSF _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_wrapper(\
KC_ESC, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC, [_WORKMAN] = LAYOUT_orthodox_base_wrapper(
KC_TAB, _________________WORKMAN_L2________________, ___________ORTHODOX_THUMP_TOP_____________, _________________WORKMAN_R2________________, KC_MINS, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
KC_MLSF, _________________WORKMAN_L3________________, ___________________ORTHODOX_THUMB_BOTTOM____________________, _________________WORKMAN_R3________________, KC_MRSF _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
), ),
[_MODS] = LAYOUT_wrapper(\ [_MODS] = LAYOUT_wrapper(\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -10,6 +10,6 @@ NKRO_ENABLE = yes
INDICATOR_LIGHTS = yes INDICATOR_LIGHTS = yes
MACROS_ENABLED = no MACROS_ENABLED = no
RGBLIGHT_TWINKLE = no RGBLIGHT_TWINKLE = yes
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu

View File

@ -19,16 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM #undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16 #define RGBLED_NUM 16
#define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 300
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE

View File

@ -5,8 +5,9 @@
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#undef RGBLIGHT_SAT_STEP #undef RGBLIGHT_SAT_STEP
#define RGBLIGHT_SAT_STEP 12 #define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE

View File

@ -30,6 +30,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//define layer change stuff for underglow indicator //define layer change stuff for underglow indicator
bool skip_leds = false; bool skip_leds = false;
#define LAYOUT_ergodox_pretty_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_ergodox_pretty_wrapper( \
KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \
KC_TAB, K01, K02, K03, K04, K05, TG(_DIABLO), TG(_DIABLO), K06, K07, K08, K09, K0A, KC_BSLS, \
KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \
KC_GRV, OSM(MOD_MEH),OSM(MOD_LGUI),KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC_IRNY, \
ALT_T(KC_APP), OSM(MOD_LGUI), OSM(MOD_RGUI), CTL_T(KC_ESCAPE), \
KC_HOME, KC_PGUP, \
LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER) \
)
#define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@ -55,14 +73,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | End | | PgDn | | | * | | | End | | PgDn | | |
* `---------------------' `---------------------' * `---------------------' `---------------------'
*/ */
[_QWERTY] = LAYOUT_ergodox_pretty_wrapper( [_QWERTY] = LAYOUT_ergodox_pretty_base_wrapper(
// left hand // right hand _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF,
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, UC_IRNY,
__________________ERGODOX_THUMB_CLUSTER_____________________
), ),
/* Keymap 0: COLEMAK layer /* Keymap 0: COLEMAK layer
* *
@ -87,14 +101,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
// If it accepts an argument (i.e, is a function), it doesn't need KC_. // If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_* // Otherwise, it needs KC_*
[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( [_COLEMAK] = LAYOUT_ergodox_pretty_base_wrapper(
// left hand // right hand _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF,
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, UC_IRNY,
__________________ERGODOX_THUMB_CLUSTER_____________________
), ),
/* Keymap 0: DVORAK Layout /* Keymap 0: DVORAK Layout
* *
@ -119,14 +129,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
// If it accepts an argument (i.e, is a function), it doesn't need KC_. // If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_* // Otherwise, it needs KC_*
[_DVORAK] = LAYOUT_ergodox_pretty_wrapper( [_DVORAK] = LAYOUT_ergodox_pretty_base_wrapper(
// left hand // right hand _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_BSLS, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS,
KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF,
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, UC_IRNY,
__________________ERGODOX_THUMB_CLUSTER_____________________
), ),
/* Keymap 0: WORKMAN layer /* Keymap 0: WORKMAN layer
* *
@ -149,16 +155,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | |ace | End | | PgDn | | | * | |ace | End | | PgDn | | |
* `--------------------' `----------------------' * `--------------------' `----------------------'
*/ */
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_* [_WORKMAN] = LAYOUT_ergodox_pretty_base_wrapper(
[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
// left hand _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS,
KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF,
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, UC_IRNY,
__________________ERGODOX_THUMB_CLUSTER_____________________
), ),
// Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES) // Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES)

View File

@ -5,7 +5,7 @@
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM) #if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN D3 #define RGB_DI_PIN D3
#define RGBLED_NUM 16 // Number of LEDs #define RGBLED_NUM 16 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12 #define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12 #define RGBLIGHT_VAL_STEP 12

View File

@ -25,34 +25,44 @@ enum planck_keycodes {
#define BACKLIT OSM(MOD_LSFT) #define BACKLIT OSM(MOD_LSFT)
#endif #endif
#define LAYOUT_ortho_4x12_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_ortho_4x12_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, CTL_T(K2A), KC_ENT, \
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
)
#define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_ortho_4x12_wrapper( [_QWERTY] = LAYOUT_ortho_4x12_base_wrapper(
KC_ESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
KC_MLSF, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
), ),
[_COLEMAK] = LAYOUT_ortho_4x12_wrapper( [_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper(
KC_ESC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
KC_TAB, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
KC_MLSF, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_ENT, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
), ),
[_DVORAK] = LAYOUT_ortho_4x12_wrapper( [_DVORAK] = LAYOUT_ortho_4x12_base_wrapper(
KC_ESC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
KC_TAB, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_SLSH, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
KC_MLSF, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, KC_ENT, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
), ),
[_WORKMAN] = LAYOUT_ortho_4x12_wrapper( [_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper(
KC_TAB, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
KC_ESC, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
KC_MLSF, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________, KC_ENT, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
), ),
[_MODS] = LAYOUT_ortho_4x12_wrapper( [_MODS] = LAYOUT_ortho_4x12_wrapper(

View File

@ -19,10 +19,12 @@
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_SLEEP #define RGBLIGHT_SLEEP
#undef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#ifndef ONESHOT_TAP_TOGGLE #ifndef ONESHOT_TAP_TOGGLE
#define ONESHOT_TAP_TOGGLE 2 #define ONESHOT_TAP_TOGGLE 2
#endif // !ONESHOT_TAP_TOGGLE #endif // !ONESHOT_TAP_TOGGLE

View File

@ -36,11 +36,11 @@ bool send_game_macro(const char *str, keyrecord_t *record, bool override) {
keycode = KC_ENTER; keycode = KC_ENTER;
} }
clear_keyboard(); clear_keyboard();
tap(keycode); tap_code(keycode);
wait_ms(50); wait_ms(50);
send_string_with_delay(str, MACRO_TIMER); send_string_with_delay(str, MACRO_TIMER);
wait_ms(50); wait_ms(50);
tap(KC_ENTER); tap_code(KC_ENTER);
} }
if (override) wait_ms(3000); if (override) wait_ms(3000);
return false; return false;
@ -127,13 +127,13 @@ uint32_t default_layer_state_set_keymap (uint32_t state) {
__attribute__ ((weak)) __attribute__ ((weak))
void led_set_keymap(uint8_t usb_led) {} void led_set_keymap(uint8_t usb_led) {}
__attribute__ ((weak))
void eeconfig_init_keymap(void) {}
// Call user matrix init, set default RGB colors and then // Call user matrix init, set default RGB colors and then
// call the keymap's init function // call the keymap's init function
void matrix_init_user(void) { void matrix_init_user(void) {
userspace_config.raw = eeprom_read_dword(EECONFIG_USERSPACE); userspace_config.raw = eeconfig_read_user();
#ifdef BOOTLOADER_CATERINA #ifdef BOOTLOADER_CATERINA
DDRD &= ~(1<<5); DDRD &= ~(1<<5);
@ -250,7 +250,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
if (!record->event.pressed) { if (!record->event.pressed) {
send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP uint8_t temp_mod = get_mods();
clear_mods();
send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), 10);
if (temp_mod & MODS_SHIFT_MASK) {
send_string_with_delay_P(PSTR(
#if defined(__ARM__) #if defined(__ARM__)
":dfu-util" ":dfu-util"
#elif defined(BOOTLOADER_DFU) #elif defined(BOOTLOADER_DFU)
@ -260,7 +264,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#elif defined(BOOTLOADER_CATERINA) #elif defined(BOOTLOADER_CATERINA)
":avrdude" ":avrdude"
#endif // bootloader options #endif // bootloader options
SS_TAP(X_ENTER)), 10); ), 10);
}
if (temp_mod & MODS_CTRL_MASK) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), 10); }
send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
set_mods(temp_mod);
} }
return false; return false;
break; break;
@ -268,8 +276,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case EPRM: // Resets EEPROM case EPRM: // Resets EEPROM
if (record->event.pressed) { if (record->event.pressed) {
eeconfig_init(); eeconfig_init();
default_layer_set(1UL<<eeconfig_read_default_layer());
layer_state_set(layer_state);
} }
return false; return false;
break; break;
@ -295,7 +301,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// to save on firmware space, since it's limited. // to save on firmware space, since it's limited.
#ifdef MACROS_ENABLED #ifdef MACROS_ENABLED
case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros
if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeprom_update_dword(EECONFIG_USERSPACE, userspace_config.raw); } if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeconfig_update_user(userspace_config.raw); }
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18); userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18);
#endif //RGBLIGHT_ENABLE #endif //RGBLIGHT_ENABLE
@ -344,11 +350,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} else { } else {
if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
register_code(KC_LCTL); register_code(KC_LCTL);
tap(KC_C); tap_code(KC_C);
unregister_code(KC_LCTL); unregister_code(KC_LCTL);
} else { // Tap, paste } else { // Tap, paste
register_code(KC_LCTL); register_code(KC_LCTL);
tap(KC_V); tap_code(KC_V);
unregister_code(KC_LCTL); unregister_code(KC_LCTL);
} }
} }
@ -413,3 +419,8 @@ uint32_t default_layer_state_set_user(uint32_t state) {
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led) {
led_set_keymap(usb_led); led_set_keymap(usb_led);
} }
void eeconfig_init_user(void) {
userspace_config.raw = 0;
eeconfig_update_user(userspace_config.raw);
}

View File

@ -19,14 +19,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h" #include "quantum.h"
#include "version.h" #include "version.h"
#include "eeprom.h" #include "eeprom.h"
#include "send_unicode.h"
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
#include "rgb_matrix.h" #include "rgb_matrix.h"
#endif #endif
// Define layer names /* Define layer names */
enum userspace_layers { enum userspace_layers {
_QWERTY = 0, _QWERTY = 0,
_NUMLOCK = 0, _NUMLOCK = 0,
@ -43,28 +42,27 @@ enum userspace_layers {
_ADJUST, _ADJUST,
}; };
//define modifiers /*
define modifiers here, since MOD_* doesn't seem to work for these
*/
#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
#define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL)) #define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL))
#define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
#define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) #define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI))
// RGB color codes are no longer located here anymore. Instead, you will want to /*
// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h RGB color codes are no longer located here anymore. Instead, you will want to
head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h
extern bool rgb_layer_change; */
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
void rgblight_sethsv_default_helper(uint8_t index); void rgblight_sethsv_default_helper(uint8_t index);
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
inline void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); };
bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed); bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed);
bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
#define EECONFIG_USERSPACE (uint32_t *)19
typedef union { typedef union {
uint32_t raw; uint32_t raw;
struct { struct {
@ -149,7 +147,7 @@ enum userspace_custom_keycodes {
#define DL_RAIS LT(_RAISE, KC_DEL) #define DL_RAIS LT(_RAISE, KC_DEL)
#define ET_RAIS LT(_RAISE, KC_ENTER) #define ET_RAIS LT(_RAISE, KC_ENTER)
// OSM keycodes, to keep things clean and easy to change /* OSM keycodes, to keep things clean and easy to change */
#define KC_MLSF OSM(MOD_LSFT) #define KC_MLSF OSM(MOD_LSFT)
#define KC_MRSF OSM(MOD_RSFT) #define KC_MRSF OSM(MOD_RSFT)
@ -178,9 +176,11 @@ enum {
#endif // TAP_DANCE_ENABLE #endif // TAP_DANCE_ENABLE
// Custom Keycodes for Diablo 3 layer /*
// But since TD() doesn't work when tap dance is disabled Custom Keycodes for Diablo 3 layer
// We use custom codes here, so we can substitute the right stuff But since TD() doesn't work when tap dance is disabled
We use custom codes here, so we can substitute the right stuff
*/
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
#define KC_D3_1 TD(TD_D3_1) #define KC_D3_1 TD(TD_D3_1)
#define KC_D3_2 TD(TD_D3_2) #define KC_D3_2 TD(TD_D3_2)
@ -193,11 +193,11 @@ enum {
#define KC_D3_4 KC_4 #define KC_D3_4 KC_4
#endif // TAP_DANCE_ENABLE #endif // TAP_DANCE_ENABLE
/*
Since our quirky block definitions are basically a list of comma separated
// Since our quirky block definitions are basically a list of comma separated arguments, we need a wrapper in order for these definitions to be
// arguments, we need a wrapper in order for these definitions to be expanded before being used as arguments to the LAYOUT_xxx macro.
// expanded before being used as arguments to the LAYOUT_xxx macro. */
#if (!defined(LAYOUT) && defined(KEYMAP)) #if (!defined(LAYOUT) && defined(KEYMAP))
#define LAYOUT KEYMAP #define LAYOUT KEYMAP
#endif #endif
@ -208,112 +208,114 @@ enum {
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
// Blocks for each of the four major keyboard layouts /*
// Organized so we can quickly adapt and modify all of them Blocks for each of the four major keyboard layouts
// at once, rather than for each keyboard, one at a time. Organized so we can quickly adapt and modify all of them
// And this allows for much cleaner blocks in the keymaps. at once, rather than for each keyboard, one at a time.
// For instance Tap/Hold for Control on all of the layouts 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 NOTE: These are all the same length. If you do a search/replace
// then you need to add/remove underscores to keep the then you need to add/remove underscores to keep the
// lengths consistent. lengths consistent.
*/
#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T #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_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
#define _________________QWERTY_L3_________________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B #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_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
#define _________________COLEMAK_L3________________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B #define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G #define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
#define ______________COLEMAK_MOD_DH_L3____________ CTL_T(KC_Z), KC_X, KC_C, KC_D, KC_V #define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN #define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O #define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
#define _________________DVORAK_L3_________________ CTL_T(KC_SCLN),KC_Q, KC_J, KC_K, KC_X #define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L #define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z) #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B #define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G #define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
#define _________________WORKMAN_L3________________ CTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V #define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN #define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I #define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K #define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G #define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
#define _________________NORMAN_L3_________________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B #define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN #define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U #define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U
#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B #define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F #define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
#define _________________MALTRON_L3________________ CTL_T(KC_SCLN), KC_SLSH, KC_J KC_G, KC_COMM #define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J KC_G, KC_COMM
#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L #define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R #define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R
#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, CTL_T(KC_x) #define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
#define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q #define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q
#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U #define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
#define _________________EUCALYN_L3________________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_W #define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W
#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P #define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N #define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N
#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, CTL_T(KC_SCLN) #define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN
#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W #define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R #define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QFMLWY_L3_____________ CTL_T(KC_Z), KC_V, KC_G, KC_C, KC_X #define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J #define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN #define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN
#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, CTL_T(KC_SLSH) #define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W #define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R #define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWB_L3_____________ CTL_T(KC_Z), KC_X, KC_C, KC_F, KC_J #define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN #define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H #define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, CTL_T(KC_SLSH) #define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W #define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R #define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWY_L3_____________ CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_J #define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN #define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H #define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, CTL_T(KC_SLSH) #define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
@ -352,21 +354,3 @@ enum {
#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN #define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT #define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
// Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN),
// this allows us to quickly modify the bottom row for all of the layouts
// so we don't have to alter it 4 times and hope that we haven't missed
// anything
#define ___________ERGODOX_BOTTOM_LEFT_____________ OSM(MOD_MEH), OSM(MOD_LGUI), KC_LBRC, KC_RBRC
#define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
#define ___________ORTHODOX_THUMP_TOP_____________ ALT_APP, OS_LGUI, KC_LALT, OS_RGUI
#define ___________________ORTHODOX_THUMB_BOTTOM____________________ LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE
#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), OSM(MOD_LGUI), OSM(MOD_RGUI), CTL_T(KC_ESCAPE), \
KC_HOME, KC_PGUP, \
LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER)

View File

@ -230,7 +230,7 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) { if (record->event.pressed) {
userspace_config.rgb_layer_change ^= 1; userspace_config.rgb_layer_change ^= 1;
xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
eeprom_update_dword(EECONFIG_USERSPACE, userspace_config.raw); eeconfig_update_user(userspace_config.raw);
if (userspace_config.rgb_layer_change) { if (userspace_config.rgb_layer_change) {
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
} }
@ -243,7 +243,7 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
if (userspace_config.rgb_layer_change) { if (userspace_config.rgb_layer_change) {
userspace_config.rgb_layer_change = false; userspace_config.rgb_layer_change = false;
xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
eeprom_update_dword(EECONFIG_USERSPACE, userspace_config.raw); eeconfig_update_user(userspace_config.raw);
} }
} }
return true; break; return true; break;
@ -295,31 +295,31 @@ uint32_t layer_state_set_rgb(uint32_t state) {
switch (biton32(state)) { switch (biton32(state)) {
case _MACROS: case _MACROS:
rgblight_sethsv_noeeprom_orange(); rgblight_sethsv_noeeprom_orange();
userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18); userspace_config.is_overwatch ? rgblight_effect_snake(RGBLIGHT_MODE_SNAKE + 2) : rgblight_effect_snake(RGBLIGHT_MODE_SNAKE + 3);
break; break;
case _MEDIA: case _MEDIA:
rgblight_sethsv_noeeprom_chartreuse(); rgblight_sethsv_noeeprom_chartreuse();
rgblight_mode_noeeprom(22); rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 1);
break; break;
case _GAMEPAD: case _GAMEPAD:
rgblight_sethsv_noeeprom_orange(); rgblight_sethsv_noeeprom_orange();
rgblight_mode_noeeprom(17); rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 2);
break; break;
case _DIABLO: case _DIABLO:
rgblight_sethsv_noeeprom_red(); rgblight_sethsv_noeeprom_red();
rgblight_mode_noeeprom(5); rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
break; break;
case _RAISE: case _RAISE:
rgblight_sethsv_noeeprom_yellow(); rgblight_sethsv_noeeprom_yellow();
rgblight_mode_noeeprom(5); rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
break; break;
case _LOWER: case _LOWER:
rgblight_sethsv_noeeprom_green(); rgblight_sethsv_noeeprom_green();
rgblight_mode_noeeprom(5); rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
break; break;
case _ADJUST: case _ADJUST:
rgblight_sethsv_noeeprom_red(); rgblight_sethsv_noeeprom_red();
rgblight_mode_noeeprom(23); rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
break; break;
default: // for any other layers, or the default layer default: // for any other layers, or the default layer
switch (biton32(default_layer_state)) { switch (biton32(default_layer_state)) {
@ -332,7 +332,7 @@ uint32_t layer_state_set_rgb(uint32_t state) {
default: default:
rgblight_sethsv_noeeprom_cyan(); break; rgblight_sethsv_noeeprom_cyan(); break;
} }
biton32(state) == _MODS ? rgblight_mode_noeeprom(2) : rgblight_mode_noeeprom(1); // if _MODS layer is on, then breath to denote it biton32(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it
break; break;
} }
// layer_state_set_indicator(); // Runs every scan, so need to call this here .... since I can't get it working "right" anyhow // layer_state_set_indicator(); // Runs every scan, so need to call this here .... since I can't get it working "right" anyhow

View File

@ -37,6 +37,3 @@ ifdef CONSOLE_ENABLE
endif endif
endif endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
SRC += send_unicode.c
endif

View File

@ -38,16 +38,16 @@ qk_tap_dance_action_t tap_dance_actions[] = {
// Sends the key press to system, but only if on the Diablo layer // Sends the key press to system, but only if on the Diablo layer
void send_diablo_keystroke(uint8_t diablo_key) { void send_diablo_keystroke(uint8_t diablo_key) {
if (biton32(layer_state) == _DIABLO) { if (IS_LAYER_ON(_DIABLO)) {
switch (diablo_key) { switch (diablo_key) {
case 0: case 0:
tap(KC_1); break; tap_code(KC_1); break;
case 1: case 1:
tap(KC_2); break; tap_code(KC_2); break;
case 2: case 2:
tap(KC_3); break; tap_code(KC_3); break;
case 3: case 3:
tap(KC_4); break; tap_code(KC_4); break;
} }
} }
} }