Pārlūkot izejas kodu

adds layer tap toggle

Jack Humbert 8 gadi atpakaļ
vecāks
revīzija
69ea10f9a9
2 mainītis faili ar 12 papildinājumiem un 4 dzēšanām
  1. 3 0
      quantum/keymap_common.c
  2. 9 4
      quantum/quantum_keycodes.h

+ 3 - 0
quantum/keymap_common.c

@@ -119,6 +119,9 @@ action_t action_for_key(uint8_t layer, keypos_t key)
             mod = keycode & 0xFF;
             action.code = ACTION_MODS_ONESHOT(mod);
             break;
+        case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
+            action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF);
+            break;
         case QK_MOD_TAP ... QK_MOD_TAP_MAX:
             action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0x1F, keycode & 0xFF);
             break;

+ 9 - 4
quantum/quantum_keycodes.h

@@ -41,16 +41,18 @@ enum quantum_keycodes {
 #endif
     QK_TAP_DANCE          = 0x5700,
     QK_TAP_DANCE_MAX      = 0x57FF,
-#ifdef UNICODEMAP_ENABLE
-    QK_UNICODE_MAP        = 0x5800,
-    QK_UNICODE_MAP_MAX    = 0x5BFF,
-#endif
+    QK_LAYER_TAP_TOGGLE   = 0x5800,
+    QK_LAYER_TAP_TOGGLE_MAX = 0x58FF,
     QK_MOD_TAP            = 0x6000,
     QK_MOD_TAP_MAX        = 0x7FFF,
 #ifdef UNICODE_ENABLE
     QK_UNICODE            = 0x8000,
     QK_UNICODE_MAX        = 0xFFFF,
 #endif
+#ifdef UNICODEMAP_ENABLE
+    QK_UNICODE_MAP        = 0x8000,
+    QK_UNICODE_MAP_MAX    = 0x83FF,
+#endif
 
     // Loose keycodes - to be used directly
 
@@ -304,6 +306,9 @@ enum quantum_keycodes {
 // One-shot mod
 #define OSM(mod) (mod | QK_ONE_SHOT_MOD)
 
+// Layer tap-toggle
+#define TT(layer) (layer | QK_LAYER_TAP_TOGGLE)
+
 // M-od, T-ap - 256 keycode max
 #define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0x1F) << 8))