From ab53c9760831b1ac12f5eeb196af49c6a71b02d6 Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Fri, 11 Aug 2023 23:16:38 +0200 Subject: adjust to use the Ferris layout --- planck/keymap.c | 113 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 43 deletions(-) (limited to 'planck/keymap.c') diff --git a/planck/keymap.c b/planck/keymap.c index d0e8bf3..17894fb 100644 --- a/planck/keymap.c +++ b/planck/keymap.c @@ -17,7 +17,8 @@ #include QMK_KEYBOARD_H // layout helper macro, we just use 34 keys -#define LAYOUT_cullmann(\ +#undef LAYOUT +#define LAYOUT(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ @@ -30,54 +31,80 @@ K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29 KC_NO, KC_NO, KC_NO, K30, K31, KC_NO, KC_NO, K32, K33, KC_NO, KC_NO, KC_NO\ ) -// our layers, used as index in layers and rgb lights -enum planck_layers { - L_CANARY, - L_EXT, - L_SYM, - L_NUM, - L_FUN, +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// │ D E F I N I T I O N S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + +// ┌─────────────────────────────────────────────────┐ +// │ d e f i n e l a y e r s │ +// └─────────────────────────────────────────────────┘ + +enum my_layers { + _QWERTY, + _SYM, + _NUM, + _FN, + _NAV }; +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// │ K E Y M A P S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[L_CANARY] = LAYOUT_cullmann( - KC_W, KC_L, KC_Y, KC_P, KC_B, KC_Z, KC_F, KC_O, KC_U, KC_QUOT, - KC_C, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_A, - KC_Q, KC_J, KC_V, KC_D, KC_K, KC_X, KC_H, KC_SLSH, KC_COMM, KC_DOT, - MO(L_EXT), KC_SPC, KC_RSFT, MO(L_SYM) +[_QWERTY] = LAYOUT( + KC_W, KC_L, KC_Y, KC_P, KC_B, KC_Z, KC_F, KC_SCLN, KC_U, KC_QUOT, + RALT_T(KC_C) , LALT_T(KC_R), LCTL_T(KC_S) , LSFT_T(KC_T) , LGUI_T(KC_G), RGUI_T(KC_M), RSFT_T(KC_N), RCTL_T(KC_O), LALT_T(KC_I) , RALT_T(KC_A), + KC_Q , KC_J, KC_V , KC_D , KC_K, KC_X, KC_H , KC_SLSH , KC_COMM, KC_DOT , + MO(_SYM), LT(_NUM, KC_SPC), LT(_NAV, KC_E), MO(_FN) ), -[L_EXT] = LAYOUT_cullmann( - KC_ESC, LALT(KC_LEFT), LCTL(KC_F), LALT(KC_RGHT), KC_INS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_CAPS, - OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_RALT), KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, - LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_LGUI, LCTL(KC_V), KC_ENT, KC_BSPC, KC_TAB, KC_APP, KC_PSCR, - KC_TRNS, XXXXXXX, KC_ENT, MO(L_FUN) +[_SYM] = LAYOUT( + XXXXXXX, C(KC_X), C(KC_C), C(KC_V), XXXXXXX, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, + KC_RALT, KC_LALT, KC_LCTL, KC_LSFT, KC_LGUI, KC_PLUS, KC_DLR, KC_PERC, KC_CIRC, KC_COLN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_EXLM, KC_AT, KC_HASH, KC_TILD, + _______, _______, KC_UNDS, KC_RPRN ), -[L_SYM] = LAYOUT_cullmann( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_EQL, KC_GRV, KC_COLN, KC_SCLN, KC_PLUS, - OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), KC_CIRC, KC_ASTR, KC_LPRN, KC_LCBR, KC_LBRC, KC_MINS, - KC_NUBS, LSFT(KC_NUBS), KC_NUHS, LSFT(KC_NUHS), KC_AMPR, KC_TILD, KC_RPRN, KC_RCBR, KC_RBRC, KC_UNDS, - MO(L_FUN), MO(L_NUM), KC_ENT, KC_TRNS +[_NUM] = LAYOUT( + XXXXXXX, C(KC_X), C(KC_C), C(KC_V), XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + KC_RALT, KC_LALT, KC_LCTL, KC_LSFT, KC_LGUI, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, + _______, _______, KC_MINS, KC_0 ), -[L_NUM] = LAYOUT_cullmann( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS, - OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_RALT), KC_ASTR, KC_4, KC_5, KC_6, KC_MINS, - XXXXXXX, KC_APP, KC_TAB, KC_BSPC, KC_ENT, KC_0, KC_1, KC_2, KC_3, KC_SLSH, - MO(L_FUN), MO(L_NUM), KC_ENT, KC_TRNS +[_FN] = LAYOUT( + KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_F11, KC_F4, KC_F5, KC_F6, KC_DEL, KC_RGUI, KC_RSFT, KC_RCTL, KC_LALT, KC_RALT, + KC_F10, KC_F1, KC_F2, KC_F3, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_BSPC, KC_ESC, _______, _______ ), -[L_FUN] = LAYOUT_cullmann( - KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRIU, KC_F12, KC_F7, KC_F8, KC_F9, QK_BOOT, - OSM(MOD_LALT), OSM(MOD_LGUI), OSM(MOD_LSFT), OSM(MOD_LCTL), KC_BRID, KC_F11, KC_F4, KC_F5, KC_F6, XXXXXXX, - KC_MUTE, KC_VOLD, RCS(KC_C), KC_VOLU, RCS(KC_V), KC_F10, KC_F1, KC_F2, KC_F3, XXXXXXX, - KC_TRNS, XXXXXXX, KC_ENT, KC_TRNS -), +[_NAV] = LAYOUT( + XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_RGUI, KC_RSFT, KC_RCTL, KC_LALT, KC_RALT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_TAB, KC_ENT, _______, _______ +) }; +// try to be more permissive with holds for layer switch keys +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(_NUM, KC_SPC): + case LT(_NAV, KC_E): + // Immediately select the hold action when another key is tapped. + return true; + default: + // Do not select the hold action when another key is tapped. + return false; + } +} + /* plwnck rev6 RGB layout: * ---------------------------------- * | 6 5 4 3 | @@ -107,11 +134,11 @@ const rgblight_segment_t PROGMEM nav_layer[] = RGBLIGHT_LAYER_SEGMENTS( ); const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - [L_CANARY] = qwerty_layer, - [L_EXT] = sym_layer, - [L_SYM] = num_layer, - [L_NUM] = fn_layer, - [L_FUN] = nav_layer + [_QWERTY] = qwerty_layer, + [_SYM] = sym_layer, + [_NUM] = num_layer, + [_FN] = fn_layer, + [_NAV] = nav_layer ); void keyboard_post_init_user(void) { @@ -121,9 +148,9 @@ void keyboard_post_init_user(void) { layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(L_EXT, layer_state_cmp(state, L_EXT)); - rgblight_set_layer_state(L_SYM, layer_state_cmp(state, L_SYM)); - rgblight_set_layer_state(L_NUM, layer_state_cmp(state, L_NUM)); - rgblight_set_layer_state(L_FUN, layer_state_cmp(state, L_FUN)); + rgblight_set_layer_state(_SYM, layer_state_cmp(state, _SYM)); + rgblight_set_layer_state(_NUM, layer_state_cmp(state, _NUM)); + rgblight_set_layer_state(_FN, layer_state_cmp(state, _FN)); + rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV)); return state; } -- cgit v1.2.3