@ -15,8 +15,6 @@
// pushing dev branch
// pushing dev branch
// git push origin dev:dev
// git push origin dev:dev
static bool mouse_lock = false ;
enum custom_keycodes {
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE , // can always be here
PLACEHOLDER = SAFE_RANGE , // can always be here
EPRM ,
EPRM ,
@ -40,7 +38,12 @@ enum custom_keycodes {
SHELL_SCREEN_LIST ,
SHELL_SCREEN_LIST ,
SHELL_MKE ,
SHELL_MKE ,
SHELL_HTCSTATUS ,
SHELL_HTCSTATUS ,
SHELL_HTCBOUNCE ,
SHELL_DUMPTLOG ,
SHELL_EXPAND_OE_LOGPATTERN ,
SHELL_EXPAND_OE_TRANPATTERN ,
// Cloud9 macros
// Cloud9 macros
CLOUD9_TAB_LEFT ,
CLOUD9_TAB_LEFT ,
CLOUD9_TAB_RIGHT ,
CLOUD9_TAB_RIGHT ,
@ -57,19 +60,15 @@ enum custom_keycodes {
# define KEYSEL 2 // arrow navigation + shift (allow text selection)
# define KEYSEL 2 // arrow navigation + shift (allow text selection)
# define SHELL_NAV 3 // bash shortcuts
# define SHELL_NAV 3 // bash shortcuts
# define SHELL_SCREEN 4 // linux screen shortcuts
# define SHELL_SCREEN 4 // linux screen shortcuts
# define SCREEN_NAV 5 // navigate between linux screen tabs
# define SCREEN_NAV 5 // navigate between linux screen tabs
# define MOUSE 6 // mouse layer (can be locked with lock key), unmapped for now
# define BROWSER_CONTROL 6 // control browser and mouse
# define BROWSER_CONTROL 7 // control browser and mouse
# define COMBINED 7 // combined numbers and symbols layer
# define COMBINED 8 // combined numbers and symbols layer
// macros
// macros
# define MOUSE_TOGGLE 1
# define MOUSE_LOCK 2
# define SCREEN_TAB_LEFT 4
# define SCREEN_TAB_LEFT 4
# define SCREEN_TAB_RIGHT 5
# define SCREEN_TAB_RIGHT 5
# define SCREEN_NEW_TAB 6
# define SCREEN_NEW_TAB 6
# define SWITCH_NDS 7
# define SCREEN_COPY_MODE 8
# define SCREEN_COPY_MODE 8
# define SCREEN_PASTE 9
# define SCREEN_PASTE 9
# define SCREEN_RENAME 10
# define SCREEN_RENAME 10
@ -93,9 +92,8 @@ enum custom_keycodes {
# define SCREEN_PASTEREG_1 28
# define SCREEN_PASTEREG_1 28
# define SCREEN_PASTEREG_2 29
# define SCREEN_PASTEREG_2 29
# define SCREEN_PASTEREG_3 30
# define SCREEN_PASTEREG_3 30
# define SHELL_WRITE_LOGPATTERN 31
# define DEL_TO_HOME 36
# define SHELL_WRITE_TRANPATTERN 32
# define SHELL_EXPAND_PATTERN 33
@ -175,13 +173,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS , MEH ( KC_B ) , CLOUD9_NAVIGATE , CLOUD9_TAB_LEFT , CLOUD9_TAB_RIGHT , CLOUD9_TAB_CLOSE , KC_TRNS ,
KC_TRNS , MEH ( KC_B ) , CLOUD9_NAVIGATE , CLOUD9_TAB_LEFT , CLOUD9_TAB_RIGHT , CLOUD9_TAB_CLOSE , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
// left thumb cluster
// left thumb cluster
KC_TRNS , KC_TRNS , KC_TRNS , TO ( MOUSE ) , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
// right hand
// right hand
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MEH ( KC_G ) ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MEH ( KC_G ) ,
KC_TRNS , KC_NO , KC_HOME , KC_UP , KC_END , KC_PGUP , MEH ( KC_H ) ,
KC_TRNS , KC_NO , KC_HOME , KC_UP , KC_END , KC_PGUP , MEH ( KC_H ) ,
LCTL ( KC_LEFT ) , KC_LEFT , KC_DOWN , KC_RIGHT , LCTL ( KC_RIGHT ) , MEH ( KC_I ) ,
LCTL ( KC_LEFT ) , KC_LEFT , KC_DOWN , KC_RIGHT , LCTL ( KC_RIGHT ) , MEH ( KC_I ) ,
KC_TRNS , KC_NO , RCTL ( KC_C ) , RCTL ( KC_X ) , RCTL ( KC_V ) , KC_PGDOWN , MEH ( KC_J ) ,
KC_TRNS , M ( DEL_TO_HOME ) , RCTL ( KC_C ) , RCTL ( KC_X ) , RCTL ( KC_V ) , KC_PGDOWN , MEH ( KC_J ) ,
KC_BSPC , RCTL ( KC_BSPC ) , KC_DELETE , LCTL ( KC_DELETE ) , MEH ( KC_K ) ,
KC_BSPC , RCTL ( KC_BSPC ) , KC_DELETE , LCTL ( KC_DELETE ) , MEH ( KC_K ) ,
// right thumb cluster
// right thumb cluster
@ -218,7 +217,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[ SHELL_NAV ] = LAYOUT_ergodox (
[ SHELL_NAV ] = LAYOUT_ergodox (
// left hand
// left hand
KC_NO , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_NO , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , SHELL_PGREP , SHELL_PLESS , SHELL_LESS , KC_TRNS, SHELL_H3 ,
KC_TRNS , KC_TRNS , SHELL_PGREP , SHELL_PLESS , SHELL_LESS , SHELL_HTCBOUNCE, SHELL_H3 ,
KC_TRNS , SHELL_MKE , SHELL_CDPRE , SHELL_LSLTR , SHELL_LS , SHELL_LSLA ,
KC_TRNS , SHELL_MKE , SHELL_CDPRE , SHELL_LSLTR , SHELL_LS , SHELL_LSLA ,
KC_TRNS , SHELL_SCREEN_LIST , SHELL_SCREENRD , SHELL_SCREEN_NEW , SHELL_TAILF , SHELL_HTCSTATUS , SHELL_AMMCOLO ,
KC_TRNS , SHELL_SCREEN_LIST , SHELL_SCREENRD , SHELL_SCREEN_NEW , SHELL_TAILF , SHELL_HTCSTATUS , SHELL_AMMCOLO ,
// bottom row
// bottom row
@ -228,10 +227,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS ,
KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS ,
// right hand
// right hand
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , M ( SHELL_WRITE_TRANPATTERN ) ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , SHELL_EXPAND_OE_TRANPATTERN ,
RCTL ( KC_L ) , RCTL ( KC_W ) , KC_HOME , KC_UP , KC_END , KC_TRNS , M ( SHELL_WRITE_LOGPATTERN ) ,
RCTL ( KC_L ) , RCTL ( KC_W ) , KC_HOME , KC_UP , KC_END , KC_TRNS , SHELL_EXPAND_OE_LOGPATTERN ,
LALT ( KC_B ) , KC_LEFT , KC_DOWN , KC_RIGHT , LALT ( KC_F ) , RCTL ( KC_W ) ,
LALT ( KC_B ) , KC_LEFT , KC_DOWN , KC_RIGHT , LALT ( KC_F ) , RCTL ( KC_W ) ,
RCTL ( KC_C ) , RCTL ( KC_U ) , LALT ( KC_DOT ) , RCTL ( KC_R ) , MEH ( KC_V ) , RCTL ( KC_K ) , M ( SHELL_EXPAND_PATTERN ) ,
RCTL ( KC_C ) , RCTL ( KC_U ) , LALT ( KC_DOT ) , RCTL ( KC_R ) , MEH ( KC_V ) , RCTL ( KC_K ) , SHELL_DUMPTLOG ,
// bottom row (match functionality of base layer)
// bottom row (match functionality of base layer)
KC_BSPC , RCTL ( KC_W ) , KC_DELETE , LALT ( KC_D ) , RCTL ( KC_U ) ,
KC_BSPC , RCTL ( KC_W ) , KC_DELETE , LALT ( KC_D ) , RCTL ( KC_U ) ,
// thumb cluster
// thumb cluster
@ -320,30 +319,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS ,
KC_TRNS ,
KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS ) ,
KC_TRNS , KC_TRNS , KC_TRNS ) ,
[ MOUSE ] = LAYOUT_ergodox (
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_PGUP , KC_MS_WH_UP , KC_UP , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_MS_ACCEL0 , KC_PGDN , KC_MS_WH_DOWN , KC_DOWN , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , M ( MOUSE_LOCK ) , KC_TRNS , KC_MS_ACCEL0 ,
KC_TRNS , KC_TRNS ,
KC_TRNS ,
KC_TRNS , KC_BTN3 , KC_TRNS ,
// right hand
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_UP , KC_HOME , KC_MS_U , KC_END , KC_MS_WH_UP , KC_TRNS ,
KC_DOWN , KC_MS_L , KC_MS_D , KC_MS_R , KC_MS_WH_DOWN , KC_TRNS ,
KC_TRNS , MEH ( KC_X ) , MEH ( KC_Y ) , MEH ( KC_Z ) , KC_F5 , RCTL ( KC_W ) , KC_TRNS ,
// browser tab control
RSFT ( RCTL ( KC_TAB ) ) , RCTL ( KC_TAB ) , RCTL ( KC_T ) , LALT ( KC_LEFT ) , KC_TRNS ,
KC_TRNS , KC_TRNS ,
KC_TRNS ,
KC_TRNS , KC_BTN1 , KC_BTN2
) ,
[ BROWSER_CONTROL ] = LAYOUT_ergodox (
[ BROWSER_CONTROL ] = LAYOUT_ergodox (
// left hand
// left hand
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
@ -379,26 +356,6 @@ const uint16_t PROGMEM fn_actions[] = {
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
{
{
switch ( id ) {
switch ( id ) {
case MOUSE_TOGGLE :
if ( record - > event . pressed ) {
layer_on ( MOUSE ) ;
} else {
if ( ! mouse_lock )
layer_off ( MOUSE ) ;
}
break ;
case MOUSE_LOCK :
if ( record - > event . pressed )
{
if ( mouse_lock )
{
mouse_lock = false ;
layer_off ( MOUSE ) ;
}
else
mouse_lock = true ;
}
break ;
case SCREEN_TAB_LEFT :
case SCREEN_TAB_LEFT :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
return MACRO ( D ( LCTL ) , T ( A ) , U ( LCTL ) , T ( P ) , END ) ;
return MACRO ( D ( LCTL ) , T ( A ) , U ( LCTL ) , T ( P ) , END ) ;
@ -478,40 +435,19 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
return MACRO ( D ( LCTL ) , T ( A ) , U ( LCTL ) , T ( RBRC ) , END ) ;
return MACRO ( D ( LCTL ) , T ( A ) , U ( LCTL ) , T ( RBRC ) , END ) ;
}
}
break ;
break ;
case SHELL_WRITE_LOGPATTERN :
case DEL_TO_HOME :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
return MACRO ( D ( LSFT ) ,
return MACRO (
T ( 8 ) ,
// delete to the beginning of the line
T ( 8 ) ,
D ( LSFT ) , T ( HOME ) , U ( LSFT ) ,
U ( LSFT ) ,
T ( DELETE ) ,
T ( L ) ,
END ) ;
T ( O ) ,
}
T ( G ) ,
break ;
T ( LEFT ) ,
T ( LEFT ) ,
T ( LEFT ) ,
T ( LEFT ) ,
END ) ;
}
break ;
case SHELL_WRITE_TRANPATTERN :
if ( record - > event . pressed ) {
return MACRO ( D ( LSFT ) ,
T ( 8 ) ,
T ( 8 ) ,
U ( LSFT ) , T ( T ) , T ( R ) , T ( A ) , T ( N ) , T ( LEFT ) , T ( LEFT ) , T ( LEFT ) , T ( LEFT ) , T ( LEFT ) , END ) ;
}
break ;
case SHELL_EXPAND_PATTERN :
if ( record - > event . pressed ) {
return MACRO ( D ( LALT ) , T ( F ) , U ( LALT ) , D ( LCTL ) , T ( X ) , U ( LCTL ) , D ( LSFT ) , T ( 8 ) , D ( LSFT ) , END ) ;
}
break ;
}
}
return MACRO_NONE ;
return MACRO_NONE ;
} ;
} ;
@ -599,15 +535,29 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true ;
return true ;
break ;
break ;
case SHELL_MKE :
case SHELL_MKE :
SEND_STRING ( " mk e \n " ) ;
SEND_STRING ( " mk i -j8 \n " ) ;
return true ;
return true ;
break ;
break ;
case SHELL_HTCSTATUS :
case SHELL_HTCSTATUS :
SEND_STRING ( " htcStatus -j " ) ;
SEND_STRING ( " htcStatus -j " ) ;
return true ;
return true ;
break ;
break ;
// Cloud9 macros
case SHELL_HTCBOUNCE :
case CLOUD9_TAB_LEFT :
SEND_STRING ( " htcBounce -j " ) ;
return true ;
break ;
case SHELL_EXPAND_OE_LOGPATTERN :
SEND_STRING ( SS_TAP ( X_LEFT ) " *CQW_HKEX " SS_TAP ( X_END ) " *.log " SS_LCTRL ( " x " ) SS_LSFT ( " 8 " ) ) ;
break ;
case SHELL_EXPAND_OE_TRANPATTERN :
SEND_STRING ( SS_TAP ( X_LEFT ) " *CQW_HKEX " SS_TAP ( X_END ) " *.tran " SS_LCTRL ( " x " ) SS_LSFT ( " 8 " ) ) ;
break ;
case SHELL_DUMPTLOG :
SEND_STRING ( " | dumptlog - " ) ;
return true ;
break ;
// Cloud9 macros
case CLOUD9_TAB_LEFT :
SEND_STRING ( SS_LCTRL ( " [ " ) ) ;
SEND_STRING ( SS_LCTRL ( " [ " ) ) ;
return true ;
return true ;
break ;
break ;
@ -664,8 +614,7 @@ void matrix_scan_user(void) {
case SCREEN_NAV :
case SCREEN_NAV :
ergodox_right_led_3_on ( ) ;
ergodox_right_led_3_on ( ) ;
break ;
break ;
case MOUSE :
case BROWSER_CONTROL :
case BROWSER_CONTROL :
ergodox_right_led_2_on ( ) ;
ergodox_right_led_2_on ( ) ;
ergodox_right_led_3_on ( ) ;
ergodox_right_led_3_on ( ) ;
break ;
break ;