@ -8,15 +8,86 @@
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define MDIA 2  // media keys
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define NAVG 3  // navigation
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  custom_keycodes  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  PLACEHOLDER  =  SAFE_RANGE ,  // can always be here
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  macros  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  RUN 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  function_ids  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EPRM , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  VRSN , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  RGB_SLD 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  RGB_SLD , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  GO_GROUP 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* opt can only be 0-15 */ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  emojis  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SHRUG , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  YAY , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  HUG , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SMILE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SMILE2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  HMM1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  HMM2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  BEAR1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  BEAR2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  FUU , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EGGY1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EGGY2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  FACE1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  FACE2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  UHU , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SMRK1 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  emojis2  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  SMRK2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  LOVE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  progmem_ids  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_SHRUG , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_YAY , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_HUG , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_SMILE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_SMILE2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_HMM1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_HMM2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_BEAR1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_BEAR2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_FUU , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_EGGY1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_EGGY2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_FACE1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_FACE2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_UHU , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_SMRK1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_SMRK2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  EMOJI_LOVE , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  F_EPRM , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  F_VRSN , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  F_RGB_SLD , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_10 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_1 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_2 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_3 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_4 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_5 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_6 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_7 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_8 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  I3_GO_GROUP_9 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Do stuff with hyper and meh keys
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Make macros for gnu screen and i3wm
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Look into using tap dance
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					const  uint16_t  PROGMEM  keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ]  =  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 0: Basic layer
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 * 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -29,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |  Hyper |            |  Meh   | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |  LShift  | Z / Ctrl |    X   |    C   |    V   |    B   |       |            |       |    N   |    M   |    ,   |    .   | //Ctrl| RShift |
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '            ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    | Grv / L1 |   ' "   |AltShf| Lalt | Ralt |                                       | Lalt | Ralt |   [  |   ]  | ~/L1   |
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    | Grv / L1 |   UNI  | AltShf |  Lalt  |  Ralt  |                                        |  Lalt  |  Ralt  |  LEAD  |   UNI  |  ~ / L1   |
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '                                        ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         , - - - - - - - - - - - - - .        , - - - - - - - - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         |  App   |  Home  |        |  PgUp  |   Ins    | 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -45,9 +116,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // left hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						LT ( NAVG , KC_ESC ) ,          KC_1 ,          KC_2 ,    KC_3 ,    KC_4 ,    KC_5 ,    KC_6 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        LT ( SYMB , KC_TAB ) ,         KC_Q ,          KC_W ,    KC_E ,    KC_R ,    KC_T ,    TG ( SYMB ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        KC_LCTL ,         KC_A ,          KC_S ,    KC_D ,    KC_F ,    KC_G , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        KC_LCTL ,         LT ( MDIA ,  KC_A ) ,          KC_S ,    KC_D ,    KC_F ,    KC_G , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        KC_LSFT ,         CTL_T ( KC_Z ) ,   KC_X ,    KC_C ,    KC_V ,    KC_B ,    ALL_T ( KC_NO ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        LT ( SYMB , KC_GRV ) , KC_QUOT ,       LALT ( KC_LSFT ) ,   KC_RALT , KC_LALT , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        LT ( SYMB , KC_GRV ) , LCTL ( LSFT ( KC_U ) ) ,       LALT ( KC_LSFT ) ,   KC_RALT , KC_LALT , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                              ALT_T ( KC_APP ) ,   KC_HOME , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                              KC_END , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                               KC_SPC , KC_TAB , KC_LBRC , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -56,12 +127,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TG ( SYMB ) ,     KC_Y ,    KC_U ,    KC_I ,    KC_O ,    KC_P ,              LT ( SYMB ,  KC_BSLS ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						KC_H ,    KC_J ,    KC_K ,    KC_L ,    LT ( MDIA ,  KC_SCLN ) , CTL_T ( KC_QUOT ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             MEH_T ( KC_NO ) , KC_N ,    KC_M ,    KC_COMM , KC_DOT ,  CTL_T ( KC_SLSH ) ,    KC_RSFT , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_LALT ,   KC_RALT , KC_L BRC, KC_RBRC  ,           LT ( SYMB , KC_TILD ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_LALT ,   KC_RALT , KC_L EAD, LCTL ( LSFT ( KC_U ) )  ,           LT ( SYMB , KC_TILD ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             KC_PGUP ,         KC_INS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             KC_PGDN , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             KC_RBRC , KC_BSPC ,  KC_ENT 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 1: Symbol Layer 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 1: Symbol Layer  LCTL(LSFT(KC_U)) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                                   
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .            , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |   F1   |   F2   |   F3   |   F4   |   F5   |   F6   |            |   F6   |   F7   |   F8   |   F9   |   F10  |   F11  |    F12   | 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -75,11 +146,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    |       |       |       |       |       |                                        |       |     .  |    0   |    =   |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '                                        ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         , - - - - - - - - - - - - - .        , - - - - - - - - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         |       |       |        |       |        | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         | Toggle | Animat |        |  Hue +  |  Hue -   | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  , - - - - - - | - - - - - - | - - - - - - |        | - - - - - - + - - - - - - + - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       |        |        |       |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |        | - - - - - - |        | - - - - - - |  DEL   |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       |       |        |        |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  | Bright | Bright | Solid   |        |       |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  | ness -  | ness +   | - - - - - - |        | - - - - - - |  DEL   |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       |       |        |  EPRM   |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  ` - - - - - - - - - - - - - - - - - - - - '        ` - - - - - - - - - - - - - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 */ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// SYMBOLS
 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -90,27 +161,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , KC_HASH , KC_DLR ,  KC_LPRN , KC_RPRN , KC_GRV , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , KC_PERC , KC_CIRC , KC_LBRC , KC_RBRC , KC_TILD , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       KC_TRNS, KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                               KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                               KC_TRNS, KC_TRNS  , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       RGB_TOG, RGB_MOD  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       F ( F_RGB_SLD ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                               RGB_VAD, RGB_VAI  , KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       // right hand
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_F6 ,  KC_F7 ,    KC_F8 ,   KC_F9 ,    KC_F10 ,    KC_F11 ,   KC_F12 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_UP ,    KC_7 ,    KC_8 ,     KC_9 ,     KC_ASTR ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                KC_DOWN ,  KC_4 ,    KC_5 ,     KC_6 ,     KC_PLUS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_AMPR ,  KC_1 ,    KC_2 ,     KC_3 ,     KC_BSLS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                         KC_TRNS , KC_DOT ,   KC_0 ,     KC_EQL ,   KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS,  KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       RGB_HUD,  RGB_HUI  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_DEL ,  KC_TRNS 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       F ( F_EPRM ) ,  KC_DEL ,  KC_TRNS 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 2: Media  and mouse keys 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 2: Media , mouse and navigation 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 * 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .            , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |        |       |       |       |       |       |            |       |       |       |       |       |       |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |  gg ( 1 ) |       |       |       |       |       |            |       |       |       |       |       |       |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |            | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       |       |  MsUp  |        |       |       |            |       |       |       |        |       |       |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       |       |  MsUp  |  RUN    |       |       |            |       |       |       |   Up    |       |       |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       | MsLeft | MsDown | MsRght |       | - - - - - - |            | - - - - - - |       |       |       |        |       |   Play   | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       | MsLeft | MsDown | MsRght |       | - - - - - - |            | - - - - - - |       |  Left  |  Down  |  Right |       |   Play   | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       |       |       |       |       |       |            |       |       |       |  Prev  |  Next  |       |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '            ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - ' 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -124,10 +195,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       |       |        |       |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  ` - - - - - - - - - - - - - - - - - - - - '        ` - - - - - - - - - - - - - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 */ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// MEDIA  AND MOUSE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// MEDIA  , MOUSE and NAVIGATION 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					[ MDIA ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_MS_U ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS ,  F ( I3_GO_GROUP_1 ) ,  F ( I3_GO_GROUP_2 ) ,  F ( I3_GO_GROUP_3 ) ,  F ( I3_GO_GROUP_4 ) ,  F ( I3_GO_GROUP_5 ) ,  F ( I3_GO_GROUP_6 )  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_MS_U ,  M ( RUN ) ,  KC_TRNS ,  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 , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_BTN1 ,  KC_BTN2 , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -135,9 +206,9 @@ 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 ,  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_MPLY , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							F ( I3_GO_GROUP_6 ) ,  F ( I3_GO_GROUP_7 ) ,  F ( I3_GO_GROUP_8 ) ,  F ( I3_GO_GROUP_9 ) ,  F ( I3_GO_GROUP_10 )  ,  KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,   KC_TRNS ,  KC_TRNS ,  KC_ UP,    KC_TRNS ,    KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 KC_TRNS ,  KC_ LEFT,  KC_DOWN ,  KC_RIGHT  ,  KC_TRNS ,  KC_MPLY , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,   KC_TRNS ,  KC_TRNS ,  KC_MPRV ,  KC_MNXT ,   KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          KC_VOLU ,  KC_VOLD ,  KC_MUTE ,   KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -145,106 +216,270 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_WBAK 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 3:  Navigation TODO: Printscreen, pg up down, home, end, others? Insert for exampl e
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* Keymap 3:  Unicod e
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 * 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .            , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |  VER   |       |       |       |       |       |            |       |       |       |       |       |        |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |   ┌    |   ┐    |   └    |   ┘    |   │    |   ─    |            |   ╔    |   ╗    |   ╚    |   ╝    |   ║    |   ═     |         | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |            | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       |       |   up   |       |       |       |            |       |       |       |       |       |       |          | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |  shrug |  yay   |  hug   |  smile | smile2 |       |            |       |   ■    |   λ    |   →    |   ➙    |   ▻    |   █       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       |  left  |  down  |  right |        | - - - - - - |            | - - - - - - |       |       |       |       |       |          | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |  hmm1  |  hmm2  |  bear1 |  bear2 |  fuu    | - - - - - - |            | - - - - - - |   ☺    |   ☻    |   ☹    |   ♡    |   ♥    |   ░       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |       |       |       |       |       |       |            |       |       |       |       |       |       |          | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  |         |  eggy1 |  eggy2 |  face1 |  face2 |  uhu   |       |            |       |   ❤    |   ☐    |   ☑    |   ☒    |   ✓    |   ▄       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *  ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '            ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    |       |       |       |       |       |                                        |       |       |       |       |        | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    |       |  smrk1 |  smrk2 |  love  |  VER   |                                        |   ✔    |   ✗    |   ✘    |   ●    |   ▀     | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *    ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '                                        ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         , - - - - - - - - - - - - - .        , - - - - - - - - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         |       |       |        |       |        | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                         |       |       |        |    ▒   |   ▓     | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  , - - - - - - | - - - - - - | - - - - - - |        | - - - - - - + - - - - - - + - - - - - - . 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       |       |        |       |       |       |  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       | - - - - - - |        | - - - - - - |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  |       |       |       |        |       |       |       | 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 *                                  ` - - - - - - - - - - - - - - - - - - - - '        ` - - - - - - - - - - - - - - - - - - - - ' 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 */ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//  NAVIGATION 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//  Unicode 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					[ NAVG ]  =  KEYMAP ( 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  VRSN ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_UP ,  KC_TRNS ,  KC_TRNS  ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS ,  KC_LEFT ,  KC_DOWN ,  KC_RGHT ,  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 ,  UC ( 0x250c ) ,  UC ( 0x2510 ) ,  UC ( 0x2514 ) ,  UC ( 0x2518 ) ,  UC ( 0x2502 ) ,  UC ( 0x2500 )  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS ,  F ( EMOJI_SHRUG ) ,  F ( EMOJI_YAY ) ,  F ( EMOJI_HUG ) ,  F ( EMOJI_SMILE ) ,  F ( EMOJI_SMILE2 )  ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS ,  F ( EMOJI_HMM1 ) ,  F ( EMOJI_HMM2 ) ,  F ( EMOJI_BEAR1 ) ,  F ( EMOJI_BEAR2 ) ,  F ( EMOJI_FUU )  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS ,  F ( EMOJI_EGGY1 ) ,  F ( EMOJI_EGGY2 ) ,  F ( EMOJI_FACE1 ) ,  F ( EMOJI_FACE2 ) ,  F ( EMOJI_UHU )  ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS ,  F ( EMOJI_SMRK1 ) ,  F ( EMOJI_SMRK2 ) ,  F ( EMOJI_LOVE ) ,  F ( F_VRSN )  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							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_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_MPRV ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,  KC_TRNS  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       UC ( 0x2554 ) ,   UC ( 0x2557 ) ,  UC ( 0x255a ) ,  UC ( 0x255d ) ,  UC ( 0x2551 ) ,  UC ( 0x2550 ) ,  KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,   UC ( 0x25a0 ) ,  UC ( 0x03bb ) ,  UC ( 0x2192 ) ,  UC ( 0x2799 ) ,  UC ( 0x25bb ) ,  UC ( 0x2588 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 UC ( 0x263a ) ,  UC ( 0x263b ) ,  UC ( 0x2639 ) ,  UC ( 0x2661 ) ,  UC ( 0x2665 ) ,  UC ( 0x2591 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       KC_TRNS ,   UC ( 0x2764 ) ,  UC ( 0x2610 ) ,  UC ( 0x2611 ) ,  UC ( 0x2612 ) ,  UC ( 0x2713 ) ,  UC ( 0x2584 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       UC ( 0x2714 ) ,  UC ( 0x2717 ) ,  UC ( 0x2718 ) ,  UC ( 0x25cf ) ,  UC ( 0x2580 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							UC ( 0x2592 ) ,  UC ( 0x2593 )  , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							KC_TRNS ,  KC_TRNS ,  KC_TRNS 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					const  uint16_t  PROGMEM  fn_actions [ ]  =  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    [ 1 ]  =  ACTION_LAYER_TAP_TOGGLE ( SYMB )                 // FN1 - Momentary Layer 1 (Symbols)
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_SHRUG ]    =  ACTION_FUNCTION_OPT ( EMOJI ,  SHRUG ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_YAY ]      =  ACTION_FUNCTION_OPT ( EMOJI ,  YAY ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_HUG ]      =  ACTION_FUNCTION_OPT ( EMOJI , HUG ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_SMILE ]    =  ACTION_FUNCTION_OPT ( EMOJI , SMILE ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_SMILE2 ]   =  ACTION_FUNCTION_OPT ( EMOJI , SMILE2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_HMM1 ]     =  ACTION_FUNCTION_OPT ( EMOJI , HMM1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_HMM2 ]     =  ACTION_FUNCTION_OPT ( EMOJI , HMM2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_BEAR1 ]    =  ACTION_FUNCTION_OPT ( EMOJI , BEAR1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_BEAR2 ]    =  ACTION_FUNCTION_OPT ( EMOJI , BEAR2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_FUU ]      =  ACTION_FUNCTION_OPT ( EMOJI , FUU ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_EGGY1 ]    =  ACTION_FUNCTION_OPT ( EMOJI , EGGY1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_EGGY2 ]    =  ACTION_FUNCTION_OPT ( EMOJI , EGGY2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_FACE1 ]    =  ACTION_FUNCTION_OPT ( EMOJI , FACE1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_FACE2 ]    =  ACTION_FUNCTION_OPT ( EMOJI , FACE2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_UHU ]      =  ACTION_FUNCTION_OPT ( EMOJI , UHU ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_SMRK1 ]    =  ACTION_FUNCTION_OPT ( EMOJI , SMRK1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_SMRK2 ]    =  ACTION_FUNCTION_OPT ( EMOJI2 , SMRK2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ EMOJI_LOVE ]     =  ACTION_FUNCTION_OPT ( EMOJI2 , LOVE ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ F_EPRM ]         =  ACTION_FUNCTION ( EPRM ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ F_VRSN ]         =  ACTION_FUNCTION ( VRSN ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ F_RGB_SLD ]      =  ACTION_FUNCTION ( RGB_SLD ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_10 ] =  ACTION_FUNCTION_OPT ( GO_GROUP , 0 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_1 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 1 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_2 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 2 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_3 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 3 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_4 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 4 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_5 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 5 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_6 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 6 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_7 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 7 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_8 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 8 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  [ I3_GO_GROUP_9 ]  =  ACTION_FUNCTION_OPT ( GO_GROUP , 9 ) , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					const  macro_t  * action_get_macro ( keyrecord_t  * record ,  uint8_t  id ,  uint8_t  opt ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  // MACRODOWN only works in this function
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      switch ( id )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  0 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          SEND_STRING  ( QMK_KEYBOARD  " / "  QMK_KEYMAP  "  @  "  QMK_VERSION ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( record - > event . pressed )  {  // For resetting EEPROM
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          eeconfig_init ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return  MACRO_NONE ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define TAP_ONCE(code)  \ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  register_code  ( code ) ;  \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  unregister_code  ( code ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					bool  process_record_user ( uint16_t  keycode ,  keyrecord_t  * record )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  switch  ( keycode )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // dynamically generate these.
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  EPRM : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  action_function ( keyrecord_t  * record ,  uint8_t  id ,  uint8_t  opt )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    switch ( id )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  EPRM : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      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 )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # ifdef RGBLIGHT_ENABLE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifdef RGBLIGHT_ENABLE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      rgblight_mode ( 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  GO_GROUP : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      register_code ( KC_LCTL ) ;  TAP_ONCE ( KC_I ) ;  unregister_code ( KC_LCTL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      TAP_ONCE ( KC_G ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      if  ( opt  = =  0 )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE ( 39 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE ( 29 + opt ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  EMOJI : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      switch ( opt )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  SHRUG : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0xaf ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE  ( KC_BSLS ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						register_code  ( KC_RSFT ) ;  TAP_ONCE  ( KC_MINS ) ;  TAP_ONCE  ( KC_9 ) ;  unregister_code  ( KC_RSFT ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start  ( ) ;  register_hex ( 0x30c4 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						register_code  ( KC_RSFT ) ;  TAP_ONCE  ( KC_0 ) ;  TAP_ONCE  ( KC_MINS ) ;  unregister_code  ( KC_RSFT ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE  ( KC_SLSH ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start  ( ) ;  register_hex ( 0xaf ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  YAY : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						SEND_STRING  ( " \\ o/ " ) ; 	
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  HUG : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0f3c ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE  ( KC_SPC ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x3064 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE  ( KC_SPC ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x25d5 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x25d5 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						TAP_ONCE  ( KC_SPC ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0f3d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x3064 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  SMILE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0298 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x203f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0298 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  SMILE2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0298 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x203f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0298 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  HMM1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0ca0 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0ca0 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  HMM2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0ca0 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0ca0 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  BEAR1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0295 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2022 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x1d25 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2022 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0294 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  BEAR2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x1d54 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x1d25 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x1d54 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  FUU : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x256d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2229 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x256e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x002d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x002d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x256d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2229 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x256e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  EGGY1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x256f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x00b0 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x25a1 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x00b0 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0xff09 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x256f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  EGGY2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x30ce ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0020 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x309c ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x002d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x309c ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x30ce ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  FACE1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x002d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x002d ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  FACE2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2022 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2022 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  UHU : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2299 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0xfe4f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2299 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  SMRK1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x032e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x005e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      return  false ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  EMOJI2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      switch ( opt )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						case  SMRK2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						  unicode_input_start ( ) ;  register_hex ( 0x0028 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						  unicode_input_start ( ) ;  register_hex ( 0x005e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						  unicode_input_start ( ) ;  register_hex ( 0x032e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						  unicode_input_start ( ) ;  register_hex ( 0x005e ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						  unicode_input_start ( ) ;  register_hex ( 0x0029 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						  break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  LOVE : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2665 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x203f ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						unicode_input_start ( ) ;  register_hex ( 0x2665 ) ;  unicode_input_finish ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ;    
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  return  true ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					const  macro_t  * action_get_macro ( keyrecord_t  * record ,  uint8_t  id ,  uint8_t  opt )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  if  ( record - > event . pressed )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    switch ( id )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      case  RUN : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						return  MACRO (  D ( LCTL ) ,  T ( I ) ,  U ( LCTL ) ,  T ( R ) ,  END   ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  return  MACRO_NONE ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Runs just one time when the keyboard initializes.
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  matrix_init_user ( void )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  set_unicode_input_mode ( UC_LNX ) ;  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Runs constantly in the background, in a loop.
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  matrix_scan_user ( void )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    uint8_t  layer  =  biton32 ( layer_state ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ergodox_board_led_off ( ) ; 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -254,12 +489,21 @@ void matrix_scan_user(void) {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    switch  ( layer )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      ergodox_right_led_1_on ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # ifdef RGBLIGHT_ENABLE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      rgblight_setrgb ( 0xff , 0x00 , 0x00 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  2 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      ergodox_right_led_2_on ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # ifdef RGBLIGHT_ENABLE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      rgblight_setrgb ( 0x00 , 0xff , 0x00 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  3 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      ergodox_right_led_3_on ( ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # ifdef RGBLIGHT_ENABLE 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					       rgblight_setrgb ( 0x00 , 0x00 , 0xff ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    case  4 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      ergodox_right_led_1_on ( ) ;  // TODO: Make a fourth layer