diff options
Diffstat (limited to 'quantum/keycode.h')
-rw-r--r-- | quantum/keycode.h | 560 |
1 files changed, 560 insertions, 0 deletions
diff --git a/quantum/keycode.h b/quantum/keycode.h new file mode 100644 index 000000000..8facabd81 --- /dev/null +++ b/quantum/keycode.h | |||
@@ -0,0 +1,560 @@ | |||
1 | /* | ||
2 | Copyright 2011,2012 Jun Wako <wakojun@gmail.com> | ||
3 | |||
4 | This program is free software: you can redistribute it and/or modify | ||
5 | it under the terms of the GNU General Public License as published by | ||
6 | the Free Software Foundation, either version 2 of the License, or | ||
7 | (at your option) any later version. | ||
8 | |||
9 | This program is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | GNU General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU General Public License | ||
15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | /* | ||
19 | * Keycodes based on HID Keyboard/Keypad Usage Page (0x07) plus media keys from Generic Desktop Page (0x01) and Consumer Page (0x0C) | ||
20 | * | ||
21 | * See https://web.archive.org/web/20060218214400/http://www.usb.org/developers/devclass_docs/Hut1_12.pdf | ||
22 | * or http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (older) | ||
23 | */ | ||
24 | |||
25 | #pragma once | ||
26 | |||
27 | /* FIXME: Add doxygen comments here */ | ||
28 | |||
29 | #define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) | ||
30 | #define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) | ||
31 | #define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) | ||
32 | #define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI) | ||
33 | |||
34 | #define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) | ||
35 | #define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) | ||
36 | #define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_BRID) | ||
37 | |||
38 | #define IS_FN(code) (KC_FN0 <= (code) && (code) <= KC_FN31) | ||
39 | |||
40 | #define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) | ||
41 | #define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) | ||
42 | #define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN8) | ||
43 | #define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) | ||
44 | #define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2) | ||
45 | |||
46 | #define MOD_BIT(code) (1 << MOD_INDEX(code)) | ||
47 | #define MOD_INDEX(code) ((code)&0x07) | ||
48 | |||
49 | #define MOD_MASK_CTRL (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL)) | ||
50 | #define MOD_MASK_SHIFT (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) | ||
51 | #define MOD_MASK_ALT (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) | ||
52 | #define MOD_MASK_GUI (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) | ||
53 | #define MOD_MASK_CS (MOD_MASK_CTRL | MOD_MASK_SHIFT) | ||
54 | #define MOD_MASK_CA (MOD_MASK_CTRL | MOD_MASK_ALT) | ||
55 | #define MOD_MASK_CG (MOD_MASK_CTRL | MOD_MASK_GUI) | ||
56 | #define MOD_MASK_SA (MOD_MASK_SHIFT | MOD_MASK_ALT) | ||
57 | #define MOD_MASK_SG (MOD_MASK_SHIFT | MOD_MASK_GUI) | ||
58 | #define MOD_MASK_AG (MOD_MASK_ALT | MOD_MASK_GUI) | ||
59 | #define MOD_MASK_CSA (MOD_MASK_CTRL | MOD_MASK_SHIFT | MOD_MASK_ALT) | ||
60 | #define MOD_MASK_CSG (MOD_MASK_CTRL | MOD_MASK_SHIFT | MOD_MASK_GUI) | ||
61 | #define MOD_MASK_CAG (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI) | ||
62 | #define MOD_MASK_SAG (MOD_MASK_SHIFT | MOD_MASK_ALT | MOD_MASK_GUI) | ||
63 | #define MOD_MASK_CSAG (MOD_MASK_CTRL | MOD_MASK_SHIFT | MOD_MASK_ALT | MOD_MASK_GUI) | ||
64 | |||
65 | #define FN_BIT(code) (1 << FN_INDEX(code)) | ||
66 | #define FN_INDEX(code) ((code)-KC_FN0) | ||
67 | #define FN_MIN KC_FN0 | ||
68 | #define FN_MAX KC_FN31 | ||
69 | |||
70 | /* | ||
71 | * Short names for ease of definition of keymap | ||
72 | */ | ||
73 | /* Transparent */ | ||
74 | #define KC_TRANSPARENT 0x01 | ||
75 | #define KC_TRNS KC_TRANSPARENT | ||
76 | |||
77 | /* Punctuation */ | ||
78 | #define KC_ENT KC_ENTER | ||
79 | #define KC_ESC KC_ESCAPE | ||
80 | #define KC_BSPC KC_BSPACE | ||
81 | #define KC_SPC KC_SPACE | ||
82 | #define KC_MINS KC_MINUS | ||
83 | #define KC_EQL KC_EQUAL | ||
84 | #define KC_LBRC KC_LBRACKET | ||
85 | #define KC_RBRC KC_RBRACKET | ||
86 | #define KC_BSLS KC_BSLASH | ||
87 | #define KC_NUHS KC_NONUS_HASH | ||
88 | #define KC_SCLN KC_SCOLON | ||
89 | #define KC_QUOT KC_QUOTE | ||
90 | #define KC_GRV KC_GRAVE | ||
91 | #define KC_COMM KC_COMMA | ||
92 | #define KC_SLSH KC_SLASH | ||
93 | #define KC_NUBS KC_NONUS_BSLASH | ||
94 | |||
95 | /* Lock Keys */ | ||
96 | #define KC_CLCK KC_CAPSLOCK | ||
97 | #define KC_CAPS KC_CAPSLOCK | ||
98 | #define KC_SLCK KC_SCROLLLOCK | ||
99 | #define KC_NLCK KC_NUMLOCK | ||
100 | #define KC_LCAP KC_LOCKING_CAPS | ||
101 | #define KC_LNUM KC_LOCKING_NUM | ||
102 | #define KC_LSCR KC_LOCKING_SCROLL | ||
103 | |||
104 | /* Commands */ | ||
105 | #define KC_PSCR KC_PSCREEN | ||
106 | #define KC_PAUS KC_PAUSE | ||
107 | #define KC_BRK KC_PAUSE | ||
108 | #define KC_INS KC_INSERT | ||
109 | #define KC_DEL KC_DELETE | ||
110 | #define KC_PGDN KC_PGDOWN | ||
111 | #define KC_RGHT KC_RIGHT | ||
112 | #define KC_APP KC_APPLICATION | ||
113 | #define KC_EXEC KC_EXECUTE | ||
114 | #define KC_SLCT KC_SELECT | ||
115 | #define KC_AGIN KC_AGAIN | ||
116 | #define KC_PSTE KC_PASTE | ||
117 | #define KC_ERAS KC_ALT_ERASE | ||
118 | #define KC_CLR KC_CLEAR | ||
119 | |||
120 | /* Keypad */ | ||
121 | #define KC_PSLS KC_KP_SLASH | ||
122 | #define KC_PAST KC_KP_ASTERISK | ||
123 | #define KC_PMNS KC_KP_MINUS | ||
124 | #define KC_PPLS KC_KP_PLUS | ||
125 | #define KC_PENT KC_KP_ENTER | ||
126 | #define KC_P1 KC_KP_1 | ||
127 | #define KC_P2 KC_KP_2 | ||
128 | #define KC_P3 KC_KP_3 | ||
129 | #define KC_P4 KC_KP_4 | ||
130 | #define KC_P5 KC_KP_5 | ||
131 | #define KC_P6 KC_KP_6 | ||
132 | #define KC_P7 KC_KP_7 | ||
133 | #define KC_P8 KC_KP_8 | ||
134 | #define KC_P9 KC_KP_9 | ||
135 | #define KC_P0 KC_KP_0 | ||
136 | #define KC_PDOT KC_KP_DOT | ||
137 | #define KC_PEQL KC_KP_EQUAL | ||
138 | #define KC_PCMM KC_KP_COMMA | ||
139 | |||
140 | /* Japanese specific */ | ||
141 | #define KC_ZKHK KC_GRAVE | ||
142 | #define KC_RO KC_INT1 | ||
143 | #define KC_KANA KC_INT2 | ||
144 | #define KC_JYEN KC_INT3 | ||
145 | #define KC_HENK KC_INT4 | ||
146 | #define KC_MHEN KC_INT5 | ||
147 | |||
148 | /* Korean specific */ | ||
149 | #define KC_HAEN KC_LANG1 | ||
150 | #define KC_HANJ KC_LANG2 | ||
151 | |||
152 | /* Modifiers */ | ||
153 | #define KC_LCTL KC_LCTRL | ||
154 | #define KC_LSFT KC_LSHIFT | ||
155 | #define KC_LOPT KC_LALT | ||
156 | #define KC_LCMD KC_LGUI | ||
157 | #define KC_LWIN KC_LGUI | ||
158 | #define KC_RCTL KC_RCTRL | ||
159 | #define KC_RSFT KC_RSHIFT | ||
160 | #define KC_ALGR KC_RALT | ||
161 | #define KC_ROPT KC_RALT | ||
162 | #define KC_RCMD KC_RGUI | ||
163 | #define KC_RWIN KC_RGUI | ||
164 | |||
165 | /* Generic Desktop Page (0x01) */ | ||
166 | #define KC_PWR KC_SYSTEM_POWER | ||
167 | #define KC_SLEP KC_SYSTEM_SLEEP | ||
168 | #define KC_WAKE KC_SYSTEM_WAKE | ||
169 | |||
170 | /* Consumer Page (0x0C) */ | ||
171 | #define KC_MUTE KC_AUDIO_MUTE | ||
172 | #define KC_VOLU KC_AUDIO_VOL_UP | ||
173 | #define KC_VOLD KC_AUDIO_VOL_DOWN | ||
174 | #define KC_MNXT KC_MEDIA_NEXT_TRACK | ||
175 | #define KC_MPRV KC_MEDIA_PREV_TRACK | ||
176 | #define KC_MSTP KC_MEDIA_STOP | ||
177 | #define KC_MPLY KC_MEDIA_PLAY_PAUSE | ||
178 | #define KC_MSEL KC_MEDIA_SELECT | ||
179 | #define KC_EJCT KC_MEDIA_EJECT | ||
180 | #define KC_CALC KC_CALCULATOR | ||
181 | #define KC_MYCM KC_MY_COMPUTER | ||
182 | #define KC_WSCH KC_WWW_SEARCH | ||
183 | #define KC_WHOM KC_WWW_HOME | ||
184 | #define KC_WBAK KC_WWW_BACK | ||
185 | #define KC_WFWD KC_WWW_FORWARD | ||
186 | #define KC_WSTP KC_WWW_STOP | ||
187 | #define KC_WREF KC_WWW_REFRESH | ||
188 | #define KC_WFAV KC_WWW_FAVORITES | ||
189 | #define KC_MFFD KC_MEDIA_FAST_FORWARD | ||
190 | #define KC_MRWD KC_MEDIA_REWIND | ||
191 | #define KC_BRIU KC_BRIGHTNESS_UP | ||
192 | #define KC_BRID KC_BRIGHTNESS_DOWN | ||
193 | |||
194 | /* System Specific */ | ||
195 | #define KC_BRMU KC_PAUSE | ||
196 | #define KC_BRMD KC_SCROLLLOCK | ||
197 | |||
198 | /* Mouse Keys */ | ||
199 | #define KC_MS_U KC_MS_UP | ||
200 | #define KC_MS_D KC_MS_DOWN | ||
201 | #define KC_MS_L KC_MS_LEFT | ||
202 | #define KC_MS_R KC_MS_RIGHT | ||
203 | #define KC_BTN1 KC_MS_BTN1 | ||
204 | #define KC_BTN2 KC_MS_BTN2 | ||
205 | #define KC_BTN3 KC_MS_BTN3 | ||
206 | #define KC_BTN4 KC_MS_BTN4 | ||
207 | #define KC_BTN5 KC_MS_BTN5 | ||
208 | #define KC_BTN6 KC_MS_BTN6 | ||
209 | #define KC_BTN7 KC_MS_BTN7 | ||
210 | #define KC_BTN8 KC_MS_BTN8 | ||
211 | #define KC_WH_U KC_MS_WH_UP | ||
212 | #define KC_WH_D KC_MS_WH_DOWN | ||
213 | #define KC_WH_L KC_MS_WH_LEFT | ||
214 | #define KC_WH_R KC_MS_WH_RIGHT | ||
215 | #define KC_ACL0 KC_MS_ACCEL0 | ||
216 | #define KC_ACL1 KC_MS_ACCEL1 | ||
217 | #define KC_ACL2 KC_MS_ACCEL2 | ||
218 | |||
219 | /* Keyboard/Keypad Page (0x07) */ | ||
220 | enum hid_keyboard_keypad_usage { | ||
221 | KC_NO = 0x00, | ||
222 | KC_ROLL_OVER, | ||
223 | KC_POST_FAIL, | ||
224 | KC_UNDEFINED, | ||
225 | KC_A, | ||
226 | KC_B, | ||
227 | KC_C, | ||
228 | KC_D, | ||
229 | KC_E, | ||
230 | KC_F, | ||
231 | KC_G, | ||
232 | KC_H, | ||
233 | KC_I, | ||
234 | KC_J, | ||
235 | KC_K, | ||
236 | KC_L, | ||
237 | KC_M, // 0x10 | ||
238 | KC_N, | ||
239 | KC_O, | ||
240 | KC_P, | ||
241 | KC_Q, | ||
242 | KC_R, | ||
243 | KC_S, | ||
244 | KC_T, | ||
245 | KC_U, | ||
246 | KC_V, | ||
247 | KC_W, | ||
248 | KC_X, | ||
249 | KC_Y, | ||
250 | KC_Z, | ||
251 | KC_1, | ||
252 | KC_2, | ||
253 | KC_3, // 0x20 | ||
254 | KC_4, | ||
255 | KC_5, | ||
256 | KC_6, | ||
257 | KC_7, | ||
258 | KC_8, | ||
259 | KC_9, | ||
260 | KC_0, | ||
261 | KC_ENTER, | ||
262 | KC_ESCAPE, | ||
263 | KC_BSPACE, | ||
264 | KC_TAB, | ||
265 | KC_SPACE, | ||
266 | KC_MINUS, | ||
267 | KC_EQUAL, | ||
268 | KC_LBRACKET, | ||
269 | KC_RBRACKET, // 0x30 | ||
270 | KC_BSLASH, | ||
271 | KC_NONUS_HASH, | ||
272 | KC_SCOLON, | ||
273 | KC_QUOTE, | ||
274 | KC_GRAVE, | ||
275 | KC_COMMA, | ||
276 | KC_DOT, | ||
277 | KC_SLASH, | ||
278 | KC_CAPSLOCK, | ||
279 | KC_F1, | ||
280 | KC_F2, | ||
281 | KC_F3, | ||
282 | KC_F4, | ||
283 | KC_F5, | ||
284 | KC_F6, | ||
285 | KC_F7, // 0x40 | ||
286 | KC_F8, | ||
287 | KC_F9, | ||
288 | KC_F10, | ||
289 | KC_F11, | ||
290 | KC_F12, | ||
291 | KC_PSCREEN, | ||
292 | KC_SCROLLLOCK, | ||
293 | KC_PAUSE, | ||
294 | KC_INSERT, | ||
295 | KC_HOME, | ||
296 | KC_PGUP, | ||
297 | KC_DELETE, | ||
298 | KC_END, | ||
299 | KC_PGDOWN, | ||
300 | KC_RIGHT, | ||
301 | KC_LEFT, // 0x50 | ||
302 | KC_DOWN, | ||
303 | KC_UP, | ||
304 | KC_NUMLOCK, | ||
305 | KC_KP_SLASH, | ||
306 | KC_KP_ASTERISK, | ||
307 | KC_KP_MINUS, | ||
308 | KC_KP_PLUS, | ||
309 | KC_KP_ENTER, | ||
310 | KC_KP_1, | ||
311 | KC_KP_2, | ||
312 | KC_KP_3, | ||
313 | KC_KP_4, | ||
314 | KC_KP_5, | ||
315 | KC_KP_6, | ||
316 | KC_KP_7, | ||
317 | KC_KP_8, // 0x60 | ||
318 | KC_KP_9, | ||
319 | KC_KP_0, | ||
320 | KC_KP_DOT, | ||
321 | KC_NONUS_BSLASH, | ||
322 | KC_APPLICATION, | ||
323 | KC_POWER, | ||
324 | KC_KP_EQUAL, | ||
325 | KC_F13, | ||
326 | KC_F14, | ||
327 | KC_F15, | ||
328 | KC_F16, | ||
329 | KC_F17, | ||
330 | KC_F18, | ||
331 | KC_F19, | ||
332 | KC_F20, | ||
333 | KC_F21, // 0x70 | ||
334 | KC_F22, | ||
335 | KC_F23, | ||
336 | KC_F24, | ||
337 | KC_EXECUTE, | ||
338 | KC_HELP, | ||
339 | KC_MENU, | ||
340 | KC_SELECT, | ||
341 | KC_STOP, | ||
342 | KC_AGAIN, | ||
343 | KC_UNDO, | ||
344 | KC_CUT, | ||
345 | KC_COPY, | ||
346 | KC_PASTE, | ||
347 | KC_FIND, | ||
348 | KC__MUTE, | ||
349 | KC__VOLUP, // 0x80 | ||
350 | KC__VOLDOWN, | ||
351 | KC_LOCKING_CAPS, | ||
352 | KC_LOCKING_NUM, | ||
353 | KC_LOCKING_SCROLL, | ||
354 | KC_KP_COMMA, | ||
355 | KC_KP_EQUAL_AS400, | ||
356 | KC_INT1, | ||
357 | KC_INT2, | ||
358 | KC_INT3, | ||
359 | KC_INT4, | ||
360 | KC_INT5, | ||
361 | KC_INT6, | ||
362 | KC_INT7, | ||
363 | KC_INT8, | ||
364 | KC_INT9, | ||
365 | KC_LANG1, // 0x90 | ||
366 | KC_LANG2, | ||
367 | KC_LANG3, | ||
368 | KC_LANG4, | ||
369 | KC_LANG5, | ||
370 | KC_LANG6, | ||
371 | KC_LANG7, | ||
372 | KC_LANG8, | ||
373 | KC_LANG9, | ||
374 | KC_ALT_ERASE, | ||
375 | KC_SYSREQ, | ||
376 | KC_CANCEL, | ||
377 | KC_CLEAR, | ||
378 | KC_PRIOR, | ||
379 | KC_RETURN, | ||
380 | KC_SEPARATOR, | ||
381 | KC_OUT, // 0xA0 | ||
382 | KC_OPER, | ||
383 | KC_CLEAR_AGAIN, | ||
384 | KC_CRSEL, | ||
385 | KC_EXSEL, | ||
386 | |||
387 | #if 0 | ||
388 | // *************************************************************** | ||
389 | // These keycodes are present in the HID spec, but are * | ||
390 | // nonfunctional on modern OSes. QMK uses this range (0xA5-0xDF) * | ||
391 | // for the media and function keys instead - see below. * | ||
392 | // *************************************************************** | ||
393 | |||
394 | KC_KP_00 = 0xB0, | ||
395 | KC_KP_000, | ||
396 | KC_THOUSANDS_SEPARATOR, | ||
397 | KC_DECIMAL_SEPARATOR, | ||
398 | KC_CURRENCY_UNIT, | ||
399 | KC_CURRENCY_SUB_UNIT, | ||
400 | KC_KP_LPAREN, | ||
401 | KC_KP_RPAREN, | ||
402 | KC_KP_LCBRACKET, | ||
403 | KC_KP_RCBRACKET, | ||
404 | KC_KP_TAB, | ||
405 | KC_KP_BSPACE, | ||
406 | KC_KP_A, | ||
407 | KC_KP_B, | ||
408 | KC_KP_C, | ||
409 | KC_KP_D, | ||
410 | KC_KP_E, //0xC0 | ||
411 | KC_KP_F, | ||
412 | KC_KP_XOR, | ||
413 | KC_KP_HAT, | ||
414 | KC_KP_PERC, | ||
415 | KC_KP_LT, | ||
416 | KC_KP_GT, | ||
417 | KC_KP_AND, | ||
418 | KC_KP_LAZYAND, | ||
419 | KC_KP_OR, | ||
420 | KC_KP_LAZYOR, | ||
421 | KC_KP_COLON, | ||
422 | KC_KP_HASH, | ||
423 | KC_KP_SPACE, | ||
424 | KC_KP_ATMARK, | ||
425 | KC_KP_EXCLAMATION, | ||
426 | KC_KP_MEM_STORE, //0xD0 | ||
427 | KC_KP_MEM_RECALL, | ||
428 | KC_KP_MEM_CLEAR, | ||
429 | KC_KP_MEM_ADD, | ||
430 | KC_KP_MEM_SUB, | ||
431 | KC_KP_MEM_MUL, | ||
432 | KC_KP_MEM_DIV, | ||
433 | KC_KP_PLUS_MINUS, | ||
434 | KC_KP_CLEAR, | ||
435 | KC_KP_CLEAR_ENTRY, | ||
436 | KC_KP_BINARY, | ||
437 | KC_KP_OCTAL, | ||
438 | KC_KP_DECIMAL, | ||
439 | KC_KP_HEXADECIMAL, | ||
440 | #endif | ||
441 | |||
442 | /* Modifiers */ | ||
443 | KC_LCTRL = 0xE0, | ||
444 | KC_LSHIFT, | ||
445 | KC_LALT, | ||
446 | KC_LGUI, | ||
447 | KC_RCTRL, | ||
448 | KC_RSHIFT, | ||
449 | KC_RALT, | ||
450 | KC_RGUI | ||
451 | |||
452 | // ********************************************** | ||
453 | // * 0xF0-0xFF are unallocated in the HID spec. * | ||
454 | // * QMK uses these for Mouse Keys - see below. * | ||
455 | // ********************************************** | ||
456 | }; | ||
457 | |||
458 | /* Media and Function keys */ | ||
459 | enum internal_special_keycodes { | ||
460 | /* Generic Desktop Page (0x01) */ | ||
461 | KC_SYSTEM_POWER = 0xA5, | ||
462 | KC_SYSTEM_SLEEP, | ||
463 | KC_SYSTEM_WAKE, | ||
464 | |||
465 | /* Consumer Page (0x0C) */ | ||
466 | KC_AUDIO_MUTE, | ||
467 | KC_AUDIO_VOL_UP, | ||
468 | KC_AUDIO_VOL_DOWN, | ||
469 | KC_MEDIA_NEXT_TRACK, | ||
470 | KC_MEDIA_PREV_TRACK, | ||
471 | KC_MEDIA_STOP, | ||
472 | KC_MEDIA_PLAY_PAUSE, | ||
473 | KC_MEDIA_SELECT, | ||
474 | KC_MEDIA_EJECT, // 0xB0 | ||
475 | KC_MAIL, | ||
476 | KC_CALCULATOR, | ||
477 | KC_MY_COMPUTER, | ||
478 | KC_WWW_SEARCH, | ||
479 | KC_WWW_HOME, | ||
480 | KC_WWW_BACK, | ||
481 | KC_WWW_FORWARD, | ||
482 | KC_WWW_STOP, | ||
483 | KC_WWW_REFRESH, | ||
484 | KC_WWW_FAVORITES, | ||
485 | KC_MEDIA_FAST_FORWARD, | ||
486 | KC_MEDIA_REWIND, | ||
487 | KC_BRIGHTNESS_UP, | ||
488 | KC_BRIGHTNESS_DOWN, | ||
489 | |||
490 | /* Fn keys */ | ||
491 | KC_FN0 = 0xC0, | ||
492 | KC_FN1, | ||
493 | KC_FN2, | ||
494 | KC_FN3, | ||
495 | KC_FN4, | ||
496 | KC_FN5, | ||
497 | KC_FN6, | ||
498 | KC_FN7, | ||
499 | KC_FN8, | ||
500 | KC_FN9, | ||
501 | KC_FN10, | ||
502 | KC_FN11, | ||
503 | KC_FN12, | ||
504 | KC_FN13, | ||
505 | KC_FN14, | ||
506 | KC_FN15, | ||
507 | KC_FN16, // 0xD0 | ||
508 | KC_FN17, | ||
509 | KC_FN18, | ||
510 | KC_FN19, | ||
511 | KC_FN20, | ||
512 | KC_FN21, | ||
513 | KC_FN22, | ||
514 | KC_FN23, | ||
515 | KC_FN24, | ||
516 | KC_FN25, | ||
517 | KC_FN26, | ||
518 | KC_FN27, | ||
519 | KC_FN28, | ||
520 | KC_FN29, | ||
521 | KC_FN30, | ||
522 | KC_FN31 | ||
523 | }; | ||
524 | |||
525 | enum mouse_keys { | ||
526 | /* Mouse Buttons */ | ||
527 | #ifdef VIA_ENABLE | ||
528 | KC_MS_UP = 0xF0, | ||
529 | #else | ||
530 | KC_MS_UP = 0xED, | ||
531 | #endif | ||
532 | KC_MS_DOWN, | ||
533 | KC_MS_LEFT, | ||
534 | KC_MS_RIGHT, // 0xF0 | ||
535 | KC_MS_BTN1, | ||
536 | KC_MS_BTN2, | ||
537 | KC_MS_BTN3, | ||
538 | KC_MS_BTN4, | ||
539 | KC_MS_BTN5, | ||
540 | #ifdef VIA_ENABLE | ||
541 | KC_MS_BTN6 = KC_MS_BTN5, | ||
542 | KC_MS_BTN7 = KC_MS_BTN5, | ||
543 | KC_MS_BTN8 = KC_MS_BTN5, | ||
544 | #else | ||
545 | KC_MS_BTN6, | ||
546 | KC_MS_BTN7, | ||
547 | KC_MS_BTN8, | ||
548 | #endif | ||
549 | |||
550 | /* Mouse Wheel */ | ||
551 | KC_MS_WH_UP, | ||
552 | KC_MS_WH_DOWN, | ||
553 | KC_MS_WH_LEFT, | ||
554 | KC_MS_WH_RIGHT, | ||
555 | |||
556 | /* Acceleration */ | ||
557 | KC_MS_ACCEL0, | ||
558 | KC_MS_ACCEL1, | ||
559 | KC_MS_ACCEL2 // 0xFF | ||
560 | }; | ||