layer tap, mod tap
authorJack Humbert <jack.humb@gmail.com>
Wed, 28 Oct 2015 03:06:18 +0000 (23:06 -0400)
committerJack Humbert <jack.humb@gmail.com>
Wed, 28 Oct 2015 03:06:18 +0000 (23:06 -0400)
quantum/keymap_common.c
quantum/keymap_common.h

index da75271..fc889a3 100644 (file)
@@ -118,6 +118,10 @@ action_t action_for_key(uint8_t layer, keypos_t key)
         action_t action;
         action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
         return action;
+    } else if (keycode >= 0x8000 && keycode < 0x9000) {
+        action_t action;
+        action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
+        return action;
 #ifdef UNICODE_ENABLE
     } else if (keycode >= 0x8000000) {
         action_t action;
index 100300e..e93e864 100644 (file)
@@ -177,13 +177,16 @@ extern const uint16_t fn_actions[];
 
 #define MIDI(n) (n | 0x6000)
 
-// H-old, T-ap - 256 keycode max
-#define HT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8))
+// M-od, T-ap - 256 keycode max
+#define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8))
 #define CTL_T(kc) HT(0x1, kc)
 #define SFT_T(kc) HT(0x2, kc)
 #define ALT_T(kc) HT(0x4, kc)
 #define GUI_T(kc) HT(0x8, kc)
 
+// L-ayer, T-ap - 256 keycode max, 16 layer max
+#define LT(layer, kc) (kc | 0x7000 | ((layer & 0xF) << 8))
+
 // For sending unicode codes.
 // You may not send codes over 1FFF -- this supports most of UTF8.
 // To have a key that sends out Œ, go UC(0x0152)