qmk-keychron-q3-colemak-dh/users/wanleg/wanleg.c
wanleg 588b2329cb Wanleg tuneup / additions (#5752)
* 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
2019-05-01 20:29:00 -07:00

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
}