Default layer now persists after powering off and on.

This commit is contained in:
sheldonmlee 2021-04-26 14:11:54 +08:00
parent 40c73135e6
commit 4a5edff720

View File

@ -39,6 +39,12 @@ enum layers {
OTHER
};
enum keycodes {
K_COLEMAK_0,
K_COLEMAK_1,
K_QWERTY
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// colemak
[COLEMAK_0] = LAYOUT_60_hhkb(
@ -46,7 +52,7 @@ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, \
TD(TD_CTRL_CAPS), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB_FN), \
MO(FN), TD(TD_LGUI_LALT), LT(SPACE_FN, KC_SPC), TD(TD_RGUI_RALT), MO(FN)
MO(FN), TD(TD_LGUI_LALT), KC_SPC, TD(TD_RGUI_RALT), MO(FN)
),
// colemak with out tap/hold layers
[COLEMAK_1] = LAYOUT_60_hhkb(
@ -90,7 +96,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
// others
[OTHER] = LAYOUT_60_hhkb(
KC_PWR, RGB_TOG, RGB_RMOD, RGB_MOD, NK_OFF, NK_ON, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, DF(COLEMAK_0), DF(COLEMAK_1), DF(QWERTY), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, K_COLEMAK_0, K_COLEMAK_1, K_QWERTY, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
@ -102,12 +108,26 @@ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
// Functions
//
// RETRO_TAPPING_PER_KEY
bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case LT(SPACE_FN, KC_SPACE):
return true;
default:
return false;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case K_COLEMAK_0:
if (record->event.pressed) {
set_single_persistent_default_layer(COLEMAK_0);
}
return false;
break;
case K_COLEMAK_1:
if (record->event.pressed) {
set_single_persistent_default_layer(COLEMAK_1);
}
return false;
break;
case K_QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(QWERTY);
}
return false;
break;
}
return true;
}