|  |  |  | @ -1,7 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  |  | #include QMK_KEYBOARD_H | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | #define MODS_CTRL_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | #define _______ KC_TRNS | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 
			
		
	
	
		
			
				
					|  |  |  | @ -22,101 +20,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,                      _______,  _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,  _______,  BL_DEC,   BL_TOGG,  BL_INC,   BL_STEP,  _______,  _______,  _______,  _______,  _______,            _______,  _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,                      _______,  _______,  _______,                      _______,  _______,  _______,  _______,  _______,  _______ | 
			
		
	
		
			
				
					|  |  |  |  |   ), | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	[2] = LAYOUT( | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  M(1),     M(2),     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,                      _______,  _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______, | 
			
		
	
		
			
				
					|  |  |  |  |     _______,  _______,  _______,                      _______,  _______,  _______,                      _______,  _______,  _______,  _______,  _______,  _______ | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  |   ) | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	switch (id) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	return MACRO_NONE; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void matrix_init_user(void) { | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void matrix_scan_user(void) { | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 
			
		
	
		
			
				
					|  |  |  |  | 	return true; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void led_set_user(uint8_t usb_led) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (usb_led & (1 << USB_LED_NUM_LOCK)) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (usb_led & (1 << USB_LED_CAPS_LOCK)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		DDRB |= (1 << 2); PORTB &= ~(1 << 2); | 
			
		
	
		
			
				
					|  |  |  |  | 	} else { | 
			
		
	
		
			
				
					|  |  |  |  | 		DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (usb_led & (1 << USB_LED_COMPOSE)) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (usb_led & (1 << USB_LED_KANA)) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | enum function_id { | 
			
		
	
		
			
				
					|  |  |  |  |     SHIFT_ESC, | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const uint16_t PROGMEM fn_actions[] = { | 
			
		
	
		
			
				
					|  |  |  |  |   [0]  = ACTION_FUNCTION(SHIFT_ESC), | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | 
			
		
	
		
			
				
					|  |  |  |  |   static uint8_t shift_esc_shift_mask; | 
			
		
	
		
			
				
					|  |  |  |  |   switch (id) { | 
			
		
	
		
			
				
					|  |  |  |  |     case SHIFT_ESC: | 
			
		
	
		
			
				
					|  |  |  |  |       shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; | 
			
		
	
		
			
				
					|  |  |  |  |       if (record->event.pressed) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (shift_esc_shift_mask) { | 
			
		
	
		
			
				
					|  |  |  |  |           add_key(KC_GRV); | 
			
		
	
		
			
				
					|  |  |  |  |           send_keyboard_report(); | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |           add_key(KC_ESC); | 
			
		
	
		
			
				
					|  |  |  |  |           send_keyboard_report(); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |       } else { | 
			
		
	
		
			
				
					|  |  |  |  |         if (shift_esc_shift_mask) { | 
			
		
	
		
			
				
					|  |  |  |  |           del_key(KC_GRV); | 
			
		
	
		
			
				
					|  |  |  |  |           send_keyboard_report(); | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |           del_key(KC_ESC); | 
			
		
	
		
			
				
					|  |  |  |  |           send_keyboard_report(); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |       break; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |