177 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "wanleg.h"
 | 
						|
 | 
						|
// Defines actions for my global custom keycodes. Defined in wanleg.h file
 | 
						|
// Then runs the _keymap's record handier if not processed here
 | 
						|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
						|
  switch (keycode) {
 | 
						|
    case QWERTY:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        set_single_persistent_default_layer(_QW);
 | 
						|
		#if defined(RGBLIGHT_ENABLE)
 | 
						|
		rgblight_sethsv_noeeprom(0,0,128);
 | 
						|
        rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
 | 
						|
		#endif
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case GHERKIN:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        set_single_persistent_default_layer(_GK);
 | 
						|
		#if defined(RGBLIGHT_ENABLE)
 | 
						|
        rgblight_sethsv_noeeprom(128,255,64);
 | 
						|
		#endif
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case gGHERKIN:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        set_single_persistent_default_layer(gGK);
 | 
						|
		#if defined(RGBLIGHT_ENABLE)
 | 
						|
        rgblight_sethsv_noeeprom(128,255,128);
 | 
						|
        rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT);
 | 
						|
		#endif
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case ONEHAND:
 | 
						|
    if (record->event.pressed) {
 | 
						|
      set_single_persistent_default_layer(ONE);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case NUMPAD:
 | 
						|
    if (record->event.pressed) {
 | 
						|
      set_single_persistent_default_layer(PAD);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case GHERKIN50:
 | 
						|
    if (record->event.pressed) {
 | 
						|
      set_single_persistent_default_layer(GK50);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case SUBTER:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(SUB);
 | 
						|
      } else {
 | 
						|
        layer_off(SUB);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
    case SUPRA:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(SUP);
 | 
						|
      } else {
 | 
						|
        layer_off(SUP);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
	case NUMBER:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(NUM);
 | 
						|
      } else {
 | 
						|
        layer_off(NUM);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
	case DIRECTION:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(DIR);
 | 
						|
      } else {
 | 
						|
        layer_off(DIR);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
	case ETCETERA:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(ETC);
 | 
						|
      } else {
 | 
						|
        layer_off(ETC);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
  case gNUMBER:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(gNUM);
 | 
						|
      } else {
 | 
						|
        layer_off(gNUM);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
  case gDIRECTION:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(gDIR);
 | 
						|
      } else {
 | 
						|
        layer_off(gDIR);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
	case gETCETERA:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(gETC);
 | 
						|
      } else {
 | 
						|
        layer_off(gETC);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
	case FUNCTION:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        layer_on(_FN);
 | 
						|
      } else {
 | 
						|
        layer_off(_FN);
 | 
						|
      }
 | 
						|
      return false;
 | 
						|
      break;
 | 
						|
  //on RESET, underglow red if present
 | 
						|
  case QK_BOOT:
 | 
						|
      if (record->event.pressed) {
 | 
						|
		  #if defined(RGBLIGHT_ENABLE)
 | 
						|
		  rgblight_enable_noeeprom(); // enables Rgb, without saving settings
 | 
						|
		  rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
 | 
						|
		  rgblight_sethsv_noeeprom(HSV_RED);
 | 
						|
		  #endif
 | 
						|
      }
 | 
						|
      return true; // Let QMK send the press/release events as normal
 | 
						|
      break;
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
/// Turn off LEDs on ProMicros of Let's Split ///
 | 
						|
// LEDs only on by default on Let's Split
 | 
						|
// Add reconfigurable functions here, for keymap customization
 | 
						|
// This allows for a global, userspace functions, and continued
 | 
						|
// customization of the keymap.  Use _keymap instead of _user
 | 
						|
// functions in the keymaps
 | 
						|
__attribute__ ((weak))
 | 
						|
void matrix_init_keymap(void) {}
 | 
						|
 | 
						|
// Call user matrix init, then call the keymap's init function
 | 
						|
void matrix_init_user(void) {
 | 
						|
//turn off pro micro LEDs
 | 
						|
#if defined(KEYBOARD_lets_split_rev2)
 | 
						|
  DDRD &= ~(1<<5);
 | 
						|
  PORTD &= ~(1<<5);
 | 
						|
 | 
						|
  DDRB &= ~(1<<0);
 | 
						|
  PORTB &= ~(1<<0);
 | 
						|
#endif
 | 
						|
 | 
						|
//disable backlight breathing for keyboard using random flashing RGB LEDs for backlight
 | 
						|
//(breathing provides insufficient power to integrated LED IC)
 | 
						|
#if defined(KEYBOARD_kbdfans_kbd6x) && defined(BACKLIGHT_BREATHING)
 | 
						|
  breathing_disable();
 | 
						|
#endif
 | 
						|
  matrix_init_keymap();
 | 
						|
}
 | 
						|
 | 
						|
//at end of firmware startup process, change powerup default layer and underglow colour for kbd6x
 | 
						|
void keyboard_post_init_user(void) {
 | 
						|
  #if defined(KEYBOARD_kbdfans_kbd6x)
 | 
						|
    set_single_persistent_default_layer(_QW);
 | 
						|
    rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 5);
 | 
						|
    rgblight_sethsv_noeeprom(0,0,128);
 | 
						|
  #endif
 | 
						|
}
 |