mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-27 11:06:37 +06:00
588b2329cb
* 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
|
|
}
|