diff options
author | Jack Humbert <jack.humb@gmail.com> | 2017-02-15 11:25:33 -0500 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2017-02-15 11:25:33 -0500 |
commit | 69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9 (patch) | |
tree | ca2ed059803bdb8316b76272dafafe54593758cf /quantum | |
parent | 7bef285553dee01bbcb1eaadefbfb39ed75baea4 (diff) | |
download | qmk_firmware-69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9.tar.gz qmk_firmware-69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9.zip |
adds layer tap toggle
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/keymap_common.c | 3 | ||||
-rw-r--r-- | quantum/quantum_keycodes.h | 13 |
2 files changed, 12 insertions, 4 deletions
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 54b872d49..002eabd85 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c | |||
@@ -119,6 +119,9 @@ action_t action_for_key(uint8_t layer, keypos_t key) | |||
119 | mod = keycode & 0xFF; | 119 | mod = keycode & 0xFF; |
120 | action.code = ACTION_MODS_ONESHOT(mod); | 120 | action.code = ACTION_MODS_ONESHOT(mod); |
121 | break; | 121 | break; |
122 | case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: | ||
123 | action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF); | ||
124 | break; | ||
122 | case QK_MOD_TAP ... QK_MOD_TAP_MAX: | 125 | case QK_MOD_TAP ... QK_MOD_TAP_MAX: |
123 | action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0x1F, keycode & 0xFF); | 126 | action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0x1F, keycode & 0xFF); |
124 | break; | 127 | break; |
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index cc7a5013f..f36c8044e 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h | |||
@@ -41,16 +41,18 @@ enum quantum_keycodes { | |||
41 | #endif | 41 | #endif |
42 | QK_TAP_DANCE = 0x5700, | 42 | QK_TAP_DANCE = 0x5700, |
43 | QK_TAP_DANCE_MAX = 0x57FF, | 43 | QK_TAP_DANCE_MAX = 0x57FF, |
44 | #ifdef UNICODEMAP_ENABLE | 44 | QK_LAYER_TAP_TOGGLE = 0x5800, |
45 | QK_UNICODE_MAP = 0x5800, | 45 | QK_LAYER_TAP_TOGGLE_MAX = 0x58FF, |
46 | QK_UNICODE_MAP_MAX = 0x5BFF, | ||
47 | #endif | ||
48 | QK_MOD_TAP = 0x6000, | 46 | QK_MOD_TAP = 0x6000, |
49 | QK_MOD_TAP_MAX = 0x7FFF, | 47 | QK_MOD_TAP_MAX = 0x7FFF, |
50 | #ifdef UNICODE_ENABLE | 48 | #ifdef UNICODE_ENABLE |
51 | QK_UNICODE = 0x8000, | 49 | QK_UNICODE = 0x8000, |
52 | QK_UNICODE_MAX = 0xFFFF, | 50 | QK_UNICODE_MAX = 0xFFFF, |
53 | #endif | 51 | #endif |
52 | #ifdef UNICODEMAP_ENABLE | ||
53 | QK_UNICODE_MAP = 0x8000, | ||
54 | QK_UNICODE_MAP_MAX = 0x83FF, | ||
55 | #endif | ||
54 | 56 | ||
55 | // Loose keycodes - to be used directly | 57 | // Loose keycodes - to be used directly |
56 | 58 | ||
@@ -304,6 +306,9 @@ enum quantum_keycodes { | |||
304 | // One-shot mod | 306 | // One-shot mod |
305 | #define OSM(mod) (mod | QK_ONE_SHOT_MOD) | 307 | #define OSM(mod) (mod | QK_ONE_SHOT_MOD) |
306 | 308 | ||
309 | // Layer tap-toggle | ||
310 | #define TT(layer) (layer | QK_LAYER_TAP_TOGGLE) | ||
311 | |||
307 | // M-od, T-ap - 256 keycode max | 312 | // M-od, T-ap - 256 keycode max |
308 | #define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0x1F) << 8)) | 313 | #define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0x1F) << 8)) |
309 | 314 | ||