@ -28,21 +28,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define QWERTY 0
# define COLEMAK 1
# define DVORAK 2
# define SYMB 3
# define OVERWATCH 4
# define DIABLO 5
# define MOUS 6
# define WORKMAN 3
# define SYMB 8
# define OVERWATCH 9
# define DIABLO 10
# define MOUS 12
/ / Leader Key stuff
# ifdef LEADER_TIMEOUT
# undef LEADER_TIMEOUT
# endif
# define LEADER_TIMEOUT 1500
/ / define modifiers
# 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_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
/ / define macro keycodes
# define M_VERSION M(0)
# define M_MAKE M(1)
/ / define layer change stuff for underglow indicator
bool skip_leds = false ;
@ -54,6 +55,7 @@ bool skip_leds = false;
# define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
# define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
# define rgblight_set_urine rgblight_sethsv (0x3C, 0xFF, 0xFF);
# define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
/ / This is both for underglow , and Diablo 3 macros
static uint8_t current_layer = 0 ;
@ -70,28 +72,30 @@ bool check_dtimer(uint8_t dtimer) {
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE , / / can always be here
EPRM ,
VRSN ,
RGB_SLD ,
RGB_0000FF ,
RGB_008000 ,
RGB_FF0000 ,
RGB_800080 ,
RGB_00FF90 ,
PLACEHOLDER = SAFE_RANGE , / / can always be here
EPRM ,
VRSN ,
RGB_SLD ,
RGB_0000FF ,
RGB_008000 ,
RGB_FF0000 ,
RGB_800080 ,
RGB_00FF90 ,
KC_DIABLO_CLEAR ,
KC_QWERTY ,
KC_COLEMAK ,
KC_DVORAK
KC_DVORAK ,
KC_WORKMAN ,
KC_MAKEQMK
} ;
# ifdef TAP_DANCE_ENABLE
enum {
TD_FLSH = 0 ,
TD_DIABLO_1 ,
TD_DIABLO_2 ,
TD_DIABLO_3 ,
TD_DIABLO_4
TD_FLSH = 0 ,
TD_DIABLO_1 ,
TD_DIABLO_2 ,
TD_DIABLO_3 ,
TD_DIABLO_4
} ;
@ -101,43 +105,43 @@ enum {
/ / on the forth tap , turn them off from right to left
void dance_flsh_each ( qk_tap_dance_state_t * state , void * user_data ) {
if ( ! skip_leds ) {
ergodox_board_led_off ( ) ;
ergodox_right_led_1_off ( ) ;
ergodox_right_led_2_off ( ) ;
ergodox_right_led_3_off ( ) ;
skip_leds = true ;
}
switch ( state - > count ) {
case 1 :
ergodox_right_led_1_on ( ) ;
if ( ! skip_leds ) {
ergodox_board_led_off ( ) ;
ergodox_right_led_1_off ( ) ;
ergodox_right_led_2_off ( ) ;
ergodox_right_led_3_off ( ) ;
skip_leds = true ;
}
switch ( state - > count ) {
case 1 :
ergodox_right_led_1_on ( ) ;
break ;
case 2 :
ergodox_right_led_2_on ( ) ;
break ;
case 3 :
ergodox_right_led_3_on ( ) ;
break ;
case 4 :
ergodox_right_led_1_off ( ) ;
_delay_ms ( 50 ) ;
ergodox_right_led_2_off ( ) ;
_delay_ms ( 50 ) ;
ergodox_right_led_3_off ( ) ;
}
ergodox_right_led_2_on ( ) ;
break ;
case 3 :
ergodox_right_led_3_on ( ) ;
break ;
case 4 :
ergodox_right_led_1_off ( ) ;
_delay_ms ( 50 ) ;
ergodox_right_led_2_off ( ) ;
_delay_ms ( 50 ) ;
ergodox_right_led_3_off ( ) ;
}
}
/ / on the fourth tap , set the keyboard on flash state
/ / and set the underglow to red , because red = = bad
void dance_flsh_finished ( qk_tap_dance_state_t * state , void * user_data ) {
if ( state - > count > = 4 ) {
if ( state - > count > = 4 ) {
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0xff , 0x00 , 0x00 ) ;
reset_keyboard ( ) ;
reset_tap_dance ( state ) ;
}
reset_keyboard ( ) ;
reset_tap_dance ( state ) ;
}
}
/ / Cycle through the times for the macro , starting at 0 , for disabled .
@ -172,20 +176,20 @@ void diablo_tapdance4 (qk_tap_dance_state_t *state, void *user_data) {
/ / if the flash state didnt happen , then turn off leds , left to right
void dance_flsh_reset ( qk_tap_dance_state_t * state , void * user_data ) {
_delay_ms ( 200 ) ;
ergodox_right_led_3_off ( ) ;
_delay_ms ( 200 ) ;
ergodox_right_led_2_off ( ) ;
_delay_ms ( 200 ) ;
ergodox_right_led_1_off ( ) ;
_delay_ms ( 500 ) ;
skip_leds = false ;
_delay_ms ( 200 ) ;
ergodox_right_led_3_off ( ) ;
_delay_ms ( 200 ) ;
ergodox_right_led_2_off ( ) ;
_delay_ms ( 200 ) ;
ergodox_right_led_1_off ( ) ;
_delay_ms ( 500 ) ;
skip_leds = false ;
}
/ / Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions [ ] = {
/ / Once for Blue , Twice for Green , Thrice for Red , and four to flash
[ TD_FLSH ] = ACTION_TAP_DANCE_FN_ADVANCED ( dance_flsh_each , dance_flsh_finished , dance_flsh_reset ) ,
/ / Once for Blue , Twice for Green , Thrice for Red , and four to flash
[ TD_FLSH ] = ACTION_TAP_DANCE_FN_ADVANCED ( dance_flsh_each , dance_flsh_finished , dance_flsh_reset ) ,
/ / tap once to disable , and more to enable timed micros
[ TD_DIABLO_1 ] = ACTION_TAP_DANCE_FN ( diablo_tapdance1 ) ,
[ TD_DIABLO_2 ] = ACTION_TAP_DANCE_FN ( diablo_tapdance2 ) ,
@ -219,26 +223,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ` - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - '
*/
[ QWERTY ] = KEYMAP (
KC_EQUAL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TG ( MOUS ) ,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , TG ( DIABLO ) ,
KC_BSPACE , KC_A , KC_S , KC_D , KC_F , KC_G ,
KC_LSHIFT , CTL_T ( KC_Z ) , KC_X , KC_C , KC_V , KC_B , TG ( OVERWATCH ) ,
LT ( SYMB , KC_GRAVE ) , KC_QUOTE , KC_LGUI , KC_LBRACKET , KC_RBRACKET ,
KC_EQUAL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TG ( MOUS ) ,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , TG ( DIABLO ) ,
KC_BSPACE , KC_A , KC_S , KC_D , KC_F , KC_G ,
KC_LSHIFT , L CTL_T( KC_Z ) , KC_X , KC_C , KC_V , KC_B , TG ( OVERWATCH ) ,
LT ( SYMB , KC_GRAVE ) , KC_QUOTE , KC_LGUI , KC_LBRACKET , KC_RBRACKET ,
ALT_T ( KC_APPLICATION ) , KC_LGUI ,
ALT_T ( KC_APPLICATION ) , KC_LEAD ,
KC_HOME ,
KC_SPACE , KC_BSPACE , KC_END ,
TG ( SYMB ) , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINUS ,
TG ( DVORAK ) , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSLASH ,
KC_SPACE , KC_BSPACE , KC_END ,
TG ( MOUS ) , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINUS ,
TG ( DIABLO ) , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSLASH ,
KC_H , KC_J , KC_K , KC_L , KC_SCOLON , GUI_T ( KC_QUOTE ) ,
TG ( COLEMAK ) , KC_N , KC_M , KC_COMMA , KC_DOT , CTL_T ( KC_SLASH ) , KC_RSHIFT ,
TG ( OVERWATCH ) , KC_N , KC_M , KC_COMMA , KC_DOT , R CTL_T( KC_SLASH ) , KC_RSHIFT ,
KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_FN1 ,
KC_LALT , CTL_T ( KC_ESCAPE ) ,
KC_PGUP ,
KC_PGDOWN , KC_DELETE , KC_ENTER
) ,
/* Keymap 1 : Basic layer
KC_LALT , CTL_T ( KC_ESCAPE ) ,
KC_PGUP ,
KC_PGDOWN , KC_DELETE , KC_ENTER
) ,
/* Keymap 0 : Basic layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT | 6 | 7 | 8 | 9 | 0 | - |
@ -264,24 +268,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[ COLEMAK ] = KEYMAP (
/ / left hand
KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TG ( MOUS ) ,
KC_DEL T , KC_Q , KC_W , KC_F , KC_P , KC_G , TG ( DIABLO ) ,
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , TG ( DIABLO ) ,
KC_BSPC , KC_A , KC_R , KC_S , KC_T , KC_D ,
KC_LSFT , CTL_T ( KC_Z ) , KC_X , KC_C , KC_V , KC_B , TG ( OVERWATCH ) ,
KC_LSFT , L CTL_T( KC_Z ) , KC_X , KC_C , KC_V , KC_B , TG ( OVERWATCH ) ,
LT ( SYMB , KC_GRV ) , KC_QUOT , KC_LGUI , KC_LBRACKET , KC_RBRACKET ,
ALT_T ( KC_APP ) , KC_LGUI ,
ALT_T ( KC_APP ) , KC_LEAD ,
KC_HOME ,
KC_SPC , KC_BSPC , KC_END ,
/ / right hand
KC_TRNS , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS ,
TG ( DVORAK ) , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_BSLS ,
KC_H , KC_N , KC_E , KC_I , LT ( MOUS , KC_O ) , KC_QUOTE ,
TG ( COLEMAK ) , KC_K , KC_M , KC_COMM , KC_DOT , CTL_T ( KC_SLASH ) , KC_RSHIFT ,
KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_FN1 ,
TG ( MOUS ) , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS ,
TG ( DIABLO ) , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_BSLS ,
KC_H , KC_N , KC_E , KC_I , KC_O , GUI_T ( KC_QUOTE ) ,
TG ( OVERWATCH ) , KC_K , KC_M , KC_COMM , KC_DOT , R CTL_T( KC_SLASH ) , KC_RSHIFT ,
KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_FN1 ,
KC_LALT , CTL_T ( KC_ESC ) ,
KC_PGUP ,
KC_PGDN , KC_TAB , KC_ENT
KC_PGDN , KC_DELETE , KC_ENT
) ,
/* Keymap 2 : Basic layer
/* Keymap 0 : Basic layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT | 6 | 7 | 8 | 9 | 0 | \ |
@ -307,22 +311,65 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[ DVORAK ] = KEYMAP (
/ / left hand
KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TG ( MOUS ) ,
KC_DEL T , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , TG ( DIABLO ) ,
KC_TAB , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , TG ( DIABLO ) ,
KC_BSPC , KC_A , KC_O , KC_E , KC_U , KC_I ,
KC_LSFT , CTL_T ( KC_SCLN ) , KC_Q , KC_J , KC_K , KC_X , TG ( OVERWATCH ) ,
KC_LSFT , L CTL_T( KC_SCLN ) , KC_Q , KC_J , KC_K , KC_X , TG ( OVERWATCH ) ,
LT ( SYMB , KC_GRV ) , KC_QUOT , KC_LGUI , KC_LBRACKET , KC_RBRACKET ,
ALT_T ( KC_APP ) , KC_LGUI ,
ALT_T ( KC_APP ) , KC_LEAD ,
KC_HOME ,
KC_SPC , KC_BSPC , KC_END ,
/ / right hand
KC_TRNS , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSLS ,
TG ( DVORAK ) , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH ,
KC_D , KC_H , KC_T , KC_N , LT ( MOUS , KC_S ) , KC_MINS ,
TG ( COLEMAK ) , KC_B , KC_M , KC_W , KC_V , CTL_T ( KC_Z ) , KC_RSHIFT ,
KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_FN1 ,
TG ( MOUS ) , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSLS ,
TG ( DIABLO ) , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH ,
KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS ,
TG ( OVERWATCH ) , KC_B , KC_M , KC_W , KC_V , R CTL_T( KC_Z ) , KC_RSHIFT ,
KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_FN1 ,
KC_LALT , CTL_T ( KC_ESC ) ,
KC_PGUP ,
KC_PGDN , KC_TAB , KC_ENT
KC_PGDN , KC_DELETE , KC_ENT
) ,
/* Keymap 0: Basic layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT | 6 | 7 | 8 | 9 | 0 | - |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | BkSp | A | R | S | T | D | - - - - - - | | - - - - - - | H | N | E | I | O / L2 | ' |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | OVER | | Meh | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | LShift | Z / Ctrl | X | C | V | B | | | | K | M | , | . | / / Ctrl | RShift |
* ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - '
* | Grv / L1 | ' " |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | App | LGui | | Alt | Ctrl / Esc |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - - - + - - - - - - .
* | | | Home | | PgUp | | |
* | Space | Backsp | - - - - - - | | - - - - - - | Tab | Enter |
* | | ace | End | | PgDn | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - '
*/
/ / If it accepts an argument ( i . e , is a function ) , it doesn ' t need KC_ .
/ / Otherwise , it needs KC_ *
[ WORKMAN ] = KEYMAP (
/ / left hand
KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TG ( MOUS ) ,
KC_TAB , KC_Q , KC_D , KC_R , KC_W , KC_B , TG ( DIABLO ) ,
KC_BSPC , KC_A , KC_S , KC_H , KC_T , KC_G ,
KC_LSFT , LCTL_T ( KC_Z ) , KC_X , KC_M , KC_C , KC_V , TG ( OVERWATCH ) ,
LT ( SYMB , KC_GRV ) , KC_QUOT , KC_LGUI , KC_LBRACKET , KC_RBRACKET ,
ALT_T ( KC_APP ) , KC_LEAD ,
KC_HOME ,
KC_SPC , KC_BSPC , KC_END ,
/ / right hand
TG ( MOUS ) , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS ,
TG ( DIABLO ) , KC_J , KC_F , KC_U , KC_P , KC_SCLN , KC_BSLS ,
KC_Y , KC_N , KC_E , KC_O , KC_I , KC_QUOTE ,
TG ( OVERWATCH ) , KC_K , KC_L , KC_COMM , KC_DOT , RCTL_T ( KC_SLASH ) , KC_RSHIFT ,
KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_FN1 ,
KC_LALT , CTL_T ( KC_ESC ) ,
KC_PGUP ,
KC_PGDN , KC_DELETE , KC_ENT
) ,
/* Keymap 3: Symbol Layer
@ -347,24 +394,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ SYMB ] = KEYMAP (
KC_ESCAPE , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS ,
M_VERSION , KC_EXLM , KC_AT , KC_LCBR , KC_RCBR , KC_PIPE , KC_TRNS ,
M_MAKE , KC_HASH , KC_DLR , KC_LPRN , KC_RPRN , KC_GRAVE ,
TD ( TD_FLSH ) , KC_PERC , KC_CIRC , KC_LBRACKET , KC_RBRACKET , KC_TILD , KC_TRNS ,
KC_NO , KC_AMPR , KC_ASTR , KC_COLN , KC_SCOLON ,
KC_TRNS , KC_TRNS ,
KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS ,
KC_QWERTY , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
KC_DVORAK , KC_KP_PLUS , KC_KP_7 , KC_KP_8 , KC_KP_9 , KC_KP_ASTERISK , KC_F12 ,
KC_KP_MINUS , KC_KP_4 , KC_KP_5 , KC_KP_6 , KC_KP_SLASH , KC_PSCREEN ,
KC_COLEMAK , KC_NUMLOCK , KC_KP_1 , KC_KP_2 , KC_KP_3 , KC_EQUAL , KC_PAUSE ,
KC_KP_0 , KC_KP_0 , KC_KP_DOT , KC_KP_ENTER , KC_TRNS ,
RGB_TOG , RGB_SLD ,
KC_NO ,
KC_KP_DOT , KC_KP_0 , KC_KP_ENTER
) ,
KC_ESCAPE , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_WORKMAN ,
VRSN , KC_EXLM , KC_AT , KC_LCBR , KC_RCBR , KC_PIPE , KC_DVORAK ,
KC_MAKEQMK , KC_HASH , KC_DLR , KC_LPRN , KC_RPRN , KC_GRAVE ,
TD ( TD_FLSH ) , KC_PERC , KC_CIRC , KC_LBRACKET , KC_RBRACKET , KC_TILD , KC_COLEMAK ,
KC_NO , KC_AMPR , KC_ASTR , KC_COLN , KC_SCOLON ,
KC_TRNS , KC_TRNS ,
KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS ,
KC_QWERTY , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
KC_DVORAK , KC_KP_PLUS , KC_KP_7 , KC_KP_8 , KC_KP_9 , KC_KP_ASTERISK , KC_F12 ,
KC_KP_MINUS , KC_KP_4 , KC_KP_5 , KC_KP_6 , KC_KP_SLASH , KC_PSCREEN ,
KC_COLEMAK , KC_NUMLOCK , KC_KP_1 , KC_KP_2 , KC_KP_3 , KC_EQUAL , KC_PAUSE ,
KC_KP_0 , KC_KP_0 , KC_KP_DOT , KC_KP_ENTER , KC_TRNS ,
RGB_TOG , RGB_SLD ,
KC_NO ,
KC_KP_DOT , KC_KP_0 , KC_KP_ENTER
) ,
/* Keymap 4: Customized Overwatch Layout
*
@ -388,24 +435,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ OVERWATCH ] = KEYMAP (
KC_ESCAPE , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_F1 , KC_K , KC_Q , KC_W , KC_E , KC_R , KC_T ,
KC_TAB , KC_G , KC_A , KC_S , KC_D , KC_F ,
KC_LCTL , KC_LSHIFT , KC_Z , KC_X , KC_C , KC_V , KC_TRNS ,
KC_G , KC_U , KC_I , KC_Y , KC_T ,
KC_ESCAPE , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_F1 , KC_K , KC_Q , KC_W , KC_E , KC_R , KC_T ,
KC_TAB , KC_G , KC_A , KC_S , KC_D , KC_F ,
KC_LCTL , KC_LSHIFT , KC_Z , KC_X , KC_C , KC_V , KC_TRNS ,
KC_G , KC_U , KC_I , KC_Y , KC_T ,
KC_O , KC_P ,
KC_LGUI ,
KC_V , KC_SPACE , KC_H ,
KC_NO , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_N , KC_M , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_TRNS , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
TG ( OVERWATCH ) , KC_N , KC_M , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO ,
KC_NO ,
KC_NO , KC_NO ,
KC_NO ,
KC_PGDOWN , KC_DELETE , KC_ENTER
) ,
) ,
/* Keymap 3:
*
@ -429,25 +476,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ DIABLO ] = KEYMAP (
KC_ESCAPE , KC_V , KC_D , KC_LALT , KC_NO , KC_NO , KC_NO ,
KC_TAB , KC_S , KC_F , KC_I , KC_M , KC_T , KC_TRNS ,
KC_Q , KC_1 , KC_2 , KC_3 , KC_4 , KC_G ,
KC_LCTL , TD ( TD_DIABLO_1 ) , TD ( TD_DIABLO_2 ) , TD ( TD_DIABLO_3 ) , TD ( TD_DIABLO_4 ) , KC_Z , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_ESCAPE , KC_V , KC_D , KC_LALT , KC_NO , KC_NO , KC_NO ,
KC_TAB , KC_S , KC_F , KC_I , KC_M , KC_T , KC_TRNS ,
KC_Q , KC_1 , KC_2 , KC_3 , KC_4 , KC_G ,
KC_LCTL , TD ( TD_DIABLO_1 ) , TD ( TD_DIABLO_2 ) , TD ( TD_DIABLO_3 ) , TD ( TD_DIABLO_4 ) , KC_Z , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_L , KC_J ,
KC_F ,
SFT_T ( KC_SPACE ) , ALT_T ( KC_Q ) , KC_DIABLO_CLEAR ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO ,
KC_NO ,
KC_NO , KC_NO , KC_NO
) ,
KC_TRNS , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_NO , KC_NO ,
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_N , KC_M , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO ,
KC_NO ,
KC_PGDOWN , KC_DELETE , KC_ENTER
) ,
/* Keymap 4: Media and mouse keys
*
@ -458,37 +506,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | MsLeft | MsDown | MsRght | | | - - - - - - | | - - - - - - | | | Acc0 | Acc1 | Acc2 | |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | Acc0 | Acc1 | Acc2 | | | | | | Play | Stop | Mute | VolDn | VolUp | |
* | | Acc0 | Acc1 | Acc2 | | | | | | | Mute | VolDn | VolUp | | |
* ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - '
* | | | | | | | | | | | |
* | | | | | | | Play | Stop | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | | | | | |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | | | MWUp | | | | |
* | Lclk | Rclk | - - - - - - | | - - - - - - | MBn4 | MBn4 |
* | Lclk | Rclk | - - - - - - | | - - - - - - | MBn4 | MBn5 |
* | | | MWDn | | Mclk | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ MOUS ] = KEYMAP (
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS ,
KC_NO , KC_NO , KC_MS_UP , KC_NO , KC_NO , KC_NO , KC_TRNS ,
KC_NO , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_NO , KC_NO ,
KC_NO , KC_MS_ ACCE L0 , KC_MS_ ACCE L1 , KC_MS_ ACCE L2 , KC_NO , KC_NO , KC_TRNS ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS ,
KC_NO , KC_NO , KC_MS_U , KC_NO , KC_NO , KC_NO , KC_TRNS ,
KC_NO , KC_MS_L , KC_MS_D , KC_MS_R , KC_NO , KC_NO ,
KC_NO , KC_ACL0 , KC_ACL1 , KC_ACL2 , KC_NO , KC_NO , KC_TRNS ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO ,
KC_MS_WH_UP ,
KC_MS_BTN1 , KC_MS_BTN2 , KC_MS_WH_DOWN ,
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_MS_ACCEL0 , KC_MS_ACCEL1 , KC_MS_ACCEL2 , KC_NO , KC_NO ,
KC_TRNS , KC_MEDIA_PLAY_PAUSE , KC_MEDIA_STOP , KC_AUDIO_MUTE , KC_AUDIO_VOL_DOWN , KC_AUDIO_VOL_UP , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO ,
KC_NO ,
KC_MS_BTN3 , KC_MS_BTN4 , KC_MS_BTN5
) ,
KC_NO , KC_NO ,
KC_WH_U ,
KC_BTN1 , KC_BTN2 , KC_WH_D ,
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_ACL0 , KC_ACL1 , KC_ACL2 , KC_NO , KC_NO ,
KC_TRNS , KC_NO , KC_MUTE , KC_VOLD , KC_VOLU , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO ,
KC_NO ,
KC_MS_BTN3 , KC_MS_BTN4 , KC_MS_BTN5
) ,
} ;
@ -502,23 +550,6 @@ void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
}
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
{
switch ( id ) {
case 0 :
if ( record - > event . pressed ) {
/ / Output Keyboard Firmware info
SEND_STRING ( QMK_KEYBOARD " / " QMK_KEYMAP " @ " QMK_VERSION ) ;
return false ;
}
case 1 :
if ( record - > event . pressed ) {
/ / make ergodox - ez - drashna - custom - teensy
return MACRO ( I ( 5 ) , T ( M ) , T ( A ) , T ( K ) , T ( E ) , T ( SPACE ) , T ( E ) , T ( R ) , T ( G ) , T ( O ) , T ( D ) , T ( O ) , T ( X ) , D ( LSFT ) , T ( MINUS ) , U ( LSFT ) , T ( E ) , T ( Z ) , T ( MINUS ) , T ( D ) , T ( R ) , T ( A ) , T ( S ) , T ( H ) , T ( N ) , T ( A ) , T ( MINUS ) , T ( C ) , T ( U ) , T ( S ) , T ( T ) , T ( O ) , T ( M ) , T ( MINUS ) , T ( T ) , T ( E ) , T ( E ) , T ( N ) , T ( S ) , T ( Y ) , T ( ENTER ) , END ) ;
}
}
return MACRO_NONE ;
} ;
void persistent_default_layer_set ( uint16_t default_layer ) {
eeconfig_update_default_layer ( default_layer ) ;
@ -527,81 +558,81 @@ void persistent_default_layer_set(uint16_t default_layer) {
bool process_record_user ( uint16_t keycode , keyrecord_t * record ) {
switch ( keycode ) {
/ / dynamically generate these .
case EPRM :
if ( record - > event . pressed ) {
switch ( keycode ) {
/ / dynamically generate these .
case EPRM :
if ( record - > event . pressed ) {
eeconfig_init ( ) ;
}
return false ;
break ;
case VRSN :
if ( record - > event . pressed ) {
SEND_STRING ( QMK_KEYBOARD " / " QMK_KEYMAP " @ " QMK_VERSION ) ;
}
return false ;
break ;
case RGB_SLD :
if ( record - > event . pressed ) {
rgblight_mode ( 1 ) ;
}
return false ;
break ;
case RGB_0000FF :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x00 , 0x00 , 0xff ) ;
# endif
}
return false ;
break ;
case RGB_008000 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x00 , 0x80 , 0x00 ) ;
# endif
}
return false ;
break ;
case RGB_FF0000 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0xff , 0x00 , 0x00 ) ;
# endif
}
return false ;
break ;
case RGB_800080 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x80 , 0x00 , 0x80 ) ;
# endif
}
return false ;
break ;
case RGB_00FF90 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x00 , 0xff , 0x90 ) ;
# endif
}
return false ;
break ;
}
return false ;
break ;
case VRSN :
if ( record - > event . pressed ) {
SEND_STRING ( QMK_KEYBOARD " / " QMK_KEYMAP " @ " QMK_VERSION ) ;
}
return false ;
break ;
case RGB_SLD :
if ( record - > event . pressed ) {
rgblight_mode ( 1 ) ;
}
return false ;
break ;
case RGB_0000FF :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x00 , 0x00 , 0xff ) ;
# endif
}
return false ;
break ;
case RGB_008000 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x00 , 0x80 , 0x00 ) ;
# endif
}
return false ;
break ;
case RGB_FF0000 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0xff , 0x00 , 0x00 ) ;
# endif
}
return false ;
break ;
case RGB_800080 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x80 , 0x00 , 0x80 ) ;
# endif
}
return false ;
break ;
case RGB_00FF90 :
if ( record - > event . pressed ) {
# ifdef RGBLIGHT_ENABLE
rgblight_enable ( ) ;
rgblight_mode ( 1 ) ;
rgblight_setrgb ( 0x00 , 0xff , 0x90 ) ;
# endif
}
return false ;
break ;
case KC_DIABLO_CLEAR : / / reset all Diable timers , disabling them
if ( record - > event . pressed ) {
uint8_t dtime ;
@ -630,9 +661,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false ;
break ;
case KC_WORKMAN :
if ( record - > event . pressed ) {
persistent_default_layer_set ( 1UL < < WORKMAN ) ;
}
return false ;
break ;
case KC_MAKEQMK :
if ( record - > event . pressed ) {
SEND_STRING ( " make ergodox_ez:drashna-custom:teensy " SS_TAP ( X_ENTER ) ) ;
}
return false ;
break ;
}
return true ;
}
return true ;
}
@ -674,33 +717,30 @@ void matrix_init_user(void) { // Runs boot tasks for keyboard
} ;
LEADER_EXTERNS ( ) ;
void matrix_scan_user ( void ) { / / runs frequently to update info
uint8_t modifiders = get_mods ( ) ;
uint8_t layer = biton32 ( layer_state ) ;
bool l_dvorak = false ;
bool l_colemak = false ;
static bool has_layer_changed = true ;
static bool has_layer_changed = true ;
if ( ! skip_leds ) {
ergodox_board_led_off ( ) ;
ergodox_right_led_1_off ( ) ;
ergodox_right_led_2_off ( ) ;
ergodox_right_led_3_off ( ) ;
if ( ! skip_leds ) {
ergodox_board_led_off ( ) ;
ergodox_right_led_1_off ( ) ;
ergodox_right_led_2_off ( ) ;
ergodox_right_led_3_off ( ) ;
/ / Since we ' re not using the LEDs here for layer indication anymore ,
/ / then lets use them for modifier indicators . Shame we don ' t have 4. . .
/ / Also , no " else " , since we want to know each , independantly .
/ / Since we ' re not using the LEDs here for layer indication anymore ,
/ / then lets use them for modifier indicators . Shame we don ' t have 4. . .
/ / Also , no " else " , since we want to know each , independantly .
if ( modifiders & MODS_SHIFT_MASK ) {
ergodox_right_led_1 _on ( ) ;
ergodox_right_led_2 _on( ) ;
}
if ( modifiders & MODS_CTRL_MASK ) {
ergodox_right_led_2 _on ( ) ;
ergodox_right_led_1 _on( ) ;
}
if ( modifiders & MODS_ALT_MASK ) {
ergodox_right_led_3_on ( ) ;
ergodox_right_led_3_on ( ) ;
}
}
@ -713,12 +753,6 @@ void matrix_scan_user(void) { // runs frequently to update info
uint8_t default_layer = 0 ;
default_layer = eeconfig_read_default_layer ( ) ;
if ( default_layer & ( 1UL < < DVORAK ) ) {
l_dvorak = true ;
}
else if ( default_layer & ( 1UL < < COLEMAK ) ) {
l_colemak = true ;
}
switch ( layer ) {
case SYMB :
rgblight_set_blue ;
@ -734,22 +768,21 @@ void matrix_scan_user(void) { // runs frequently to update info
break ;
case MOUS :
rgblight_set_urine ;
break ;
case COLEMAK :
rgblight_set_magenta ;
break ;
case DVORAK :
rgblight_set_green ;
rgblight_mode ( 1 ) ;
break ;
case 7 :
rgblight_sethsv ( 255 , 255 , 255 ) ;
rgblight_mode ( 1 ) ;
break ;
default :
if ( l_colemak ) {
if ( default_layer & ( 1UL < < COLEMAK ) ) {
rgblight_set_green ;
}
else if ( default_layer & ( 1UL < < DVORAK ) ) {
rgblight_set_magenta ;
}
else if ( l_dvorak ) {
rgblight_set_green ;
else if ( default_layer & ( 1UL < < WORKMAN ) ) {
rgblight_set_purple ;
}
else {
rgblight_set_teal ;
@ -760,7 +793,28 @@ void matrix_scan_user(void) { // runs frequently to update info
has_layer_changed = false ;
}
/ / Run Diablo 3 macro checking code .
/ / Run Diablo 3 macro checking code .
run_diablo_macro_check ( ) ;
# ifdef LEADER_KEYS
LEADER_DICTIONARY ( ) {
leading = false ;
leader_end ( ) ;
SEQ_ONE_KEY ( KC_C ) {
SEND_STRING ( " Covecube " ) ;
}
SEQ_TWO_KEYS ( KC_S , KC_D ) {
SEND_STRING ( " StableBit DrivePool " ) ;
}
SEQ_TWO_KEYS ( KC_C , KC_D ) {
SEND_STRING ( " StableBit CloudDrive " ) ;
}
SEQ_TWO_KEYS ( KC_S , KC_C ) {
SEND_STRING ( " StableBit Scanner " ) ;
}
SEQ_TWO_KEYS ( KC_S , KC_T ) {
SEND_STRING ( " StableBit Troubleshooter " ) ;
}
}
# endif
} ;