ifeq (yes,$(strip $(UNIMAP_ENABLE)))
SRC += $(COMMON_DIR)/unimap.c
OPT_DEFS += -DUNIMAP_ENABLE
+ OPT_DEFS += -DACTIONMAP_ENABLE
else
ifeq (yes,$(strip $(ACTIONMAP_ENABLE)))
SRC += $(COMMON_DIR)/actionmap.c
case ACT_LAYER_TAP:
case ACT_LAYER_TAP_EXT:
switch (action.layer_tap.code) {
- case 0x00 ... 0xdf:
+ case KC_A ... KC_EXSEL:
+ case KC_KP_00 ... KC_KP_HEXADECIMAL:
+ case KC_LCTRL ... KC_RGUI:
case OP_TAP_TOGGLE:
return true;
}
#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED)
-#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF)
+
+#ifndef ACTIONMAP_ENABLE
#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL)
+#else
+#define IS_KEY(code) ((KC_A <= (code) && (code) <= KC_EXSEL) || \
+ (KC_KP_00 <= (code) && (code) <= KC_KP_HEXADECIMAL))
+#endif
+
#define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI)
KC_ROLL_OVER,
KC_POST_FAIL,
KC_UNDEFINED,
- KC_A,
+ KC_A, /* 0x04 */
KC_B,
KC_C,
KC_D,
KC_CRSEL,
KC_EXSEL, /* 0xA4 */
- /* NOTE: 0xA5-DF are used for internal special purpose */
-
-#if 0
- /* NOTE: Following codes(0xB0-DD) are not used. Leave them for reference. */
+ /* NOTE: Following code range(0xB0-DD) are shared with special codes of 8-bit keymap */
KC_KP_00 = 0xB0,
KC_KP_000,
KC_THOUSANDS_SEPARATOR,
KC_KP_OCTAL,
KC_KP_DECIMAL,
KC_KP_HEXADECIMAL, /* 0xDD */
-#endif
/* Modifiers */
KC_LCTRL = 0xE0,
KC_RCTRL,
KC_RSHIFT,
KC_RALT,
- KC_RGUI,
-
- /* NOTE: 0xE8-FF are used for internal special purpose */
+ KC_RGUI, /* 0xE7 */
};
-/* Special keycodes */
-/* NOTE: 0xA5-DF and 0xE8-FF are used for internal special purpose */
+/* Special keycodes for 8-bit keymap
+ NOTE: 0xA5-DF and 0xE8-FF are used for internal special purpose */
enum internal_special_keycodes {
/* System Control */
KC_SYSTEM_POWER = 0xA5,