* change split keyboard tapping term in userspace * fix 5x15 layout numpad movement * minor changes for Nori setup * edit based on 40percentclub refactor change * fix gherkin due to refactor * kbd6x wanleg keymap * kbd6x edits * kbd6x tweak * fn / backlight layer * fix jj40 rgb hex issue * wanleg gherkin lighting * 4x12 layout cleanup * move kbd6x to new kbdfans directory * minor edit related to new kbdfans directory * mac layout for kbd6x * gherkin flip option * tweak tapping term on lets_split * edit for keebio board coalescing * update user readme with git hints * wanleg miniaxe keymap * testing Permissive Hold instead of Mod Tap Interrupt * wiring names * kbd6x keymap * change default backlight behaviour on kbd6x * userspace underglow * userspace underglow * underglow tweaks * user readme update * more layer underglow tweaks * fix userspace for non-underglow-enabled boards * readme edits * readme edits * readme edits * readme edits * Update readme.md * Update readme.md * readme edits * readme edits * update keymap picture
		
			
				
	
	
		
			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 RESET:
 | 
						|
      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_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
 | 
						|
}
 |