@ -34,24 +34,6 @@
# define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 15
# define SEMICOLON_NEWLINE 16
# define END_NEWLINE 17
# define DUAL_CAPSLOCK 18
static uint16_t capslock_timer ;
const uint16_t PROGMEM fn_actions [ ] = {
[ 1 ] = ACTION_LAYER_TAP_TOGGLE ( KEY_NAV ) , // FN1 - keynav layer
[ 2 ] = ACTION_LAYER_TAP_TOGGLE ( NUMBER ) , // FN2 - number layer
[ 3 ] = ACTION_MODS_ONESHOT ( MOD_LSFT ) , // FN3 - shift modifier / oneshot
[ 4 ] = ACTION_MODS_ONESHOT ( MOD_LCTL ) , // FN4 - ctrl modifier / oneshot
[ 5 ] = ACTION_MODS_ONESHOT ( MOD_LALT ) , // FN5 - alt modifier / oneshot
} ;
//Tap Dance Declarations
enum {
TD_SHIFT_CAPSLOCK = 0 ,
TD_BRK_LEFT = 1 ,
TD_BRK_RIGHT = 2
} ;
@ -61,9 +43,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 ,
KC_TAB , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , MO ( KEY_SEL ) ,
M ( DUAL_CAPSLOCK ) , KC_A , KC_O , KC_E , KC_U , KC_I ,
OSM( MOD_LSFT ) , KC_SCLN , KC_Q , KC_J , KC_K , KC_X , MO ( KEY_NAV ) ,
OSL ( SHORTCUTS ) , KC_FN4 , KC_FN5 , OSL ( SYMBOL ) , MO ( NUMBER ) ,
M O( BRACKETS ) , KC_A , KC_O , KC_E , KC_U , KC_I ,
MO( SHELL_NAV ) , KC_SCLN , KC_Q , KC_J , KC_K , KC_X , MO ( KEY_NAV ) ,
OSL ( SHORTCUTS ) , OSM ( MOD_LCTL ) , OSM ( MOD_LALT ) , OSL ( SYMBOL ) , MO ( NUMBER ) ,
// thumb cluster
MO ( MOUSE ) , RCTL ( KC_S ) ,
RCTL ( KC_DEL ) ,
@ -72,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_BSLS ,
KC_PGUP , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH ,
KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS ,
KC_PGDN , KC_B , KC_M , KC_W , KC_V , KC_Z , TD( TD_SHIFT_CAPSLOCK ) ,
KC_PGDN , KC_B , KC_M , KC_W , KC_V , KC_Z , OSM( MOD_LSFT ) ,
// lower keys - browser tab control
RSFT ( RCTL ( KC_TAB ) ) , RCTL ( KC_TAB ) , RCTL ( KC_T ) , LALT ( KC_LEFT ) , RCTL ( KC_W ) ,
// thumb cluster
@ -246,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MEH ( KC_F7 ) , MEH ( KC_F8 ) , MEH ( KC_F9 ) , MEH ( KC_F10 ) , MEH ( KC_F11 ) , MEH ( KC_F12 ) , M ( SWITCH_NDS ) ,
KC_TRNS , MEH ( KC_A ) , MEH ( KC_B ) , MEH ( KC_C ) , MEH ( KC_D ) , MEH ( KC_E ) , MEH ( KC_F ) ,
MEH ( KC_G ) , MEH ( KC_H ) , MEH ( KC_I ) , MEH ( KC_J ) , MEH ( KC_K ) , MEH ( KC_L ) ,
KC_TRNS , MEH ( KC_M ) , MEH ( KC_N ) , MEH ( KC_O ) , MEH ( KC_P ) , MEH ( KC_Q ) , MEH ( KC_R ) ,
KC_TRNS , MEH ( KC_M ) , MEH ( KC_N ) , MEH ( KC_O ) , MEH ( KC_P ) , MEH ( KC_Q ) , KC_CAPSLOCK ,
MEH ( KC_S ) , MEH ( KC_T ) , MEH ( KC_U ) , MEH ( KC_V ) , MEH ( KC_X ) ,
MEH ( KC_6 ) , MEH ( KC_7 ) ,
MEH ( KC_8 ) ,
@ -372,20 +354,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO ( T ( END ) , T ( ENTER ) , END ) ;
}
break ;
case DUAL_CAPSLOCK :
if ( record - > event . pressed ) {
if ( timer_elapsed ( capslock_timer ) < 300 ) {
// activate SHELL_NAV
layer_on ( SHELL_NAV ) ;
} else {
layer_on ( BRACKETS ) ;
}
} else {
layer_off ( SHELL_NAV ) ;
layer_off ( BRACKETS ) ;
capslock_timer = timer_read ( ) ;
}
break ;
}
@ -406,13 +374,6 @@ void led_set_user(uint8_t usb_led) {
}
}
qk_tap_dance_action_t tap_dance_actions [ ] = {
[ TD_SHIFT_CAPSLOCK ] = ACTION_TAP_DANCE_DOUBLE ( KC_LSFT , KC_CAPSLOCK ) ,
[ TD_BRK_LEFT ] = ACTION_TAP_DANCE_DOUBLE ( KC_LPRN , KC_LCBR ) ,
[ TD_BRK_RIGHT ] = ACTION_TAP_DANCE_DOUBLE ( KC_RPRN , KC_RCBR )
} ;
// Runs constantly in the background, in a loop.
void matrix_scan_user ( void ) {