diff options
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/keymap_common.c | 5 | ||||
-rw-r--r-- | quantum/quantum_keycodes.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 8b09f93fc..9a412b66a 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c | |||
@@ -122,6 +122,11 @@ action_t action_for_key(uint8_t layer, keypos_t key) | |||
122 | case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: | 122 | case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: |
123 | action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF); | 123 | action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF); |
124 | break; | 124 | break; |
125 | case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: | ||
126 | mod = keycode & 0xF; | ||
127 | action_layer = (keycode >> 4) & 0xF; | ||
128 | action.code = ACTION_LAYER_MODS(action_layer, mod); | ||
129 | break; | ||
125 | case QK_MOD_TAP ... QK_MOD_TAP_MAX: | 130 | case QK_MOD_TAP ... QK_MOD_TAP_MAX: |
126 | mod = mod_config((keycode >> 0x8) & 0x1F); | 131 | mod = mod_config((keycode >> 0x8) & 0x1F); |
127 | action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF); | 132 | action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF); |
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 4a5681c7e..8122bfe73 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h | |||
@@ -71,6 +71,8 @@ enum quantum_keycodes { | |||
71 | QK_TAP_DANCE_MAX = 0x57FF, | 71 | QK_TAP_DANCE_MAX = 0x57FF, |
72 | QK_LAYER_TAP_TOGGLE = 0x5800, | 72 | QK_LAYER_TAP_TOGGLE = 0x5800, |
73 | QK_LAYER_TAP_TOGGLE_MAX = 0x58FF, | 73 | QK_LAYER_TAP_TOGGLE_MAX = 0x58FF, |
74 | QK_LAYER_MOD = 0x5900, | ||
75 | QK_LAYER_MOD_MAX = 0x59FF, | ||
74 | #ifdef STENO_ENABLE | 76 | #ifdef STENO_ENABLE |
75 | QK_STENO = 0x5A00, | 77 | QK_STENO = 0x5A00, |
76 | QK_STENO_BOLT = 0x5A30, | 78 | QK_STENO_BOLT = 0x5A30, |
@@ -597,6 +599,9 @@ enum quantum_keycodes { | |||
597 | // One-shot layer - 256 layer max | 599 | // One-shot layer - 256 layer max |
598 | #define OSL(layer) (layer | QK_ONE_SHOT_LAYER) | 600 | #define OSL(layer) (layer | QK_ONE_SHOT_LAYER) |
599 | 601 | ||
602 | // L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max, left mods only | ||
603 | #define LM(layer, mod) (QK_LAYER_MOD | (((layer) & 0xF) << 4) | ((mod) & 0xF)) | ||
604 | |||
600 | // One-shot mod | 605 | // One-shot mod |
601 | #define OSM(mod) ((mod) | QK_ONE_SHOT_MOD) | 606 | #define OSM(mod) ((mod) | QK_ONE_SHOT_MOD) |
602 | 607 | ||