Skip to content

Commit d39033f

Browse files
committed
Add KC_GLOBE keycode using @drashna's approach updated for 2024 codebase
1 parent 7f22cb5 commit d39033f

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"keycodes": {
3+
"0x00C3": {
4+
"group": "media",
5+
"key": "KC_GLOBE",
6+
"label": "Apple Globe/FN Key",
7+
"aliases": [
8+
"KC_GLB"
9+
]
10+
}
11+
}
12+
}

quantum/keycodes.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ enum qk_keycode_defines {
283283
KC_ASSISTANT = 0x00C0,
284284
KC_MISSION_CONTROL = 0x00C1,
285285
KC_LAUNCHPAD = 0x00C2,
286+
KC_GLOBE = 0x00C3,
286287
QK_MOUSE_CURSOR_UP = 0x00CD,
287288
QK_MOUSE_CURSOR_DOWN = 0x00CE,
288289
QK_MOUSE_CURSOR_LEFT = 0x00CF,
@@ -926,6 +927,7 @@ enum qk_keycode_defines {
926927
KC_ASST = KC_ASSISTANT,
927928
KC_MCTL = KC_MISSION_CONTROL,
928929
KC_LPAD = KC_LAUNCHPAD,
930+
KC_GLB = KC_GLOBE,
929931
MS_UP = QK_MOUSE_CURSOR_UP,
930932
MS_DOWN = QK_MOUSE_CURSOR_DOWN,
931933
MS_LEFT = QK_MOUSE_CURSOR_LEFT,
@@ -1456,7 +1458,7 @@ enum qk_keycode_defines {
14561458
#define IS_INTERNAL_KEYCODE(code) ((code) >= KC_NO && (code) <= KC_TRANSPARENT)
14571459
#define IS_BASIC_KEYCODE(code) ((code) >= KC_A && (code) <= KC_EXSEL)
14581460
#define IS_SYSTEM_KEYCODE(code) ((code) >= KC_SYSTEM_POWER && (code) <= KC_SYSTEM_WAKE)
1459-
#define IS_CONSUMER_KEYCODE(code) ((code) >= KC_AUDIO_MUTE && (code) <= KC_LAUNCHPAD)
1461+
#define IS_CONSUMER_KEYCODE(code) ((code) >= KC_AUDIO_MUTE && (code) <= KC_GLOBE)
14601462
#define IS_MOUSE_KEYCODE(code) ((code) >= QK_MOUSE_CURSOR_UP && (code) <= QK_MOUSE_ACCELERATION_2)
14611463
#define IS_MODIFIER_KEYCODE(code) ((code) >= KC_LEFT_CTRL && (code) <= KC_RIGHT_GUI)
14621464
#define IS_SWAP_HANDS_KEYCODE(code) ((code) >= QK_SWAP_HANDS_TOGGLE && (code) <= QK_SWAP_HANDS_ONE_SHOT)
@@ -1481,7 +1483,7 @@ enum qk_keycode_defines {
14811483
#define INTERNAL_KEYCODE_RANGE KC_NO ... KC_TRANSPARENT
14821484
#define BASIC_KEYCODE_RANGE KC_A ... KC_EXSEL
14831485
#define SYSTEM_KEYCODE_RANGE KC_SYSTEM_POWER ... KC_SYSTEM_WAKE
1484-
#define CONSUMER_KEYCODE_RANGE KC_AUDIO_MUTE ... KC_LAUNCHPAD
1486+
#define CONSUMER_KEYCODE_RANGE KC_AUDIO_MUTE ... KC_GLOBE
14851487
#define MOUSE_KEYCODE_RANGE QK_MOUSE_CURSOR_UP ... QK_MOUSE_ACCELERATION_2
14861488
#define MODIFIER_KEYCODE_RANGE KC_LEFT_CTRL ... KC_RIGHT_GUI
14871489
#define SWAP_HANDS_KEYCODE_RANGE QK_SWAP_HANDS_TOGGLE ... QK_SWAP_HANDS_ONE_SHOT

tmk_core/protocol/report.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
2929
// clang-format off
3030

3131
/* HID report IDs */
32-
enum hid_report_ids {
32+
enum hid_report_ids {
3333
REPORT_ID_ALL = 0,
3434
REPORT_ID_KEYBOARD = 1,
3535
REPORT_ID_MOUSE,
@@ -316,6 +316,8 @@ static inline uint16_t KEYCODE2CONSUMER(uint8_t key) {
316316
return AC_DESKTOP_SHOW_ALL_WINDOWS;
317317
case KC_LAUNCHPAD:
318318
return AC_SOFT_KEY_LEFT;
319+
case KC_GLOBE:
320+
return AC_NEXT_KEYBOARD_LAYOUT_SELECT;
319321
default:
320322
return 0;
321323
}

0 commit comments

Comments
 (0)