summaryrefslogtreecommitdiff
path: root/planck/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'planck/keymap.c')
-rw-r--r--planck/keymap.c113
1 files changed, 70 insertions, 43 deletions
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;
}