From 2df02630100f8719bcf056e2dea68016bba63749 Mon Sep 17 00:00:00 2001 From: Drashna Jael're Date: Sat, 30 Nov 2024 21:17:37 -0800 Subject: [PATCH] Apple Globe Support --- data/constants/keycodes/keycodes_0.0.7.hjson | 1 + data/constants/keycodes/keycodes_0.0.7_basic.hjson | 12 ++++++++++++ quantum/keycodes.h | 6 ++++-- tests/test_common/keycode_table.cpp | 1 + tmk_core/protocol/report.h | 2 ++ 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 data/constants/keycodes/keycodes_0.0.7.hjson create mode 100644 data/constants/keycodes/keycodes_0.0.7_basic.hjson diff --git a/data/constants/keycodes/keycodes_0.0.7.hjson b/data/constants/keycodes/keycodes_0.0.7.hjson new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.7.hjson @@ -0,0 +1 @@ +{} diff --git a/data/constants/keycodes/keycodes_0.0.7_basic.hjson b/data/constants/keycodes/keycodes_0.0.7_basic.hjson new file mode 100644 index 0000000000..d174aaf777 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.7_basic.hjson @@ -0,0 +1,12 @@ +{ + "keycodes": { + "0x00C3": { + "group": "media", + "key": "KC_GLOBE", + "label": "Apple Globe/Fn", + "aliases": [ + "KC_GLB" + ] + } + } +} diff --git a/quantum/keycodes.h b/quantum/keycodes.h index fa185d122d..c8cab62c1d 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -293,6 +293,7 @@ enum qk_keycode_defines { KC_ASSISTANT = 0x00C0, KC_MISSION_CONTROL = 0x00C1, KC_LAUNCHPAD = 0x00C2, + KC_GLOBE = 0x00C3, QK_MOUSE_CURSOR_UP = 0x00CD, QK_MOUSE_CURSOR_DOWN = 0x00CE, QK_MOUSE_CURSOR_LEFT = 0x00CF, @@ -952,6 +953,7 @@ enum qk_keycode_defines { KC_ASST = KC_ASSISTANT, KC_MCTL = KC_MISSION_CONTROL, KC_LPAD = KC_LAUNCHPAD, + KC_GLB = KC_GLOBE, MS_UP = QK_MOUSE_CURSOR_UP, MS_DOWN = QK_MOUSE_CURSOR_DOWN, MS_LEFT = QK_MOUSE_CURSOR_LEFT, @@ -1503,7 +1505,7 @@ enum qk_keycode_defines { #define IS_INTERNAL_KEYCODE(code) ((code) >= KC_NO && (code) <= KC_TRANSPARENT) #define IS_BASIC_KEYCODE(code) ((code) >= KC_A && (code) <= KC_EXSEL) #define IS_SYSTEM_KEYCODE(code) ((code) >= KC_SYSTEM_POWER && (code) <= KC_SYSTEM_WAKE) -#define IS_CONSUMER_KEYCODE(code) ((code) >= KC_AUDIO_MUTE && (code) <= KC_LAUNCHPAD) +#define IS_CONSUMER_KEYCODE(code) ((code) >= KC_AUDIO_MUTE && (code) <= KC_GLOBE) #define IS_MOUSE_KEYCODE(code) ((code) >= QK_MOUSE_CURSOR_UP && (code) <= QK_MOUSE_ACCELERATION_2) #define IS_MODIFIER_KEYCODE(code) ((code) >= KC_LEFT_CTRL && (code) <= KC_RIGHT_GUI) #define IS_POINTING_MODE_UTIL_KEYCODE(code) ((code) >= QK_PM_CYCLE_DEVICES && (code) <= QK_PM_DEVICE_LEFT) @@ -1530,7 +1532,7 @@ enum qk_keycode_defines { #define INTERNAL_KEYCODE_RANGE KC_NO ... KC_TRANSPARENT #define BASIC_KEYCODE_RANGE KC_A ... KC_EXSEL #define SYSTEM_KEYCODE_RANGE KC_SYSTEM_POWER ... KC_SYSTEM_WAKE -#define CONSUMER_KEYCODE_RANGE KC_AUDIO_MUTE ... KC_LAUNCHPAD +#define CONSUMER_KEYCODE_RANGE KC_AUDIO_MUTE ... KC_GLOBE #define MOUSE_KEYCODE_RANGE QK_MOUSE_CURSOR_UP ... QK_MOUSE_ACCELERATION_2 #define MODIFIER_KEYCODE_RANGE KC_LEFT_CTRL ... KC_RIGHT_GUI #define POINTING_MODE_UTIL_KEYCODE_RANGE QK_PM_CYCLE_DEVICES ... QK_PM_DEVICE_LEFT diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp index bb0467152f..57d7f30e1d 100644 --- a/tests/test_common/keycode_table.cpp +++ b/tests/test_common/keycode_table.cpp @@ -225,6 +225,7 @@ std::map KEYCODE_ID_TABLE = { {KC_ASSISTANT, "KC_ASSISTANT"}, {KC_MISSION_CONTROL, "KC_MISSION_CONTROL"}, {KC_LAUNCHPAD, "KC_LAUNCHPAD"}, + {KC_GLOBE, "KC_GLOBE"}, {QK_MOUSE_CURSOR_UP, "QK_MOUSE_CURSOR_UP"}, {QK_MOUSE_CURSOR_DOWN, "QK_MOUSE_CURSOR_DOWN"}, {QK_MOUSE_CURSOR_LEFT, "QK_MOUSE_CURSOR_LEFT"}, diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index c8cd7b5533..5b9e4d6b6b 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -327,6 +327,8 @@ static inline uint16_t KEYCODE2CONSUMER(uint8_t key) { return AC_DESKTOP_SHOW_ALL_WINDOWS; case KC_LAUNCHPAD: return AC_SOFT_KEY_LEFT; + case KC_GLOBE: + return AC_NEXT_KEYBOARD_LAYOUT_SELECT; default: return 0; }