qmk-keychron-q3-colemak-dh/users/wanleg/wanleg.c
wanleg 6f6d28fa8d Big Switch and 5x5 edits (#4168)
* 4x4 - pro micro version

* pro-micro setup on 4x4

* tap dance LCTL/RESET key

* remove test file

* more research

* revert a couple un-intended edits

* opt_defs version of adding custom rules.mk variables

* cleanup

* cleanup

* cleanup

* cleanup

* layout edits

* layout edits

* keymap edit

* numpad layout change

* got tap dance layer-switch working

* keymap changes

* temporary revert

* restore previous settings

* misc fixes

* layer order change

* fix layout matrix

* Update tapdances.c

* playing around with triple tap dance

* sync with upstream

* quick edit

* tapdance cleanup

* mod tap interrupt

* tapping term edit

* tapping term adjust

* 5x5 board edits

* set gherkin tapping term

* big switch tap dance edit

* tapping term refinements

* 5x10 layout setup

* add audio for bigswitch

* keymap change

* keymap change & created testing board

* sound setup for big_switch

* more big switch size testing

* bigswitch testing finished

* final touch-ups
2018-10-19 11:01:40 -07:00

191 lines
4.2 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) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QW);
}
return false;
break;
case GHERKIN:
if (record->event.pressed) {
set_single_persistent_default_layer(_GK);
}
return false;
break;
case gGHERKIN:
if (record->event.pressed) {
set_single_persistent_default_layer(gGK);
}
return false;
break;
case ONEHAND:
if (record->event.pressed) {
set_single_persistent_default_layer(ONE);
}
return false;
break;
case QWERTY75:
if (record->event.pressed) {
set_single_persistent_default_layer(QW75);
}
return false;
break;
case GHERKIN75:
if (record->event.pressed) {
set_single_persistent_default_layer(GK75);
}
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 SUBTER75:
if (record->event.pressed) {
layer_on(SUB75);
} else {
layer_off(SUB75);
}
return false;
break;
case SUPRA75:
if (record->event.pressed) {
layer_on(SUP75);
} else {
layer_off(SUP75);
}
return false;
break;
case NUMBER75:
if (record->event.pressed) {
layer_on(NUM75);
} else {
layer_off(NUM75);
}
return false;
break;
case DIRECTION75:
if (record->event.pressed) {
layer_on(DIR75);
} else {
layer_off(DIR75);
}
return false;
break;
case ETCETERA75:
if (record->event.pressed) {
layer_on(ETC75);
} else {
layer_off(ETC75);
}
return false;
break;
case FUNCTION75:
if (record->event.pressed) {
layer_on(FN75);
} else {
layer_off(FN75);
}
return false;
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) {
#if defined(KEYBOARD_lets_split_rev2)
DDRD &= ~(1<<5);
PORTD &= ~(1<<5);
DDRB &= ~(1<<0);
PORTB &= ~(1<<0);
#endif
matrix_init_keymap();
}