at master 13 kB view raw
1/* Copyright 2019 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17#pragma once 18 19// clang-format off 20 21/* Punctuation */ 22#define X_ENT X_ENTER 23#define X_ESC X_ESCAPE 24#define X_BSPC X_BACKSPACE 25#define X_SPC X_SPACE 26#define X_MINS X_MINUS 27#define X_EQL X_EQUAL 28#define X_LBRC X_LEFT_BRACKET 29#define X_RBRC X_RIGHT_BRACKET 30#define X_BSLS X_BACKSLASH 31#define X_NUHS X_NONUS_HASH 32#define X_SCLN X_SEMICOLON 33#define X_QUOT X_QUOTE 34#define X_GRV X_GRAVE 35#define X_COMM X_COMMA 36#define X_SLSH X_SLASH 37#define X_NUBS X_NONUS_BACKSLASH 38 39/* Lock Keys */ 40#define X_CAPS X_CAPS_LOCK 41#define X_SCRL X_SCROLL_LOCK 42#define X_NUM X_NUM_LOCK 43#define X_LCAP X_LOCKING_CAPS_LOCK 44#define X_LNUM X_LOCKING_NUM_LOCK 45#define X_LSCR X_LOCKING_SCROLL_LOCK 46 47/* Commands */ 48#define X_PSCR X_PRINT_SCREEN 49#define X_PAUS X_PAUSE 50#define X_BRK X_PAUSE 51#define X_INS X_INSERT 52#define X_PGUP X_PAGE_UP 53#define X_DEL X_DELETE 54#define X_PGDN X_PAGE_DOWN 55#define X_RGHT X_RIGHT 56#define X_APP X_APPLICATION 57#define X_EXEC X_EXECUTE 58#define X_SLCT X_SELECT 59#define X_AGIN X_AGAIN 60#define X_PSTE X_PASTE 61#define X_ERAS X_ALTERNATE_ERASE 62#define X_SYRQ X_SYSTEM_REQUEST 63#define X_CNCL X_CANCEL 64#define X_CLR X_CLEAR 65#define X_PRIR X_PRIOR 66#define X_RETN X_RETURN 67#define X_SEPR X_SEPARATOR 68#define X_CLAG X_CLEAR_AGAIN 69#define X_CRSL X_CRSEL 70#define X_EXSL X_EXSEL 71 72/* Keypad */ 73#define X_PSLS X_KP_SLASH 74#define X_PAST X_KP_ASTERISK 75#define X_PMNS X_KP_MINUS 76#define X_PPLS X_KP_PLUS 77#define X_PENT X_KP_ENTER 78#define X_P1 X_KP_1 79#define X_P2 X_KP_2 80#define X_P3 X_KP_3 81#define X_P4 X_KP_4 82#define X_P5 X_KP_5 83#define X_P6 X_KP_6 84#define X_P7 X_KP_7 85#define X_P8 X_KP_8 86#define X_P9 X_KP_9 87#define X_P0 X_KP_0 88#define X_PDOT X_KP_DOT 89#define X_PEQL X_KP_EQUAL 90#define X_PCMM X_KP_COMMA 91 92/* Language Specific */ 93#define X_INT1 X_INTERNATIONAL_1 94#define X_INT2 X_INTERNATIONAL_2 95#define X_INT3 X_INTERNATIONAL_3 96#define X_INT4 X_INTERNATIONAL_4 97#define X_INT5 X_INTERNATIONAL_5 98#define X_INT6 X_INTERNATIONAL_6 99#define X_INT7 X_INTERNATIONAL_7 100#define X_INT8 X_INTERNATIONAL_8 101#define X_INT9 X_INTERNATIONAL_9 102#define X_LNG1 X_LANGUAGE_1 103#define X_LNG2 X_LANGUAGE_2 104#define X_LNG3 X_LANGUAGE_3 105#define X_LNG4 X_LANGUAGE_4 106#define X_LNG5 X_LANGUAGE_5 107#define X_LNG6 X_LANGUAGE_6 108#define X_LNG7 X_LANGUAGE_7 109#define X_LNG8 X_LANGUAGE_8 110#define X_LNG9 X_LANGUAGE_9 111 112/* Modifiers */ 113#define X_LCTL X_LEFT_CTRL 114#define X_LSFT X_LEFT_SHIFT 115#define X_LALT X_LEFT_ALT 116#define X_LOPT X_LEFT_ALT 117#define X_LGUI X_LEFT_GUI 118#define X_LCMD X_LEFT_GUI 119#define X_LWIN X_LEFT_GUI 120#define X_RCTL X_RIGHT_CTRL 121#define X_RSFT X_RIGHT_SHIFT 122#define X_RALT X_RIGHT_ALT 123#define X_ALGR X_RIGHT_ALT 124#define X_ROPT X_RIGHT_ALT 125#define X_RGUI X_RIGHT_GUI 126#define X_RCMD X_RIGHT_GUI 127#define X_RWIN X_RIGHT_GUI 128 129/* Generic Desktop Page (0x01) */ 130#define X_PWR X_SYSTEM_POWER 131#define X_SLEP X_SYSTEM_SLEEP 132#define X_WAKE X_SYSTEM_WAKE 133 134/* Consumer Page (0x0C) */ 135#define X_MUTE X_AUDIO_MUTE 136#define X_VOLU X_AUDIO_VOL_UP 137#define X_VOLD X_AUDIO_VOL_DOWN 138#define X_MNXT X_MEDIA_NEXT_TRACK 139#define X_MPRV X_MEDIA_PREV_TRACK 140#define X_MSTP X_MEDIA_STOP 141#define X_MPLY X_MEDIA_PLAY_PAUSE 142#define X_MSEL X_MEDIA_SELECT 143#define X_EJCT X_MEDIA_EJECT 144#define X_CALC X_CALCULATOR 145#define X_MYCM X_MY_COMPUTER 146#define X_WSCH X_WWW_SEARCH 147#define X_WHOM X_WWW_HOME 148#define X_WBAK X_WWW_BACK 149#define X_WFWD X_WWW_FORWARD 150#define X_WSTP X_WWW_STOP 151#define X_WREF X_WWW_REFRESH 152#define X_WFAV X_WWW_FAVORITES 153#define X_MFFD X_MEDIA_FAST_FORWARD 154#define X_MRWD X_MEDIA_REWIND 155#define X_BRIU X_BRIGHTNESS_UP 156#define X_BRID X_BRIGHTNESS_DOWN 157#define X_CPNL X_CONTROL_PANEL 158#define X_ASST X_ASSISTANT 159 160/* System Specific */ 161#define X_BRMU X_PAUSE 162#define X_BRMD X_SCROLL_LOCK 163 164/* Mouse Keys */ 165#define X_MS_U X_MS_UP 166#define X_MS_D X_MS_DOWN 167#define X_MS_L X_MS_LEFT 168#define X_MS_R X_MS_RIGHT 169#define X_BTN1 X_MS_BTN1 170#define X_BTN2 X_MS_BTN2 171#define X_BTN3 X_MS_BTN3 172#define X_BTN4 X_MS_BTN4 173#define X_BTN5 X_MS_BTN5 174#define X_BTN6 X_MS_BTN6 175#define X_BTN7 X_MS_BTN7 176#define X_BTN8 X_MS_BTN8 177#define X_WH_U X_MS_WH_UP 178#define X_WH_D X_MS_WH_DOWN 179#define X_WH_L X_MS_WH_LEFT 180#define X_WH_R X_MS_WH_RIGHT 181#define X_ACL0 X_MS_ACCEL0 182#define X_ACL1 X_MS_ACCEL1 183#define X_ACL2 X_MS_ACCEL2 184 185/* Keyboard/Keypad Page (0x07) */ 186#define X_A 04 187#define X_B 05 188#define X_C 06 189#define X_D 07 190#define X_E 08 191#define X_F 09 192#define X_G 0a 193#define X_H 0b 194#define X_I 0c 195#define X_J 0d 196#define X_K 0e 197#define X_L 0f 198#define X_M 10 199#define X_N 11 200#define X_O 12 201#define X_P 13 202#define X_Q 14 203#define X_R 15 204#define X_S 16 205#define X_T 17 206#define X_U 18 207#define X_V 19 208#define X_W 1a 209#define X_X 1b 210#define X_Y 1c 211#define X_Z 1d 212#define X_1 1e 213#define X_2 1f 214#define X_3 20 215#define X_4 21 216#define X_5 22 217#define X_6 23 218#define X_7 24 219#define X_8 25 220#define X_9 26 221#define X_0 27 222#define X_ENTER 28 223#define X_ESCAPE 29 224#define X_BACKSPACE 2a 225#define X_TAB 2b 226#define X_SPACE 2c 227#define X_MINUS 2d 228#define X_EQUAL 2e 229#define X_LEFT_BRACKET 2f 230#define X_RIGHT_BRACKET 30 231#define X_BACKSLASH 31 232#define X_NONUS_HASH 32 233#define X_SEMICOLON 33 234#define X_QUOTE 34 235#define X_GRAVE 35 236#define X_COMMA 36 237#define X_DOT 37 238#define X_SLASH 38 239#define X_CAPS_LOCK 39 240#define X_F1 3a 241#define X_F2 3b 242#define X_F3 3c 243#define X_F4 3d 244#define X_F5 3e 245#define X_F6 3f 246#define X_F7 40 247#define X_F8 41 248#define X_F9 42 249#define X_F10 43 250#define X_F11 44 251#define X_F12 45 252#define X_PRINT_SCREEN 46 253#define X_SCROLL_LOCK 47 254#define X_PAUSE 48 255#define X_INSERT 49 256#define X_HOME 4a 257#define X_PAGE_UP 4b 258#define X_DELETE 4c 259#define X_END 4d 260#define X_PAGE_DOWN 4e 261#define X_RIGHT 4f 262#define X_LEFT 50 263#define X_DOWN 51 264#define X_UP 52 265#define X_NUM_LOCK 53 266#define X_KP_SLASH 54 267#define X_KP_ASTERISK 55 268#define X_KP_MINUS 56 269#define X_KP_PLUS 57 270#define X_KP_ENTER 58 271#define X_KP_1 59 272#define X_KP_2 5a 273#define X_KP_3 5b 274#define X_KP_4 5c 275#define X_KP_5 5d 276#define X_KP_6 5e 277#define X_KP_7 5f 278#define X_KP_8 60 279#define X_KP_9 61 280#define X_KP_0 62 281#define X_KP_DOT 63 282#define X_NONUS_BACKSLASH 64 283#define X_APPLICATION 65 284#define X_KB_POWER 66 285#define X_KP_EQUAL 67 286#define X_F13 68 287#define X_F14 69 288#define X_F15 6a 289#define X_F16 6b 290#define X_F17 6c 291#define X_F18 6d 292#define X_F19 6e 293#define X_F20 6f 294#define X_F21 70 295#define X_F22 71 296#define X_F23 72 297#define X_F24 73 298#define X_EXECUTE 74 299#define X_HELP 75 300#define X_MENU 76 301#define X_SELECT 77 302#define X_STOP 78 303#define X_AGAIN 79 304#define X_UNDO 7a 305#define X_CUT 7b 306#define X_COPY 7c 307#define X_PASTE 7d 308#define X_FIND 7e 309#define X_KB_MUTE 7f 310#define X_KB_VOLUME_UP 80 311#define X_KB_VOLUME_DOWN 81 312#define X_LOCKING_CAPS_LOCK 82 313#define X_LOCKING_NUM_LOCK 83 314#define X_LOCKING_SCROLL_LOCK 84 315#define X_KP_COMMA 85 316#define X_KP_EQUAL_AS400 86 317#define X_INTERNATIONAL_1 87 318#define X_INTERNATIONAL_2 88 319#define X_INTERNATIONAL_3 89 320#define X_INTERNATIONAL_4 8a 321#define X_INTERNATIONAL_5 8b 322#define X_INTERNATIONAL_6 8c 323#define X_INTERNATIONAL_7 8d 324#define X_INTERNATIONAL_8 8e 325#define X_INTERNATIONAL_9 8f 326#define X_LANGUAGE_1 90 327#define X_LANGUAGE_2 91 328#define X_LANGUAGE_3 92 329#define X_LANGUAGE_4 93 330#define X_LANGUAGE_5 94 331#define X_LANGUAGE_6 95 332#define X_LANGUAGE_7 96 333#define X_LANGUAGE_8 97 334#define X_LANGUAGE_9 98 335#define X_ALTERNATE_ERASE 99 336#define X_SYSTEM_REQUEST 9a 337#define X_CANCEL 9b 338#define X_CLEAR 9c 339#define X_PRIOR 9d 340#define X_RETURN 9e 341#define X_SEPARATOR 9f 342#define X_OUT a0 343#define X_OPER a1 344#define X_CLEAR_AGAIN a2 345#define X_CRSEL a3 346#define X_EXSEL a4 347 348/* Modifiers */ 349#define X_LEFT_CTRL e0 350#define X_LEFT_SHIFT e1 351#define X_LEFT_ALT e2 352#define X_LEFT_GUI e3 353#define X_RIGHT_CTRL e4 354#define X_RIGHT_SHIFT e5 355#define X_RIGHT_ALT e6 356#define X_RIGHT_GUI e7 357 358/* Media and Function keys */ 359/* Generic Desktop Page (0x01) */ 360#define X_SYSTEM_POWER a5 361#define X_SYSTEM_SLEEP a6 362#define X_SYSTEM_WAKE a7 363 364/* Consumer Page (0x0C) */ 365#define X_AUDIO_MUTE a8 366#define X_AUDIO_VOL_UP a9 367#define X_AUDIO_VOL_DOWN aa 368#define X_MEDIA_NEXT_TRACK ab 369#define X_MEDIA_PREV_TRACK ac 370#define X_MEDIA_STOP ad 371#define X_MEDIA_PLAY_PAUSE ae 372#define X_MEDIA_SELECT af 373#define X_MEDIA_EJECT b0 374#define X_MAIL b1 375#define X_CALCULATOR b2 376#define X_MY_COMPUTER b3 377#define X_WWW_SEARCH b4 378#define X_WWW_HOME b5 379#define X_WWW_BACK b6 380#define X_WWW_FORWARD b7 381#define X_WWW_STOP b8 382#define X_WWW_REFRESH b9 383#define X_WWW_FAVORITES ba 384#define X_MEDIA_FAST_FORWARD bb 385#define X_MEDIA_REWIND bc 386#define X_BRIGHTNESS_UP bd 387#define X_BRIGHTNESS_DOWN be 388#define X_CONTROL_PANEL bf 389#define X_ASSISTANT c0 390 391/* Mouse Buttons (unallocated range in HID spec) */ 392#define X_MS_UP cd 393#define X_MS_DOWN ce 394#define X_MS_LEFT cf 395#define X_MS_RIGHT d0 396#define X_MS_BTN1 d1 397#define X_MS_BTN2 d2 398#define X_MS_BTN3 d3 399#define X_MS_BTN4 d4 400#define X_MS_BTN5 d5 401#define X_MS_BTN6 d6 402#define X_MS_BTN7 d7 403#define X_MS_BTN8 d8 404#define X_MS_WH_UP d9 405#define X_MS_WH_DOWN da 406#define X_MS_WH_LEFT db 407#define X_MS_WH_RIGHT dc 408#define X_MS_ACCEL0 dd 409#define X_MS_ACCEL1 de 410#define X_MS_ACCEL2 df 411 412// Send string macros 413#define STRINGIZE(z) #z 414#define ADD_SLASH_X(y) STRINGIZE(\x##y) 415#define SYMBOL_STR(x) ADD_SLASH_X(x) 416 417#define SS_QMK_PREFIX 1 418 419#define SS_TAP_CODE 1 420#define SS_DOWN_CODE 2 421#define SS_UP_CODE 3 422#define SS_DELAY_CODE 4 423 424#define SS_TAP(keycode) "\1\1" SYMBOL_STR(keycode) 425#define SS_DOWN(keycode) "\1\2" SYMBOL_STR(keycode) 426#define SS_UP(keycode) "\1\3" SYMBOL_STR(keycode) 427#define SS_DELAY(msecs) "\1\4" STRINGIZE(msecs) "|" 428 429// `string` arguments must not be parenthesized 430#define SS_LCTL(string) SS_DOWN(X_LCTL) string SS_UP(X_LCTL) 431#define SS_LSFT(string) SS_DOWN(X_LSFT) string SS_UP(X_LSFT) 432#define SS_LALT(string) SS_DOWN(X_LALT) string SS_UP(X_LALT) 433#define SS_LGUI(string) SS_DOWN(X_LGUI) string SS_UP(X_LGUI) 434#define SS_LOPT(string) SS_LALT(string) 435#define SS_LCMD(string) SS_LGUI(string) 436#define SS_LWIN(string) SS_LGUI(string) 437 438#define SS_RCTL(string) SS_DOWN(X_RCTL) string SS_UP(X_RCTL) 439#define SS_RSFT(string) SS_DOWN(X_RSFT) string SS_UP(X_RSFT) 440#define SS_RALT(string) SS_DOWN(X_RALT) string SS_UP(X_RALT) 441#define SS_RGUI(string) SS_DOWN(X_RGUI) string SS_UP(X_RGUI) 442#define SS_ALGR(string) SS_RALT(string) 443#define SS_ROPT(string) SS_RALT(string) 444#define SS_RCMD(string) SS_RGUI(string) 445#define SS_RWIN(string) SS_RGUI(string)