diff options
| author | Joel Challis <git@zvecr.com> | 2021-08-18 00:18:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-18 00:18:58 +0100 |
| commit | b8e913c8db73ebf890e4604ee41991a34354a600 (patch) | |
| tree | 258035f8fda9f83f08a309f6cd608b9c61476678 /quantum/keycode.h | |
| parent | 96e2b13d1de227cdc2b918fb0292bd832d346a25 (diff) | |
| download | qmk_firmware-b8e913c8db73ebf890e4604ee41991a34354a600.tar.gz qmk_firmware-b8e913c8db73ebf890e4604ee41991a34354a600.zip | |
Migrate platform independent code from tmk_core -> quantum (#13673)
* Migrate action|keyboard|keycode|eeconfig from tmk_core -> quantum
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 | }; | ||
