From eaa6803aff863fc51e8829b81d0cea6019ff0307 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sat, 10 Mar 2018 19:39:15 -0800 Subject: [PATCH] Move more authority to userspace and create Bananasplit layout. --- .../bananasplit/keymaps/talljoe/config.h | 23 ++++++ .../bananasplit/keymaps/talljoe/keymap.c | 61 ++++++++++++++ .../60_ansi_split_bs_rshift/talljoe/config.h | 2 + .../60_ansi_split_bs_rshift/talljoe/keymap.c | 62 +++++++------- users/talljoe/talljoe.c | 5 ++ users/talljoe/talljoe.h | 80 ++++++++++++++++++- 6 files changed, 200 insertions(+), 33 deletions(-) create mode 100644 keyboards/bananasplit/keymaps/talljoe/config.h create mode 100644 keyboards/bananasplit/keymaps/talljoe/keymap.c diff --git a/keyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/bananasplit/keymaps/talljoe/config.h new file mode 100644 index 0000000000..7d57b41594 --- /dev/null +++ b/keyboards/bananasplit/keymaps/talljoe/config.h @@ -0,0 +1,23 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS +#define SPACE_COUNT 3 + +#define KM( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO }\ +} + +#endif diff --git a/keyboards/bananasplit/keymaps/talljoe/keymap.c b/keyboards/bananasplit/keymaps/talljoe/keymap.c new file mode 100644 index 0000000000..63ba8a8979 --- /dev/null +++ b/keyboards/bananasplit/keymaps/talljoe/keymap.c @@ -0,0 +1,61 @@ +#include "bananasplit.h" +#include "talljoe.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = KM_( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV, + KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_LBRC, KC_RBRC, KC_BSPC, + MS_MID , _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, KC_ENT , + KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_RSFT, AD_GRV , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC1, KC_SPC2, KC_SPC3, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), + [_WORKMAN] = KM_( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, _______, _______, _______, + _______, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, _______, _______, + _______, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_NORMAN] = KM_( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _________________NORMAN_L1_________________, _________________NORMAN_R1_________________, _______, _______, _______, + _______, _________________NORMAN_L2_________________, _________________NORMAN_R2_________________, _______, _______, + _______, _________________NORMAN_L3_________________, _________________NORMAN_R3_________________, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_DVORAK] = KM_( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, + _______, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_SLSH, KC_EQL , _______, + _______, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, _______, + _______, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_COLMAK] = KM_( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _______, _______, _______, + _______, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _______, _______, + _______, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_GAME] = KM_( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, + MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ , + KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), + [_NAV] = KM_( + KC_GRV , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, ________________NAVLAYER_L1________________, ________________NAVLAYER_R1________________, XXXXXXX, XXXXXXX, KC_DEL , + XXXXXXX, ________________NAVLAYER_L2________________, ________________NAVLAYER_R2________________, XXXXXXX, TG_ADJ , + KC_LSFT, ________________NAVLAYER_L3________________, ________________NAVLAYER_R3________________, KC_RSFT, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, _______, _______, _______, KC_RALT, KC_RGUI, KC_RCTL, _______), + // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards) + [_ADJUST] = KM_( + MO_RST , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, ________________ADJLAYER_L1________________, ________________ADJLAYER_R1________________, XXXXXXX, XXXXXXX, KC_DEL , + XXXXXXX, ________________ADJLAYER_L2________________, ________________ADJLAYER_R2________________, XXXXXXX, TG_ADJ , + TG_NKRO, ________________ADJLAYER_L3________________, ________________ADJLAYER_R3________________, KC_RSFT, XXXXXXX, + MO_RST , AG_NORM, AG_SWAP, XXXXXXX, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS), + // To Reset hit FN + ` + Esc + [_RESET] = KM_( + RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX), +}; diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h index c0bb156534..aab29fa285 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h @@ -3,6 +3,8 @@ #include QMK_KEYBOARD_CONFIG_H +#define PREVENT_STUCK_MODIFIERS + #define KM LAYOUT_60_ansi_split_bs_rshift #endif //CONFIG_USER_H diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c index ee9a3f3ae5..8b7da51a7a 100644 --- a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c +++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c @@ -2,57 +2,57 @@ #include "talljoe.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = KM( + [_BASE] = KM_( KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV, - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, - MS_MID , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, AD_GRV , - KC_LCTL, KC_LGUI, KC_LALT, NV_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), - [_WORKMAN] = KM( + KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_LBRC, KC_RBRC, KC_BSPC, + MS_MID , _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, KC_ENT , + KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_RSFT, AD_GRV , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC1, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), + [_WORKMAN] = KM_( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______, - _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______, - _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______, + _______, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, _______, _______, _______, + _______, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, _______, _______, + _______, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_NORMAN] = KM( + [_NORMAN] = KM_( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______, - _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______, - _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, + _______, _________________NORMAN_L1_________________, _________________NORMAN_R1_________________, _______, _______, _______, + _______, _________________NORMAN_L2_________________, _________________NORMAN_R2_________________, _______, _______, + _______, _________________NORMAN_L3_________________, _________________NORMAN_R3_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_DVORAK] = KM( + [_DVORAK] = KM_( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, - _______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______, - _______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______, - _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______, + _______, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_SLSH, KC_EQL , _______, + _______, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, _______, + _______, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_COLMAK] = KM( + [_COLMAK] = KM_( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______, - _______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______, - _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______, + _______, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _______, _______, _______, + _______, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _______, _______, + _______, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_GAME] = KM( + [_GAME] = KM_( KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ , KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ), - [_NAV] = KM( + [_NAV] = KM_( KC_GRV , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_INS , KC_PGUP, KC_UP , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL , - XXXXXXX, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , XXXXXXX, TG_ADJ , - KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_END , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, XXXXXXX, + XXXXXXX, ________________NAVLAYER_L1________________, ________________NAVLAYER_R1________________, XXXXXXX, XXXXXXX, KC_DEL , + XXXXXXX, ________________NAVLAYER_L2________________, ________________NAVLAYER_R2________________, XXXXXXX, TG_ADJ , + KC_LSFT, ________________NAVLAYER_L3________________, ________________NAVLAYER_R3________________, KC_RSFT, XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______), // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards) - [_ADJUST] = KM( + [_ADJUST] = KM_( MO_RST , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJ , - TG_NKRO, LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, TG_GAME, XXXXXXX, XXXXXXX, + XXXXXXX, ________________ADJLAYER_L1________________, ________________ADJLAYER_R1________________, XXXXXXX, XXXXXXX, KC_DEL , + XXXXXXX, ________________ADJLAYER_L2________________, ________________ADJLAYER_R2________________, XXXXXXX, TG_ADJ , + TG_NKRO, ________________ADJLAYER_L3________________, ________________ADJLAYER_R3________________, KC_RSFT, XXXXXXX, MO_RST , AG_NORM, AG_SWAP, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS), // To Reset hit FN + ` + Esc - [_RESET] = KM( + [_RESET] = KM_( RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c index 2ea2878b6c..54cdb7470e 100644 --- a/users/talljoe/talljoe.c +++ b/users/talljoe/talljoe.c @@ -18,6 +18,11 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } bool process_record_user(uint16_t keycode, keyrecord_t *record) { +// If console is enabled, it will print the matrix position and status of each key pressed +#ifdef CONSOLE_ENABLE + xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed); +#endif //CONSOLE_ENABLE + switch (keycode) { case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader if (!record->event.pressed) { diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h index 7a2b491bd7..90c223d40f 100644 --- a/users/talljoe/talljoe.h +++ b/users/talljoe/talljoe.h @@ -3,8 +3,6 @@ #include "quantum.h" -#define PREVENT_STUCK_MODIFIERS - enum layers { _BASE = 0, _WORKMAN, @@ -17,10 +15,13 @@ enum layers { _RESET, }; +#define KM_(...) KM(__VA_ARGS__) + #define _______ KC_TRNS #define XXXXXXX KC_NO #define NV_SPC LT(_NAV, KC_SPC) +#define NV_ENT LT(_NAV, KC_ENT) #define AD_GRV LT(_ADJUST, KC_GRV) #define MO_NAV MO(_NAV) @@ -37,9 +38,84 @@ enum layers { #define KC_PTT KC_F24 #define MS_MID KC_MS_BTN3 + +#ifndef SPACE_COUNT + #define SPACE_COUNT 1 +#endif +#if (SPACE_COUNT == 1) + #define KC_SPC1 NV_SPC +#elif (SPACE_COUNT == 3) + #define KC_SPC1 KC_ENT + #define KC_SPC2 TT(_NAV) + #define KC_SPC3 KC_SPC +#else + #error "Unsupported space count:" SPACE_COUNT +#endif + enum userspace_custom_keycodes { KC_MAKE = SAFE_RANGE, // can always be here NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes }; +#define SAFE_RANGE NEW_SAFE_RANGE + +#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 +#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_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D +#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_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O +#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH + + +#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_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_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S +#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_L2________________ KC_A , KC_S , KC_H , KC_T , KC_G +#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_R2________________ KC_Y , KC_N , KC_E , KC_O , KC_I +#define _________________WORKMAN_R3________________ KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH + +#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_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_R2_________________ KC_Y , KC_N , KC_I , KC_O , KC_H +#define _________________NORMAN_R3_________________ KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH + +#define ________________NAVLAYER_L1________________ KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU +#define ________________NAVLAYER_L2________________ KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE +#define ________________NAVLAYER_L3________________ KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD + +#define ________________NAVLAYER_R1________________ KC_INS , KC_PGUP, KC_UP , KC_PGDN, XXXXXXX +#define ________________NAVLAYER_R2________________ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END +#define ________________NAVLAYER_R3________________ KC_END , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX + +#define ________________ADJLAYER_L1________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define ________________ADJLAYER_L2________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define ________________ADJLAYER_L3________________ LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK + +#define ________________ADJLAYER_R1________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define ________________ADJLAYER_R2________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define ________________ADJLAYER_R3________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, TG_GAME + #endif