# include  "ergodox.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "debug.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "action_layer.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define BASE 0  // default layer
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define SYMB 1  // symbols
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define MDIA 2  // media keys
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								const  uint16_t  PROGMEM  keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ]  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Keymap 0: Basic layer
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .            , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |    `     |    1   |    2   |    3   |    4   |    5   |   F5   |            | Hypr + M |    6   |    7   |    8   |    9   |    0   |  Mute    | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |            | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |  Tab     |    Q   |    W   |    E   |    R   |    T   |   [    |            |    ]   |    Y   |    U   |    I   |    O   |    P   |    \     | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |  LGui    |    A   |    S   |    D   |    F   |    G   | - - - - - - |            | - - - - - - |    H   |    J   |    K   |    L   |    ;   |    '     | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |  SYMB  |            |  MDIA  | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |  LShift  |    Z   |    X   |    C   |    V   |    B   |       |            |       |    N   |    M   |    ,   |    .   |    /   |  RShift  | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '            ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    | Ca / Ctl |    {   |    (   |    |   |    :   |                                        |    -   |    =   |    )   |    }   | C ` / Ctl | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '                                        ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                         , - - - - - - - - - - - - - .        , - - - - - - - - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                         |  LGA   |  LAlt  |        |  RAlt  |  Play  | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  , - - - - - - | - - - - - - | - - - - - - |        | - - - - - - + - - - - - - + - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       |  Home  |        |  PgUp  |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  | Backsp |  Esc   | - - - - - - |        | - - - - - - | Enter  | Space  | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  | ace    |       |  End   |        |  PgDn  |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  ` - - - - - - - - - - - - - - - - - - - - '        ` - - - - - - - - - - - - - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// If it accepts an argument (i.e, is a function), it doesn't need KC_.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Otherwise, it needs KC_*
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ BASE ]  =  KEYMAP (   // layer 0 : default
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // left hand
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        KC_GRV ,            KC_1 ,          KC_2 ,    KC_3 ,    KC_4 ,    KC_5 ,    KC_F5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        KC_TAB ,            KC_Q ,          KC_W ,    KC_E ,    KC_R ,    KC_T ,    KC_LBRC , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        KC_LGUI ,           KC_A ,          KC_S ,    KC_D ,    KC_F ,    KC_G , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        KC_LSFT ,           KC_Z ,          KC_X ,    KC_C ,    KC_V ,    KC_B ,    TG ( SYMB ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        F ( 0 ) ,              KC_LCBR ,       KC_LPRN , KC_PIPE , KC_COLN , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                               LGUI ( KC_LALT ) ,  KC_LALT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                                              KC_HOME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                     KC_BSPC ,          KC_ESC ,   KC_END , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // right hand
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             HYPR ( KC_M ) ,      KC_6 ,    KC_7 ,     KC_8 ,      KC_9 ,       KC_0 ,       KC_MUTE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             KC_RBRC ,     KC_Y ,    KC_U ,     KC_I ,      KC_O ,       KC_P ,       KC_BSLS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                         KC_H ,    KC_J ,     KC_K ,      KC_L ,       KC_SCLN ,    KC_QUOT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             TG ( MDIA ) ,    KC_N ,    KC_M ,     KC_COMM ,   KC_DOT ,     KC_SLSH ,    KC_RSFT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                 KC_MINS ,  KC_EQL ,    KC_RPRN ,    KC_RCBR ,    F ( 1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             KC_RALT ,  KC_MPLY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             KC_PGUP , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             KC_PGDN ,  KC_ENT ,  KC_SPC 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Keymap 1: Symbol Layer
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .            , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |   F1   |   F2   |   F3   |   F4   |   F5   |       |            |       |   F6   |   F7   |   F8   |   F9   |   F10  |    F11   | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |            | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |    !   |    @   |    {   |    }   |    |   |       |            |       |       |       |       |       |       |    F12   | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |    #   |    $   |    (   |    )   |    `   | - - - - - - |            | - - - - - - |  Left  |  Down  |   Up   |  Right |       |         | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |    %   |    ^   |    [   |    ]   |    ~   |       |            |       |       |       |       |       |       |         | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '            ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    |       |       |       |       |       |                                        |       |       |       |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '                                        ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                         , - - - - - - - - - - - - - .        , - - - - - - - - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                         |       |       |        |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  , - - - - - - | - - - - - - | - - - - - - |        | - - - - - - + - - - - - - + - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       |       |        |       |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       | - - - - - - |        | - - - - - - |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       |       |        |       |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  ` - - - - - - - - - - - - - - - - - - - - '        ` - - - - - - - - - - - - - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// SYMBOLS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ SYMB ]  =  KEYMAP ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       // left hand
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS , KC_F1 ,   KC_F2 ,   KC_F3 ,   KC_F4 ,   KC_F5 ,   KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS , KC_EXLM , KC_AT ,   KC_LCBR , KC_RCBR , KC_PIPE , KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       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 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       // right hand
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS ,  KC_F6 ,    KC_F7 ,     KC_F8 ,    KC_F9 ,     KC_F10 ,   KC_F11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS ,  KC_TRNS ,  KC_TRNS ,   KC_TRNS ,  KC_TRNS ,   KC_TRNS ,  KC_F12 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                KC_LEFT ,  KC_DOWN ,   KC_UP ,    KC_RIGHT ,  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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Keymap 2: Media and mouse keys
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .            , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |       |       |       |       |       |       |            |       |       |       |       |       |       |         | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |            | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |       |       |       |       |       |       |            |       |       |       |       |       |       |         | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |       |       |       |       |       | - - - - - - |            | - - - - - - | MsLeft | MsDown |  MsUp  | MsRght |       |         | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - |       |            |       | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  |         |       |       |       |       |       |       |            |       |       |       |       |       |       |         | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  ` - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '            ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    | VolUp  | VolDn  |  Prev  |  Next  |       |                                        |  LClk  |  RClk  |       |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '                                        ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                         , - - - - - - - - - - - - - .        , - - - - - - - - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                         |       |       |        |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  , - - - - - - | - - - - - - | - - - - - - |        | - - - - - - + - - - - - - + - - - - - - . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       |       |        |       |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       | - - - - - - |        | - - - - - - |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  |       |       |       |        |       |       |       | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *                                  ` - - - - - - - - - - - - - - - - - - - - '        ` - - - - - - - - - - - - - - - - - - - - ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// MEDIA AND MOUSE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ MDIA ]  =  KEYMAP ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       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 ,  KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_VOLU ,  KC_VOLD ,  KC_MPRV ,  KC_MNXT ,  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_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 KC_MS_L ,  KC_MS_D ,  KC_MS_U ,  KC_MS_R ,  KC_TRNS ,  KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS ,   KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                          KC_BTN1 ,  KC_BTN2 ,  KC_TRNS ,  KC_TRNS ,  KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS ,  KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       KC_TRNS ,  KC_TRNS ,  KC_WBAK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								const  uint16_t  PROGMEM  fn_actions [ ]  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  [ 0 ]  =  ACTION_MACRO_TAP ( 0 ) ,                 // FN0 - Ctrl + a (For screen/tmux)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  [ 1 ]  =  ACTION_MACRO_TAP ( 1 )                  // FN1 - Ctrl + ` (For quake style console)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								const  macro_t  * action_get_macro ( keyrecord_t  * record ,  uint8_t  id ,  uint8_t  opt )  // this is the function signature -- just copy/paste it into your keymap file as it is.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  switch ( id )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    case  0 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      if  ( record - > event . pressed )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( record - > tap . count )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          if  ( record - > tap . interrupted )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            record - > tap . count  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            // hold press action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            register_code ( KC_LCTL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            // tap press action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  MACRO (  D ( LCTL ) ,  T ( A ) ,  U ( LCTL ) ,  END   ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          // hold press action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          register_code ( KC_LCTL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( record - > tap . count )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          // tap release action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          // hold release action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          unregister_code ( KC_LCTL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        record - > tap . count  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    case  1 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      if  ( record - > event . pressed )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( record - > tap . count )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          if  ( record - > tap . interrupted )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            record - > tap . count  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            // hold press action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            register_code ( KC_RCTL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            // tap press action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  MACRO (  DOWN ( KC_RCTL ) ,  TYPE ( KC_GRV ) ,  UP ( KC_RCTL ) ,  END   ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          // hold press action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          register_code ( KC_RCTL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( record - > tap . count )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          // tap release action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          // hold release action
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          unregister_code ( KC_RCTL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        record - > tap . count  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return  MACRO_NONE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Runs just one time when the keyboard initializes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  matrix_init_user ( void )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Runs constantly in the background, in a loop.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  matrix_scan_user ( void )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    uint8_t  layer  =  biton32 ( layer_state ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ergodox_board_led_off ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ergodox_right_led_1_off ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ergodox_right_led_2_off ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ergodox_right_led_3_off ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    switch  ( layer )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      // TODO: Make this relevant to the ErgoDox EZ.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        case  1 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ergodox_right_led_1_on ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        case  2 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ergodox_right_led_2_on ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            // none
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ;