aboutsummaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-02-15 11:25:33 -0500
committerJack Humbert <jack.humb@gmail.com>2017-02-15 11:25:33 -0500
commit69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9 (patch)
treeca2ed059803bdb8316b76272dafafe54593758cf /quantum
parent7bef285553dee01bbcb1eaadefbfb39ed75baea4 (diff)
downloadqmk_firmware-69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9.tar.gz
qmk_firmware-69ea10f9a9407415d8cbb5575a08bd73d5ddd7f9.zip
adds layer tap toggle
Diffstat (limited to 'quantum')
-rw-r--r--quantum/keymap_common.c3
-rw-r--r--quantum/quantum_keycodes.h13
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