aboutsummaryrefslogtreecommitdiff
path: root/quantum/keycode.h
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2021-11-04 16:22:17 +1100
committerGitHub <noreply@github.com>2021-11-03 22:22:17 -0700
commitf529580860cf5a1de4afc10432f218a45daae17a (patch)
tree1d2fa041174f2586230ab831c05e5b56d8ba4f92 /quantum/keycode.h
parentb06d9d822cfb72e0728b11711a333f2f5d3c631e (diff)
downloadqmk_firmware-f529580860cf5a1de4afc10432f218a45daae17a.tar.gz
qmk_firmware-f529580860cf5a1de4afc10432f218a45daae17a.zip
Basic keycode overhaul (#14726)
Diffstat (limited to 'quantum/keycode.h')
-rw-r--r--quantum/keycode.h272
1 files changed, 149 insertions, 123 deletions
diff --git a/quantum/keycode.h b/quantum/keycode.h
index 8facabd81..38a29b439 100644
--- a/quantum/keycode.h
+++ b/quantum/keycode.h
@@ -29,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) 29#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED)
30#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) 30#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF)
31#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) 31#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL)
32#define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI) 32#define IS_MOD(code) (KC_LEFT_CTRL <= (code) && (code) <= KC_RIGHT_GUI)
33 33
34#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) 34#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF))
35#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) 35#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE)
@@ -46,10 +46,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46#define MOD_BIT(code) (1 << MOD_INDEX(code)) 46#define MOD_BIT(code) (1 << MOD_INDEX(code))
47#define MOD_INDEX(code) ((code)&0x07) 47#define MOD_INDEX(code) ((code)&0x07)
48 48
49#define MOD_MASK_CTRL (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL)) 49#define MOD_MASK_CTRL (MOD_BIT(KC_LEFT_CTRL) | MOD_BIT(KC_RIGHT_CTRL))
50#define MOD_MASK_SHIFT (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) 50#define MOD_MASK_SHIFT (MOD_BIT(KC_LEFT_SHIFT) | MOD_BIT(KC_RIGHT_SHIFT))
51#define MOD_MASK_ALT (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) 51#define MOD_MASK_ALT (MOD_BIT(KC_LEFT_ALT) | MOD_BIT(KC_RIGHT_ALT))
52#define MOD_MASK_GUI (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) 52#define MOD_MASK_GUI (MOD_BIT(KC_LEFT_GUI) | MOD_BIT(KC_RIGHT_GUI))
53#define MOD_MASK_CS (MOD_MASK_CTRL | MOD_MASK_SHIFT) 53#define MOD_MASK_CS (MOD_MASK_CTRL | MOD_MASK_SHIFT)
54#define MOD_MASK_CA (MOD_MASK_CTRL | MOD_MASK_ALT) 54#define MOD_MASK_CA (MOD_MASK_CTRL | MOD_MASK_ALT)
55#define MOD_MASK_CG (MOD_MASK_CTRL | MOD_MASK_GUI) 55#define MOD_MASK_CG (MOD_MASK_CTRL | MOD_MASK_GUI)
@@ -67,6 +67,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
67#define FN_MIN KC_FN0 67#define FN_MIN KC_FN0
68#define FN_MAX KC_FN31 68#define FN_MAX KC_FN31
69 69
70// clang-format off
71
70/* 72/*
71 * Short names for ease of definition of keymap 73 * Short names for ease of definition of keymap
72 */ 74 */
@@ -75,47 +77,55 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
75#define KC_TRNS KC_TRANSPARENT 77#define KC_TRNS KC_TRANSPARENT
76 78
77/* Punctuation */ 79/* Punctuation */
78#define KC_ENT KC_ENTER 80#define KC_ENT KC_ENTER
79#define KC_ESC KC_ESCAPE 81#define KC_ESC KC_ESCAPE
80#define KC_BSPC KC_BSPACE 82#define KC_BSPC KC_BACKSPACE
81#define KC_SPC KC_SPACE 83#define KC_SPC KC_SPACE
82#define KC_MINS KC_MINUS 84#define KC_MINS KC_MINUS
83#define KC_EQL KC_EQUAL 85#define KC_EQL KC_EQUAL
84#define KC_LBRC KC_LBRACKET 86#define KC_LBRC KC_LEFT_BRACKET
85#define KC_RBRC KC_RBRACKET 87#define KC_RBRC KC_RIGHT_BRACKET
86#define KC_BSLS KC_BSLASH 88#define KC_BSLS KC_BACKSLASH
87#define KC_NUHS KC_NONUS_HASH 89#define KC_NUHS KC_NONUS_HASH
88#define KC_SCLN KC_SCOLON 90#define KC_SCLN KC_SEMICOLON
89#define KC_QUOT KC_QUOTE 91#define KC_QUOT KC_QUOTE
90#define KC_GRV KC_GRAVE 92#define KC_GRV KC_GRAVE
91#define KC_COMM KC_COMMA 93#define KC_COMM KC_COMMA
92#define KC_SLSH KC_SLASH 94#define KC_SLSH KC_SLASH
93#define KC_NUBS KC_NONUS_BSLASH 95#define KC_NUBS KC_NONUS_BACKSLASH
94 96
95/* Lock Keys */ 97/* Lock Keys */
96#define KC_CLCK KC_CAPSLOCK 98#define KC_CAPS KC_CAPS_LOCK
97#define KC_CAPS KC_CAPSLOCK 99#define KC_SCRL KC_SCROLL_LOCK
98#define KC_SLCK KC_SCROLLLOCK 100#define KC_NUM KC_NUM_LOCK
99#define KC_NLCK KC_NUMLOCK 101#define KC_LCAP KC_LOCKING_CAPS_LOCK
100#define KC_LCAP KC_LOCKING_CAPS 102#define KC_LNUM KC_LOCKING_NUM_LOCK
101#define KC_LNUM KC_LOCKING_NUM 103#define KC_LSCR KC_LOCKING_SCROLL_LOCK
102#define KC_LSCR KC_LOCKING_SCROLL
103 104
104/* Commands */ 105/* Commands */
105#define KC_PSCR KC_PSCREEN 106#define KC_PSCR KC_PRINT_SCREEN
106#define KC_PAUS KC_PAUSE 107#define KC_PAUS KC_PAUSE
107#define KC_BRK KC_PAUSE 108#define KC_BRK KC_PAUSE
108#define KC_INS KC_INSERT 109#define KC_INS KC_INSERT
109#define KC_DEL KC_DELETE 110#define KC_PGUP KC_PAGE_UP
110#define KC_PGDN KC_PGDOWN 111#define KC_DEL KC_DELETE
112#define KC_PGDN KC_PAGE_DOWN
111#define KC_RGHT KC_RIGHT 113#define KC_RGHT KC_RIGHT
112#define KC_APP KC_APPLICATION 114#define KC_APP KC_APPLICATION
113#define KC_EXEC KC_EXECUTE 115#define KC_EXEC KC_EXECUTE
114#define KC_SLCT KC_SELECT 116#define KC_SLCT KC_SELECT
115#define KC_AGIN KC_AGAIN 117#define KC_AGIN KC_AGAIN
116#define KC_PSTE KC_PASTE 118#define KC_PSTE KC_PASTE
117#define KC_ERAS KC_ALT_ERASE 119#define KC_ERAS KC_ALTERNATE_ERASE
118#define KC_CLR KC_CLEAR 120#define KC_SYRQ KC_SYSTEM_REQUEST
121#define KC_CNCL KC_CANCEL
122#define KC_CLR KC_CLEAR
123#define KC_PRIR KC_PRIOR
124#define KC_RETN KC_RETURN
125#define KC_SEPR KC_SEPARATOR
126#define KC_CLAG KC_CLEAR_AGAIN
127#define KC_CRSL KC_CRSEL
128#define KC_EXSL KC_EXSEL
119 129
120/* Keypad */ 130/* Keypad */
121#define KC_PSLS KC_KP_SLASH 131#define KC_PSLS KC_KP_SLASH
@@ -123,47 +133,59 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
123#define KC_PMNS KC_KP_MINUS 133#define KC_PMNS KC_KP_MINUS
124#define KC_PPLS KC_KP_PLUS 134#define KC_PPLS KC_KP_PLUS
125#define KC_PENT KC_KP_ENTER 135#define KC_PENT KC_KP_ENTER
126#define KC_P1 KC_KP_1 136#define KC_P1 KC_KP_1
127#define KC_P2 KC_KP_2 137#define KC_P2 KC_KP_2
128#define KC_P3 KC_KP_3 138#define KC_P3 KC_KP_3
129#define KC_P4 KC_KP_4 139#define KC_P4 KC_KP_4
130#define KC_P5 KC_KP_5 140#define KC_P5 KC_KP_5
131#define KC_P6 KC_KP_6 141#define KC_P6 KC_KP_6
132#define KC_P7 KC_KP_7 142#define KC_P7 KC_KP_7
133#define KC_P8 KC_KP_8 143#define KC_P8 KC_KP_8
134#define KC_P9 KC_KP_9 144#define KC_P9 KC_KP_9
135#define KC_P0 KC_KP_0 145#define KC_P0 KC_KP_0
136#define KC_PDOT KC_KP_DOT 146#define KC_PDOT KC_KP_DOT
137#define KC_PEQL KC_KP_EQUAL 147#define KC_PEQL KC_KP_EQUAL
138#define KC_PCMM KC_KP_COMMA 148#define KC_PCMM KC_KP_COMMA
139 149
140/* Japanese specific */ 150/* Language Specific */
141#define KC_ZKHK KC_GRAVE 151#define KC_INT1 KC_INTERNATIONAL_1
142#define KC_RO KC_INT1 152#define KC_INT2 KC_INTERNATIONAL_2
143#define KC_KANA KC_INT2 153#define KC_INT3 KC_INTERNATIONAL_3
144#define KC_JYEN KC_INT3 154#define KC_INT4 KC_INTERNATIONAL_4
145#define KC_HENK KC_INT4 155#define KC_INT5 KC_INTERNATIONAL_5
146#define KC_MHEN KC_INT5 156#define KC_INT6 KC_INTERNATIONAL_6
147 157#define KC_INT7 KC_INTERNATIONAL_7
148/* Korean specific */ 158#define KC_INT8 KC_INTERNATIONAL_8
149#define KC_HAEN KC_LANG1 159#define KC_INT9 KC_INTERNATIONAL_9
150#define KC_HANJ KC_LANG2 160#define KC_LNG1 KC_LANGUAGE_1
161#define KC_LNG2 KC_LANGUAGE_2
162#define KC_LNG3 KC_LANGUAGE_3
163#define KC_LNG4 KC_LANGUAGE_4
164#define KC_LNG5 KC_LANGUAGE_5
165#define KC_LNG6 KC_LANGUAGE_6
166#define KC_LNG7 KC_LANGUAGE_7
167#define KC_LNG8 KC_LANGUAGE_8
168#define KC_LNG9 KC_LANGUAGE_9
151 169
152/* Modifiers */ 170/* Modifiers */
153#define KC_LCTL KC_LCTRL 171#define KC_LCTL KC_LEFT_CTRL
154#define KC_LSFT KC_LSHIFT 172#define KC_LSFT KC_LEFT_SHIFT
155#define KC_LOPT KC_LALT 173#define KC_LALT KC_LEFT_ALT
156#define KC_LCMD KC_LGUI 174#define KC_LOPT KC_LEFT_ALT
157#define KC_LWIN KC_LGUI 175#define KC_LGUI KC_LEFT_GUI
158#define KC_RCTL KC_RCTRL 176#define KC_LCMD KC_LEFT_GUI
159#define KC_RSFT KC_RSHIFT 177#define KC_LWIN KC_LEFT_GUI
160#define KC_ALGR KC_RALT 178#define KC_RCTL KC_RIGHT_CTRL
161#define KC_ROPT KC_RALT 179#define KC_RSFT KC_RIGHT_SHIFT
162#define KC_RCMD KC_RGUI 180#define KC_RALT KC_RIGHT_ALT
163#define KC_RWIN KC_RGUI 181#define KC_ALGR KC_RIGHT_ALT
182#define KC_ROPT KC_RIGHT_ALT
183#define KC_RGUI KC_RIGHT_GUI
184#define KC_RCMD KC_RIGHT_GUI
185#define KC_RWIN KC_RIGHT_GUI
164 186
165/* Generic Desktop Page (0x01) */ 187/* Generic Desktop Page (0x01) */
166#define KC_PWR KC_SYSTEM_POWER 188#define KC_PWR KC_SYSTEM_POWER
167#define KC_SLEP KC_SYSTEM_SLEEP 189#define KC_SLEP KC_SYSTEM_SLEEP
168#define KC_WAKE KC_SYSTEM_WAKE 190#define KC_WAKE KC_SYSTEM_WAKE
169 191
@@ -193,7 +215,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
193 215
194/* System Specific */ 216/* System Specific */
195#define KC_BRMU KC_PAUSE 217#define KC_BRMU KC_PAUSE
196#define KC_BRMD KC_SCROLLLOCK 218#define KC_BRMD KC_SCROLL_LOCK
197 219
198/* Mouse Keys */ 220/* Mouse Keys */
199#define KC_MS_U KC_MS_UP 221#define KC_MS_U KC_MS_UP
@@ -216,6 +238,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
216#define KC_ACL1 KC_MS_ACCEL1 238#define KC_ACL1 KC_MS_ACCEL1
217#define KC_ACL2 KC_MS_ACCEL2 239#define KC_ACL2 KC_MS_ACCEL2
218 240
241// clang-format on
242
219/* Keyboard/Keypad Page (0x07) */ 243/* Keyboard/Keypad Page (0x07) */
220enum hid_keyboard_keypad_usage { 244enum hid_keyboard_keypad_usage {
221 KC_NO = 0x00, 245 KC_NO = 0x00,
@@ -260,22 +284,22 @@ enum hid_keyboard_keypad_usage {
260 KC_0, 284 KC_0,
261 KC_ENTER, 285 KC_ENTER,
262 KC_ESCAPE, 286 KC_ESCAPE,
263 KC_BSPACE, 287 KC_BACKSPACE,
264 KC_TAB, 288 KC_TAB,
265 KC_SPACE, 289 KC_SPACE,
266 KC_MINUS, 290 KC_MINUS,
267 KC_EQUAL, 291 KC_EQUAL,
268 KC_LBRACKET, 292 KC_LEFT_BRACKET,
269 KC_RBRACKET, // 0x30 293 KC_RIGHT_BRACKET, // 0x30
270 KC_BSLASH, 294 KC_BACKSLASH,
271 KC_NONUS_HASH, 295 KC_NONUS_HASH,
272 KC_SCOLON, 296 KC_SEMICOLON,
273 KC_QUOTE, 297 KC_QUOTE,
274 KC_GRAVE, 298 KC_GRAVE,
275 KC_COMMA, 299 KC_COMMA,
276 KC_DOT, 300 KC_DOT,
277 KC_SLASH, 301 KC_SLASH,
278 KC_CAPSLOCK, 302 KC_CAPS_LOCK,
279 KC_F1, 303 KC_F1,
280 KC_F2, 304 KC_F2,
281 KC_F3, 305 KC_F3,
@@ -288,20 +312,20 @@ enum hid_keyboard_keypad_usage {
288 KC_F10, 312 KC_F10,
289 KC_F11, 313 KC_F11,
290 KC_F12, 314 KC_F12,
291 KC_PSCREEN, 315 KC_PRINT_SCREEN,
292 KC_SCROLLLOCK, 316 KC_SCROLL_LOCK,
293 KC_PAUSE, 317 KC_PAUSE,
294 KC_INSERT, 318 KC_INSERT,
295 KC_HOME, 319 KC_HOME,
296 KC_PGUP, 320 KC_PAGE_UP,
297 KC_DELETE, 321 KC_DELETE,
298 KC_END, 322 KC_END,
299 KC_PGDOWN, 323 KC_PAGE_DOWN,
300 KC_RIGHT, 324 KC_RIGHT,
301 KC_LEFT, // 0x50 325 KC_LEFT, // 0x50
302 KC_DOWN, 326 KC_DOWN,
303 KC_UP, 327 KC_UP,
304 KC_NUMLOCK, 328 KC_NUM_LOCK,
305 KC_KP_SLASH, 329 KC_KP_SLASH,
306 KC_KP_ASTERISK, 330 KC_KP_ASTERISK,
307 KC_KP_MINUS, 331 KC_KP_MINUS,
@@ -318,9 +342,9 @@ enum hid_keyboard_keypad_usage {
318 KC_KP_9, 342 KC_KP_9,
319 KC_KP_0, 343 KC_KP_0,
320 KC_KP_DOT, 344 KC_KP_DOT,
321 KC_NONUS_BSLASH, 345 KC_NONUS_BACKSLASH,
322 KC_APPLICATION, 346 KC_APPLICATION,
323 KC_POWER, 347 KC_KB_POWER,
324 KC_KP_EQUAL, 348 KC_KP_EQUAL,
325 KC_F13, 349 KC_F13,
326 KC_F14, 350 KC_F14,
@@ -345,34 +369,34 @@ enum hid_keyboard_keypad_usage {
345 KC_COPY, 369 KC_COPY,
346 KC_PASTE, 370 KC_PASTE,
347 KC_FIND, 371 KC_FIND,
348 KC__MUTE, 372 KC_KB_MUTE,
349 KC__VOLUP, // 0x80 373 KC_KB_VOLUME_UP, // 0x80
350 KC__VOLDOWN, 374 KC_KB_VOLUME_DOWN,
351 KC_LOCKING_CAPS, 375 KC_LOCKING_CAPS_LOCK,
352 KC_LOCKING_NUM, 376 KC_LOCKING_NUM_LOCK,
353 KC_LOCKING_SCROLL, 377 KC_LOCKING_SCROLL_LOCK,
354 KC_KP_COMMA, 378 KC_KP_COMMA,
355 KC_KP_EQUAL_AS400, 379 KC_KP_EQUAL_AS400,
356 KC_INT1, 380 KC_INTERNATIONAL_1,
357 KC_INT2, 381 KC_INTERNATIONAL_2,
358 KC_INT3, 382 KC_INTERNATIONAL_3,
359 KC_INT4, 383 KC_INTERNATIONAL_4,
360 KC_INT5, 384 KC_INTERNATIONAL_5,
361 KC_INT6, 385 KC_INTERNATIONAL_6,
362 KC_INT7, 386 KC_INTERNATIONAL_7,
363 KC_INT8, 387 KC_INTERNATIONAL_8,
364 KC_INT9, 388 KC_INTERNATIONAL_9,
365 KC_LANG1, // 0x90 389 KC_LANGUAGE_1, // 0x90
366 KC_LANG2, 390 KC_LANGUAGE_2,
367 KC_LANG3, 391 KC_LANGUAGE_3,
368 KC_LANG4, 392 KC_LANGUAGE_4,
369 KC_LANG5, 393 KC_LANGUAGE_5,
370 KC_LANG6, 394 KC_LANGUAGE_6,
371 KC_LANG7, 395 KC_LANGUAGE_7,
372 KC_LANG8, 396 KC_LANGUAGE_8,
373 KC_LANG9, 397 KC_LANGUAGE_9,
374 KC_ALT_ERASE, 398 KC_ALTERNATE_ERASE,
375 KC_SYSREQ, 399 KC_SYSTEM_REQUEST,
376 KC_CANCEL, 400 KC_CANCEL,
377 KC_CLEAR, 401 KC_CLEAR,
378 KC_PRIOR, 402 KC_PRIOR,
@@ -397,12 +421,12 @@ enum hid_keyboard_keypad_usage {
397 KC_DECIMAL_SEPARATOR, 421 KC_DECIMAL_SEPARATOR,
398 KC_CURRENCY_UNIT, 422 KC_CURRENCY_UNIT,
399 KC_CURRENCY_SUB_UNIT, 423 KC_CURRENCY_SUB_UNIT,
400 KC_KP_LPAREN, 424 KC_KP_LEFT_PARENTHESIS,
401 KC_KP_RPAREN, 425 KC_KP_RIGHT_PARENTHESIS,
402 KC_KP_LCBRACKET, 426 KC_KP_LEFT_BRACE,
403 KC_KP_RCBRACKET, 427 KC_KP_RIGHT_BRACE,
404 KC_KP_TAB, 428 KC_KP_TAB,
405 KC_KP_BSPACE, 429 KC_KP_BACKSPACE,
406 KC_KP_A, 430 KC_KP_A,
407 KC_KP_B, 431 KC_KP_B,
408 KC_KP_C, 432 KC_KP_C,
@@ -411,17 +435,17 @@ enum hid_keyboard_keypad_usage {
411 KC_KP_F, 435 KC_KP_F,
412 KC_KP_XOR, 436 KC_KP_XOR,
413 KC_KP_HAT, 437 KC_KP_HAT,
414 KC_KP_PERC, 438 KC_KP_PERCENT,
415 KC_KP_LT, 439 KC_KP_LESS_THAN,
416 KC_KP_GT, 440 KC_KP_GREATER_THAN,
417 KC_KP_AND, 441 KC_KP_AND,
418 KC_KP_LAZYAND, 442 KC_KP_LAZY_AND,
419 KC_KP_OR, 443 KC_KP_OR,
420 KC_KP_LAZYOR, 444 KC_KP_LAZY_OR,
421 KC_KP_COLON, 445 KC_KP_COLON,
422 KC_KP_HASH, 446 KC_KP_HASH,
423 KC_KP_SPACE, 447 KC_KP_SPACE,
424 KC_KP_ATMARK, 448 KC_KP_AT,
425 KC_KP_EXCLAMATION, 449 KC_KP_EXCLAMATION,
426 KC_KP_MEM_STORE, //0xD0 450 KC_KP_MEM_STORE, //0xD0
427 KC_KP_MEM_RECALL, 451 KC_KP_MEM_RECALL,
@@ -440,14 +464,14 @@ enum hid_keyboard_keypad_usage {
440#endif 464#endif
441 465
442 /* Modifiers */ 466 /* Modifiers */
443 KC_LCTRL = 0xE0, 467 KC_LEFT_CTRL = 0xE0,
444 KC_LSHIFT, 468 KC_LEFT_SHIFT,
445 KC_LALT, 469 KC_LEFT_ALT,
446 KC_LGUI, 470 KC_LEFT_GUI,
447 KC_RCTRL, 471 KC_RIGHT_CTRL,
448 KC_RSHIFT, 472 KC_RIGHT_SHIFT,
449 KC_RALT, 473 KC_RIGHT_ALT,
450 KC_RGUI 474 KC_RIGHT_GUI
451 475
452 // ********************************************** 476 // **********************************************
453 // * 0xF0-0xFF are unallocated in the HID spec. * 477 // * 0xF0-0xFF are unallocated in the HID spec. *
@@ -558,3 +582,5 @@ enum mouse_keys {
558 KC_MS_ACCEL1, 582 KC_MS_ACCEL1,
559 KC_MS_ACCEL2 // 0xFF 583 KC_MS_ACCEL2 // 0xFF
560}; 584};
585
586#include "keycode_legacy.h"