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 | |
| parent | 7bef285553dee01bbcb1eaadefbfb39ed75baea4 (diff) | |
| download | qmk_firmware-69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9.tar.gz qmk_firmware-69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9.zip | |
adds layer tap toggle
| -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 | ||
