@ -7,6 +7,12 @@
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// to build this keymap
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// make ergodox_ez:dvorak_42_key:teensy
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// keeping fork up to date:
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// https://help.github.com/articles/configuring-a-remote-for-a-fork/
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// https://help.github.com/articles/syncing-a-fork/
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// pushing dev branch
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// git push origin dev:dev
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  bool  mouse_lock  =  false ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  custom_keycodes  { 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -17,6 +23,7 @@ enum custom_keycodes {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  // shell nav macros
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_LS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_LSLTR , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_LSLA ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_CDPRE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_LESS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_PLESS , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -31,6 +38,15 @@ enum custom_keycodes {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_SCREEN_LIST , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_MKE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHELL_HTCSTATUS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  // Cloud9 macros
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  CLOUD9_TAB_LEFT , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  CLOUD9_TAB_RIGHT , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  CLOUD9_TAB_CLOSE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  CLOUD9_GOTO_SYMBOL , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  CLOUD9_GOTO_LINE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  CLOUD9_NAVIGATE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -39,8 +55,11 @@ enum custom_keycodes {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define KEYSEL       2  // arrow navigation + shift (allow text selection)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SHELL_NAV    3  // bash shortcuts
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SHELL_SCREEN 4  // linux screen shortcuts
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define MOUSE        5  // mouse layer (can be locked with lock key)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define COMBINED     6  // combined numbers and symbols layer
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# 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 7  // control browser and mouse
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define COMBINED      	8  // combined numbers and symbols layer
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// macros
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define MOUSE_TOGGLE 1 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -64,7 +83,18 @@ enum custom_keycodes {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_8 20 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_9 21 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_DETACH 22 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 30 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_UP_JUMP 23 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_DOWN_JUMP 24 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_READREG_1 25 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_READREG_2 26 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_READREG_3 27 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_PASTEREG_1 28 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_PASTEREG_2 29 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SCREEN_PASTEREG_3 30 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SHELL_WRITE_LOGPATTERN 31 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SHELL_WRITE_TRANPATTERN 32 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define SHELL_EXPAND_PATTERN 33 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define MACRO_SCREEN_NUM(MACRO_NAME,NUM) \ 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -73,16 +103,50 @@ enum custom_keycodes {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LCTL ) ,  T ( A ) ,  U ( LCTL ) ,  T ( NUM ) ,  END ) ; \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ; \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define MACRO_SCREEN_REG(MACRO_NAME,NUM) \ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  MACRO_NAME : \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( record - > event . pressed )  { \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LCTL ) ,  T ( A ) ,  U ( LCTL ) ,  D ( LSFT ) ,  T ( SCOLON ) ,  U ( LSFT ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( R ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( E ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( A ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( D ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( R ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( E ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( G ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( SPC ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( NUM ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( ENTER ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                             END ) ; \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ; \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define MACRO_SCREEN_PASTE(MACRO_NAME,NUM)\ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  MACRO_NAME : \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( record - > event . pressed )  { \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LCTL ) ,  T ( A ) ,  U ( LCTL ) ,  D ( LSFT ) ,  T ( SCOLON ) ,  U ( LSFT ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( P ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( A ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( S ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( T ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( E ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( SPC ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( NUM ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( ENTER ) , \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                             END ) ; \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ; \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					const  uint16_t  PROGMEM  keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ]  =  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ BASE ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      KC_ESC ,             KC_F1 ,          KC_F2 ,       KC_F3 ,         KC_F4 ,    KC_F5 ,    KC_F6 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      KC_TAB ,             KC_QUOTE ,       KC_COMMA ,    KC_DOT ,        KC_P ,     KC_Y ,     MEH ( KC_2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      OSL ( SCREEN_NAV ) ,     KC_QUOTE ,       KC_COMMA ,    KC_DOT ,        KC_P ,     KC_Y ,     MEH ( KC_2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      OSL ( SHELL_NAV ) ,     KC_A ,           KC_O ,        KC_E ,          KC_U ,     KC_I , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      OSL ( SHELL_SCREEN ) ,  KC_SCOLON ,      KC_Q ,        KC_J ,          KC_K ,     KC_X ,     MEH ( KC_3 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      MEH ( KC_1 ) ,          OSM ( MOD_LSFT ) ,  OSM ( MOD_LCTL ) ,  M ( MOUSE_TOGGLE ) ,  MO ( KEYSEL ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      MEH ( KC_1 ) ,          OSM ( MOD_LSFT ) ,  OSM ( MOD_LCTL ) ,  M O( KEYSEL ) ,  MO ( BROWSER_CONTRO  L) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      // left thumb cluster
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                MEH ( KC_4 ) ,       MEH ( KC_5 ) , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -91,8 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      // right hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      KC_F7 ,      KC_F8 ,  KC_F9 ,  KC_F10 ,  KC_F11 ,  KC_F12 ,  MEH ( KC_9 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      MEH ( KC_7 ) ,  KC_F ,   KC_G ,   KC_C ,    KC_R ,    KC_L ,    MEH ( KC_F1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 KC_D ,   KC_H ,   KC_T ,    KC_N ,    KC_S ,    MEH( KC_F2  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      MEH ( KC_7 ) ,  KC_F ,   KC_G ,   KC_C ,    KC_R ,    KC_L ,    KC_TAB , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 KC_D ,   KC_H ,   KC_T ,    KC_N ,    KC_S ,    RCTL( KC_BSPC  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      MEH ( KC_8 ) ,  KC_B ,   KC_M ,   KC_W ,    KC_V ,    KC_Z ,    MEH ( KC_F3 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      KC_BSPC ,    RCTL ( KC_BSPC ) ,  KC_CAPSLOCK ,  OSM ( MOD_LSFT ) , MEH ( KC_F4 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -103,11 +167,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ KEYNAV ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , KC_TRNS ,      KC_TRNS ,      KC_TRNS ,       KC_TRNS ,     KC_TRNS ,      KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , KC_ESC ,       MEH ( KC_F9 ) ,    RCTL ( KC_Z ) ,    RCTL ( KC_S ) ,  MEH ( KC_F10 ) ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , MEH ( KC_F11 ) ,  MEH ( KC_F12 ) ,  RSFT ( KC_TAB ) ,  KC_TAB ,      MEH ( KC_A ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , MEH ( KC_B ) ,    MEH ( KC_C ) ,    MEH ( KC_D ) ,     MEH ( KC_E ) ,   MEH ( KC_F ) ,     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 , KC_ESC ,       CLOUD9_GOTO_LINE ,     RCTL ( KC_Z ) ,         RCTL ( KC_S ) ,         MEH ( KC_F10 ) ,        KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , KC_LSFT ,      CLOUD9_GOTO_SYMBOL ,  RSFT ( KC_TAB ) ,      KC_TAB ,             MEH ( KC_A ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    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 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // left thumb cluster
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , KC_TRNS , KC_TRNS , TO ( MOUSE ) , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -130,7 +194,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS , MEH ( KC_L ) ,  MEH ( KC_M ) , MEH ( KC_N ) ,  MEH ( KC_O ) ,  MEH ( KC_P ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS , MEH ( KC_Q ) ,  MEH ( KC_R ) , MEH ( KC_S ) ,  MEH ( KC_T ) ,  MEH ( KC_U ) ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   // bottom row
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   RESET , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                           // thumb cluster
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                           KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                   KC_TRNS , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -151,9 +215,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  // shell navigation layer
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ SHELL_NAV ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_ TRNS,  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 , SHELL_MKE ,          SHELL_CDPRE ,     SHELL_LSLTR ,       SHELL_LS ,     SHELL_ PWD , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       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 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					               // bottom row
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					               KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -162,10 +226,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                               KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                               KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // right hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,     KC_TRNS ,     KC_TRNS ,              KC_TRNS ,          KC_TRNS ,     KC_TRNS ,     M ( S WITCH_NDS ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       RCTL ( KC_L ) ,  RCTL ( KC_W ) ,  KC_HOME ,              KC_UP ,            KC_END ,      KC_TRNS ,     RCTL( KC_R  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   LALT ( KC_B ) ,  KC_LEFT ,              KC_DOWN ,          KC_RIGHT ,    LALT ( KC_F ) ,  LALT( KC_DOT  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       RCTL ( KC_C ) ,  RCTL ( KC_U ) ,  M( SCREEN_COPY_MODE ) ,  M ( SCREEN_PASTE ) ,   MEH ( KC_V ) ,   RCTL ( KC_K ) ,  M ( SHELL_ RECALL_LAST_ARG_REMOVE_FIRST_COMMAND ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,     KC_TRNS ,     KC_TRNS ,              KC_TRNS ,          KC_TRNS ,     KC_TRNS ,     M ( S HELL_WRITE_TRANPATTERN ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       RCTL ( KC_L ) ,  RCTL ( KC_W ) ,  KC_HOME ,              KC_UP ,            KC_END ,      KC_TRNS ,     M( SHELL_WRITE_LOGPATTERN  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   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 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   // bottom row (match functionality of base layer)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   KC_BSPC ,     RCTL ( KC_W ) ,           KC_DELETE ,        LALT ( KC_D ) ,  RCTL ( KC_U ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // thumb cluster
 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -178,7 +242,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // linux screen layer
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ SHELL_SCREEN ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_ TRNS,  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 ,     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 ,      KC_TRNS ,      KC_TRNS ,      KC_TRNS ,    KC_TRNS , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -201,6 +265,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_TRNS 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  // navigation within screen (for copy/paste)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ SCREEN_NAV ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_NO ,   KC_TRNS ,     KC_TRNS ,               KC_TRNS ,      		  KC_TRNS ,                KC_TRNS ,    KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , KC_TRNS ,     M ( SCREEN_READREG_3 ) ,   M ( SCREEN_READREG_2 ) ,   M ( SCREEN_READREG_1 ) ,    KC_TRNS ,    KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , KC_TRNS ,     M ( SCREEN_PASTEREG_3 ) ,  M ( SCREEN_PASTEREG_2 ) ,  M ( SCREEN_PASTEREG_1 ) ,   KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , KC_TRNS ,     KC_TRNS ,      		 KC_TRNS ,      	      KC_TRNS ,                KC_TRNS ,    KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					               // bottom row
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					               KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       // thumb cluster
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                               KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                               KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // right hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,     KC_TRNS ,     KC_TRNS ,         KC_TRNS ,          KC_TRNS ,          KC_TRNS ,     		  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,     KC_TRNS ,     KC_0 ,            KC_UP ,            KC_DLR ,           M ( SCREEN_UP_JUMP ) ,    KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   KC_B ,        KC_LEFT ,         KC_DOWN ,          KC_RIGHT ,    	 KC_W ,        		  M ( SCREEN_COPY_MODE ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,     KC_TRNS ,     S ( KC_W ) ,         S ( KC_Y ) ,          M ( SCREEN_PASTE ) ,  M ( SCREEN_DOWN_JUMP ) ,  MEH ( KC_V ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   // bottom row (match functionality of base layer)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                   KC_TRNS ,     KC_TRNS ,         KC_TRNS ,          KC_TRNS ,     KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // thumb cluster
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_TRNS 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ COMBINED ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -222,7 +315,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // bottom row 
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          KC_0 ,     KC_DOT ,   KC_PIPE ,  KC_BSLS ,      MEH ( KC_P ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // thumb cluster
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						KC_TRNS , KC_TRNS , KC_TAB ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    [ MOUSE ]  =  KEYMAP ( 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -246,6 +341,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_BTN1 ,  KC_BTN2 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ) ,   
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    [ BROWSER_CONTROL ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							   // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_TRNS ,       KC_TRNS ,        KC_TRNS ,        KC_TRNS ,       KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_TRNS ,       KC_BTN3 ,        KC_MS_U ,        KC_BTN1 ,       KC_BTN2 ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_TRNS ,       KC_MS_L ,        KC_MS_D ,        KC_MS_R ,       KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_TRNS ,       KC_TRNS ,        KC_TRNS ,        KC_TRNS ,       KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							   // bottom row
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_TRNS ,       KC_TRNS ,        KC_TRNS ,        KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                               KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                        KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                      KC_TRNS ,  KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          // right hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,   KC_TRNS ,    KC_TRNS ,             KC_TRNS ,       KC_TRNS ,        KC_TRNS ,        KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,   KC_UP ,      KC_PGUP ,             KC_PGDN ,       KC_MS_WH_UP ,    KC_TRNS ,        KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     KC_DOWN ,    RSFT ( RCTL ( KC_TAB ) ) ,  RCTL ( KC_TAB ) ,  KC_MS_WH_DOWN ,  LALT ( KC_LEFT ) ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,   KC_TRNS ,    RCTL ( KC_1 ) ,          RCTL ( KC_9 ) ,    KC_F6 ,          KC_F5 ,          KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                // bottom row
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                KC_TRNS ,             KC_TRNS ,       KC_TRNS ,        KC_TRNS ,        KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					           KC_TRNS ,  RCTL ( KC_W ) ,  RCTL ( KC_T ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ) ,   	
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -317,6 +436,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }                                 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ;         
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							MACRO_SCREEN_REG ( SCREEN_READREG_1 , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							MACRO_SCREEN_REG ( SCREEN_READREG_2 , 2 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							MACRO_SCREEN_REG ( SCREEN_READREG_3 , 3 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							MACRO_SCREEN_PASTE ( SCREEN_PASTEREG_1 , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							MACRO_SCREEN_PASTE ( SCREEN_PASTEREG_2 , 2 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							MACRO_SCREEN_PASTE ( SCREEN_PASTEREG_3 , 3 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MACRO_SCREEN_NUM ( SCREEN_0 , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MACRO_SCREEN_NUM ( SCREEN_1 , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MACRO_SCREEN_NUM ( SCREEN_2 , 2 ) ; 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -328,6 +455,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MACRO_SCREEN_NUM ( SCREEN_8 , 8 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MACRO_SCREEN_NUM ( SCREEN_9 , 9 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  SCREEN_UP_JUMP : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  T ( 5 ) ,  T ( UP ) ,  END ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } 		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  SCREEN_DOWN_JUMP : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  T ( 5 ) ,  T ( DOWN ) ,  END ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } 		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ; 		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  SCREEN_COPY_MODE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LCTL ) ,  T ( A ) ,  U ( LCTL ) ,  T ( ESC ) ,  END ) ; 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -338,23 +477,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LCTL ) ,  T ( A ) ,  U ( LCTL ) ,  T ( RBRC ) ,  END ) ;  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ;         
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  SWITCH_NDS : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  SHELL_WRITE_LOGPATTERN : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LSFT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( F11 ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              U ( LSFT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              W ( 255 ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              D ( LALT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              T ( TAB ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              U ( LALT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                              END ) ;  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }                                 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ;         
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  D ( LSFT ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( 8 ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									              T ( 8 ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  U ( LSFT ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( L ) ,   
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( O ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( G ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( LEFT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( LEFT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( LEFT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  T ( LEFT ) ,  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
												  END ) ;  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } 		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  SHELL_WRITE_TRANPATTERN : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                return  MACRO (  T ( UP ) ,  T ( HOME ) ,  D ( LALT ) ,  T ( D ) ,  U ( LALT ) ,  END ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ;                                 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                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 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -393,6 +548,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( " ls -ltr \n " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  SHELL_LSLA : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( " ls -la \n " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  SHELL_CDPRE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( " cd .. \n " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -445,6 +604,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( " htcStatus -j  " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            break ;                
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							// Cloud9 macros
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  CLOUD9_TAB_LEFT : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( SS_LCTRL ( " [ " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  CLOUD9_TAB_RIGHT : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( SS_LCTRL ( " ] " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 				
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  CLOUD9_TAB_CLOSE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( SS_LALT ( " w " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 				
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  CLOUD9_GOTO_SYMBOL : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( SS_LSFT ( SS_LCTRL ( " e " ) ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  CLOUD9_GOTO_LINE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( SS_LCTRL ( " g " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 						
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  CLOUD9_NAVIGATE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SEND_STRING ( SS_LCTRL ( " e " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  true ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  		
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -474,9 +659,11 @@ void matrix_scan_user(void) {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  SHELL_SCREEN : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  KEYNAV : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  KEYSEL : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  SCREEN_NAV : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ergodox_right_led_3_on ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  MOUSE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							case  BROWSER_CONTROL : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ergodox_right_led_2_on ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ergodox_right_led_3_on ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            break ;