X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=tmk_core%2Fcommon%2Fkeycode.h;h=162f43621b844e64823c417deeb08b4bbdcc9cf5;hb=1460fbcf1c5e36dc9028aa98b203229941503ac1;hp=448195306f138cf939e4c8a440327885210eeffc;hpb=498654fc4c693c8a40e9285063797b9a6324ac18;p=max%2Ftmk_keyboard.git diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index 44819530..162f4362 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h @@ -1,5 +1,5 @@ /* -Copyright 2011,2012 Jun Wako +Copyright 2011,2012,2020 Jun Wako This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,13 +25,20 @@ along with this program. If not, see . #define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) #define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) + +#ifndef ACTIONMAP_ENABLE #define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) +#else +#define IS_KEY(code) ((KC_A <= (code) && (code) <= KC_EXSEL) || \ + (KC_KP_00 <= (code) && (code) <= KC_KP_HEXADECIMAL)) +#endif + #define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI) #define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) #define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) -#define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_WFAV) +#define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_BRIGHTNESS_DEC) #define IS_FN(code) (KC_FN0 <= (code) && (code) <= KC_FN31) #define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) #define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) @@ -85,15 +92,19 @@ along with this program. If not, see . #define KC_LCAP KC_LOCKING_CAPS #define KC_LNUM KC_LOCKING_NUM #define KC_LSCR KC_LOCKING_SCROLL -#define KC_ERAS KC_ALT_ERASE, +#define KC_ERAS KC_ALT_ERASE #define KC_CLR KC_CLEAR /* Japanese specific */ #define KC_ZKHK KC_GRAVE #define KC_RO KC_INT1 #define KC_KANA KC_INT2 #define KC_JYEN KC_INT3 +#define KC_JPY KC_INT3 #define KC_HENK KC_INT4 #define KC_MHEN KC_INT5 +/* Korean specific */ +#define KC_HAEN KC_LANG1 +#define KC_HANJ KC_LANG2 /* Keypad */ #define KC_P1 KC_KP_1 #define KC_P2 KC_KP_2 @@ -105,6 +116,8 @@ along with this program. If not, see . #define KC_P8 KC_KP_8 #define KC_P9 KC_KP_9 #define KC_P0 KC_KP_0 +#define KC_P00 KC_KP_00 +#define KC_P000 KC_KP_000 #define KC_PDOT KC_KP_DOT #define KC_PCMM KC_KP_COMMA #define KC_PSLS KC_KP_SLASH @@ -113,6 +126,11 @@ along with this program. If not, see . #define KC_PPLS KC_KP_PLUS #define KC_PEQL KC_KP_EQUAL #define KC_PENT KC_KP_ENTER +/* Unix function key */ +#define KC_EXEC KC_EXECUTE +#define KC_SLCT KC_SELECT +#define KC_AGIN KC_AGAIN +#define KC_PSTE KC_PASTE /* Mousekey */ #define KC_MS_U KC_MS_UP #define KC_MS_D KC_MS_DOWN @@ -144,8 +162,8 @@ along with this program. If not, see . #define KC_MRWD KC_MEDIA_REWIND #define KC_MSTP KC_MEDIA_STOP #define KC_MPLY KC_MEDIA_PLAY_PAUSE -#define KC_MSEL KC_MEDIA_SELECT #define KC_EJCT KC_MEDIA_EJECT +#define KC_MSEL KC_MEDIA_SELECT #define KC_MAIL KC_MAIL #define KC_CALC KC_CALCULATOR #define KC_MYCM KC_MY_COMPUTER @@ -156,6 +174,8 @@ along with this program. If not, see . #define KC_WSTP KC_WWW_STOP #define KC_WREF KC_WWW_REFRESH #define KC_WFAV KC_WWW_FAVORITES +#define KC_BRTI KC_BRIGHTNESS_INC +#define KC_BRTD KC_BRIGHTNESS_DEC /* Jump to bootloader */ #define KC_BTLD KC_BOOTLOADER /* Transparent */ @@ -166,329 +186,324 @@ along with this program. If not, see . /* USB HID Keyboard/Keypad Usage(0x07) */ enum hid_keyboard_keypad_usage { - KC_NO = 0x00, - KC_ROLL_OVER, - KC_POST_FAIL, - KC_UNDEFINED, - KC_A, - KC_B, - KC_C, - KC_D, - KC_E, - KC_F, - KC_G, - KC_H, - KC_I, - KC_J, - KC_K, - KC_L, - KC_M, /* 0x10 */ - KC_N, - KC_O, - KC_P, - KC_Q, - KC_R, - KC_S, - KC_T, - KC_U, - KC_V, - KC_W, - KC_X, - KC_Y, - KC_Z, - KC_1, - KC_2, - KC_3, /* 0x20 */ - KC_4, - KC_5, - KC_6, - KC_7, - KC_8, - KC_9, - KC_0, - KC_ENTER, - KC_ESCAPE, - KC_BSPACE, - KC_TAB, - KC_SPACE, - KC_MINUS, - KC_EQUAL, - KC_LBRACKET, - KC_RBRACKET, /* 0x30 */ - KC_BSLASH, /* \ (and |) */ - KC_NONUS_HASH, /* Non-US # and ~ (Typically near the Enter key) */ - KC_SCOLON, /* ; (and :) */ - KC_QUOTE, /* ' and " */ - KC_GRAVE, /* Grave accent and tilde */ - KC_COMMA, /* , and < */ - KC_DOT, /* . and > */ - KC_SLASH, /* / and ? */ - KC_CAPSLOCK, - KC_F1, - KC_F2, - KC_F3, - KC_F4, - KC_F5, - KC_F6, - KC_F7, /* 0x40 */ - KC_F8, - KC_F9, - KC_F10, - KC_F11, - KC_F12, - KC_PSCREEN, - KC_SCROLLLOCK, - KC_PAUSE, - KC_INSERT, - KC_HOME, - KC_PGUP, - KC_DELETE, - KC_END, - KC_PGDOWN, - KC_RIGHT, - KC_LEFT, /* 0x50 */ - KC_DOWN, - KC_UP, - KC_NUMLOCK, - KC_KP_SLASH, - KC_KP_ASTERISK, - KC_KP_MINUS, - KC_KP_PLUS, - KC_KP_ENTER, - KC_KP_1, - KC_KP_2, - KC_KP_3, - KC_KP_4, - KC_KP_5, - KC_KP_6, - KC_KP_7, - KC_KP_8, /* 0x60 */ - KC_KP_9, - KC_KP_0, - KC_KP_DOT, - KC_NONUS_BSLASH, /* Non-US \ and | (Typically near the Left-Shift key) */ - KC_APPLICATION, - KC_POWER, - KC_KP_EQUAL, - KC_F13, - KC_F14, - KC_F15, - KC_F16, - KC_F17, - KC_F18, - KC_F19, - KC_F20, - KC_F21, /* 0x70 */ - KC_F22, - KC_F23, - KC_F24, - KC_EXECUTE, - KC_HELP, - KC_MENU, - KC_SELECT, - KC_STOP, - KC_AGAIN, - KC_UNDO, - KC_CUT, - KC_COPY, - KC_PASTE, - KC_FIND, - KC__MUTE, - KC__VOLUP, /* 0x80 */ - KC__VOLDOWN, - KC_LOCKING_CAPS, /* locking Caps Lock */ - KC_LOCKING_NUM, /* locking Num Lock */ - KC_LOCKING_SCROLL, /* locking Scroll Lock */ - KC_KP_COMMA, - KC_KP_EQUAL_AS400, /* equal sign on AS/400 */ - KC_INT1, - KC_INT2, - KC_INT3, - KC_INT4, - KC_INT5, - KC_INT6, - KC_INT7, - KC_INT8, - KC_INT9, - KC_LANG1, /* 0x90 */ - KC_LANG2, - KC_LANG3, - KC_LANG4, - KC_LANG5, - KC_LANG6, - KC_LANG7, - KC_LANG8, - KC_LANG9, - KC_ALT_ERASE, - KC_SYSREQ, - KC_CANCEL, - KC_CLEAR, - KC_PRIOR, - KC_RETURN, - KC_SEPARATOR, - KC_OUT, /* 0xA0 */ - KC_OPER, - KC_CLEAR_AGAIN, - KC_CRSEL, - KC_EXSEL, /* 0xA4 */ + KC_NO = 0x00, + KC_ROLL_OVER, // 01 + KC_POST_FAIL, // 02 + KC_UNDEFINED, // 03 + KC_A, // 04 + KC_B, // 05 + KC_C, // 06 + KC_D, // 07 + KC_E, // 08 + KC_F, // 09 + KC_G, // 0A + KC_H, // 0B + KC_I, // 0C + KC_J, // 0D + KC_K, // 0E + KC_L, // 0F + KC_M, // 10 + KC_N, // 11 + KC_O, // 12 + KC_P, // 13 + KC_Q, // 14 + KC_R, // 15 + KC_S, // 16 + KC_T, // 17 + KC_U, // 18 + KC_V, // 19 + KC_W, // 1A + KC_X, // 1B + KC_Y, // 1C + KC_Z, // 1D + KC_1, // 1E + KC_2, // 1F + KC_3, // 20 + KC_4, // 21 + KC_5, // 22 + KC_6, // 23 + KC_7, // 24 + KC_8, // 25 + KC_9, // 26 + KC_0, // 27 + KC_ENTER, // 28 + KC_ESCAPE, // 29 + KC_BSPACE, // 2A + KC_TAB, // 2B + KC_SPACE, // 2C + KC_MINUS, // 2D + KC_EQUAL, // 2E + KC_LBRACKET, // 2F + KC_RBRACKET, // 30 + KC_BSLASH, // 31 \ (and |) + KC_NONUS_HASH, // 32 Non-US # and ~ (Typically near the Enter key) + KC_SCOLON, // 33 ; (and :) + KC_QUOTE, // 34 ' and " + KC_GRAVE, // 35 Grave accent and tilde + KC_COMMA, // 36 , and < + KC_DOT, // 37 . and > + KC_SLASH, // 38 / and ? + KC_CAPSLOCK, // 39 + KC_F1, // 3A + KC_F2, // 3B + KC_F3, // 3C + KC_F4, // 3D + KC_F5, // 3E + KC_F6, // 3F + KC_F7, // 40 + KC_F8, // 41 + KC_F9, // 42 + KC_F10, // 43 + KC_F11, // 44 + KC_F12, // 45 + KC_PSCREEN, // 46 + KC_SCROLLLOCK, // 47 + KC_PAUSE, // 48 + KC_INSERT, // 49 + KC_HOME, // 4A + KC_PGUP, // 4B + KC_DELETE, // 4C + KC_END, // 4D + KC_PGDOWN, // 4E + KC_RIGHT, // 4F + KC_LEFT, // 50 + KC_DOWN, // 51 + KC_UP, // 52 + KC_NUMLOCK, // 53 + KC_KP_SLASH, // 54 + KC_KP_ASTERISK, // 55 + KC_KP_MINUS, // 56 + KC_KP_PLUS, // 57 + KC_KP_ENTER, // 58 + KC_KP_1, // 59 + KC_KP_2, // 5A + KC_KP_3, // 5B + KC_KP_4, // 5C + KC_KP_5, // 5D + KC_KP_6, // 5E + KC_KP_7, // 5F + KC_KP_8, // 60 + KC_KP_9, // 61 + KC_KP_0, // 62 + KC_KP_DOT, // 63 + KC_NONUS_BSLASH, // 64 Non-US \ and | (Typically near the Left-Shift key) */ + KC_APPLICATION, // 65 + KC_POWER, // 66 + KC_KP_EQUAL, // 67 + KC_F13, // 68 + KC_F14, // 69 + KC_F15, // 6A + KC_F16, // 6B + KC_F17, // 6C + KC_F18, // 6D + KC_F19, // 6E + KC_F20, // 6F + KC_F21, // 70 + KC_F22, // 71 + KC_F23, // 72 + KC_F24, // 73 + KC_EXECUTE, // 74 + KC_HELP, // 75 + KC_MENU, // 76 + KC_SELECT, // 77 + KC_STOP, // 78 + KC_AGAIN, // 79 + KC_UNDO, // 7A + KC_CUT, // 7B + KC_COPY, // 7C + KC_PASTE, // 7D + KC_FIND, // 7E + KC__MUTE, // 7F + KC__VOLUP, // 80 + KC__VOLDOWN, // 81 + KC_LOCKING_CAPS, // 82 locking Caps Lock */ + KC_LOCKING_NUM, // 83 locking Num Lock */ + KC_LOCKING_SCROLL, // 84 locking Scroll Lock */ + KC_KP_COMMA, // 85 + KC_KP_EQUAL_AS400, // 86 equal sign on AS/400 */ + KC_INT1, // 87 + KC_INT2, // 88 + KC_INT3, // 89 + KC_INT4, // 8A + KC_INT5, // 8B + KC_INT6, // 8C + KC_INT7, // 8D + KC_INT8, // 8E + KC_INT9, // 8F + KC_LANG1, // 90 + KC_LANG2, // 91 + KC_LANG3, // 92 + KC_LANG4, // 93 + KC_LANG5, // 94 + KC_LANG6, // 95 + KC_LANG7, // 96 + KC_LANG8, // 97 + KC_LANG9, // 98 + KC_ALT_ERASE, // 99 + KC_SYSREQ, // 9A + KC_CANCEL, // 9B + KC_CLEAR, // 9C + KC_PRIOR, // 9D + KC_RETURN, // 9E + KC_SEPARATOR, // 9F + KC_OUT, // A0 + KC_OPER, // A1 + KC_CLEAR_AGAIN, // A2 + KC_CRSEL, // A3 + KC_EXSEL, // A4 - /* NOTE: 0xA5-DF are used for internal special purpose */ - -#if 0 - /* NOTE: Following codes(0xB0-DD) are not used. Leave them for reference. */ - KC_KP_00 = 0xB0, - KC_KP_000, - KC_THOUSANDS_SEPARATOR, - KC_DECIMAL_SEPARATOR, - KC_CURRENCY_UNIT, - KC_CURRENCY_SUB_UNIT, - KC_KP_LPAREN, - KC_KP_RPAREN, - KC_KP_LCBRACKET, /* { */ - KC_KP_RCBRACKET, /* } */ - KC_KP_TAB, - KC_KP_BSPACE, - KC_KP_A, - KC_KP_B, - KC_KP_C, - KC_KP_D, - KC_KP_E, /* 0xC0 */ - KC_KP_F, - KC_KP_XOR, - KC_KP_HAT, - KC_KP_PERC, - KC_KP_LT, - KC_KP_GT, - KC_KP_AND, - KC_KP_LAZYAND, - KC_KP_OR, - KC_KP_LAZYOR, - KC_KP_COLON, - KC_KP_HASH, - KC_KP_SPACE, - KC_KP_ATMARK, - KC_KP_EXCLAMATION, - KC_KP_MEM_STORE, /* 0xD0 */ - KC_KP_MEM_RECALL, - KC_KP_MEM_CLEAR, - KC_KP_MEM_ADD, - KC_KP_MEM_SUB, - KC_KP_MEM_MUL, - KC_KP_MEM_DIV, - KC_KP_PLUS_MINUS, - KC_KP_CLEAR, - KC_KP_CLEAR_ENTRY, - KC_KP_BINARY, - KC_KP_OCTAL, - KC_KP_DECIMAL, - KC_KP_HEXADECIMAL, /* 0xDD */ -#endif + /* NOTE: Following code range(0xB0-DD) are shared with special codes of 8-bit keymap */ + KC_KP_00 = 0xB0, + KC_KP_000, // B1 + KC_THOUSANDS_SEPARATOR, // B2 + KC_DECIMAL_SEPARATOR, // B3 + KC_CURRENCY_UNIT, // B4 + KC_CURRENCY_SUB_UNIT, // B5 + KC_KP_LPAREN, // B6 + KC_KP_RPAREN, // B7 + KC_KP_LCBRACKET, // B8 { + KC_KP_RCBRACKET, // B9 } + KC_KP_TAB, // BA + KC_KP_BSPACE, // BB + KC_KP_A, // BC + KC_KP_B, // BD + KC_KP_C, // BE + KC_KP_D, // BF + KC_KP_E, // C0 + KC_KP_F, // C1 + KC_KP_XOR, // C2 + KC_KP_HAT, // C3 + KC_KP_PERC, // C4 + KC_KP_LT, // C5 + KC_KP_GT, // C6 + KC_KP_AND, // C7 + KC_KP_LAZYAND, // C8 + KC_KP_OR, // C9 + KC_KP_LAZYOR, // CA + KC_KP_COLON, // CB + KC_KP_HASH, // CC + KC_KP_SPACE, // CD + KC_KP_ATMARK, // CE + KC_KP_EXCLAMATION, // CF + KC_KP_MEM_STORE, // D0 + KC_KP_MEM_RECALL, // D1 + KC_KP_MEM_CLEAR, // D2 + KC_KP_MEM_ADD, // D3 + KC_KP_MEM_SUB, // D4 + KC_KP_MEM_MUL, // D5 + KC_KP_MEM_DIV, // D6 + KC_KP_PLUS_MINUS, // D7 + KC_KP_CLEAR, // D8 + KC_KP_CLEAR_ENTRY, // D9 + KC_KP_BINARY, // DA + KC_KP_OCTAL, // DB + KC_KP_DECIMAL, // DC + KC_KP_HEXADECIMAL, // DD /* Modifiers */ - KC_LCTRL = 0xE0, - KC_LSHIFT, - KC_LALT, - KC_LGUI, - KC_RCTRL, - KC_RSHIFT, - KC_RALT, - KC_RGUI, - - /* NOTE: 0xE8-FF are used for internal special purpose */ + KC_LCTRL = 0xE0, + KC_LSHIFT, // E1 + KC_LALT, // E2 + KC_LGUI, // E3 + KC_RCTRL, // E4 + KC_RSHIFT, // E5 + KC_RALT, // E6 + KC_RGUI, // E7 }; -/* Special keycodes */ -/* NOTE: 0xA5-DF and 0xE8-FF are used for internal special purpose */ +/* Special keycodes for 8-bit keymap + NOTE: 0xA5-DF and 0xE8-FF are used for internal special purpose */ enum internal_special_keycodes { /* System Control */ - KC_SYSTEM_POWER = 0xA5, - KC_SYSTEM_SLEEP, - KC_SYSTEM_WAKE, + KC_SYSTEM_POWER = 0xA5, + KC_SYSTEM_SLEEP, // A6 + KC_SYSTEM_WAKE, // A7 /* Media Control */ - KC_AUDIO_MUTE, - KC_AUDIO_VOL_UP, - KC_AUDIO_VOL_DOWN, - KC_MEDIA_NEXT_TRACK, - KC_MEDIA_PREV_TRACK, - KC_MEDIA_STOP, - KC_MEDIA_PLAY_PAUSE, - KC_MEDIA_SELECT, - KC_MEDIA_EJECT, - KC_MAIL, - KC_CALCULATOR, - KC_MY_COMPUTER, - KC_WWW_SEARCH, - KC_WWW_HOME, - KC_WWW_BACK, - KC_WWW_FORWARD, - KC_WWW_STOP, - KC_WWW_REFRESH, - KC_WWW_FAVORITES, - KC_MEDIA_FAST_FORWARD, - KC_MEDIA_REWIND, /* 0xBC */ + KC_AUDIO_MUTE, // A8 + KC_AUDIO_VOL_UP, // A9 + KC_AUDIO_VOL_DOWN, // AA + KC_MEDIA_NEXT_TRACK, // AB + KC_MEDIA_PREV_TRACK, // AC + KC_MEDIA_FAST_FORWARD, // AD + KC_MEDIA_REWIND, // AE + KC_MEDIA_STOP, // AF + KC_MEDIA_PLAY_PAUSE, // B0 + KC_MEDIA_EJECT, // B1 + KC_MEDIA_SELECT, // B2 + KC_MAIL, // B3 + KC_CALCULATOR, // B4 + KC_MY_COMPUTER, // B5 + KC_WWW_SEARCH, // B6 + KC_WWW_HOME, // B7 + KC_WWW_BACK, // B8 + KC_WWW_FORWARD, // B9 + KC_WWW_STOP, // BA + KC_WWW_REFRESH, // BB + KC_WWW_FAVORITES, // BC + KC_BRIGHTNESS_INC, // BD + KC_BRIGHTNESS_DEC, // BE /* Jump to bootloader */ - KC_BOOTLOADER = 0xBF, + KC_BOOTLOADER, // BF /* Fn key */ - KC_FN0 = 0xC0, - KC_FN1, - KC_FN2, - KC_FN3, - KC_FN4, - KC_FN5, - KC_FN6, - KC_FN7, - KC_FN8, - KC_FN9, - KC_FN10, - KC_FN11, - KC_FN12, - KC_FN13, - KC_FN14, - KC_FN15, - - KC_FN16 = 0xD0, - KC_FN17, - KC_FN18, - KC_FN19, - KC_FN20, - KC_FN21, - KC_FN22, - KC_FN23, - KC_FN24, - KC_FN25, - KC_FN26, - KC_FN27, - KC_FN28, - KC_FN29, - KC_FN30, - KC_FN31, /* 0xDF */ + KC_FN0, // C0 + KC_FN1, // C1 + KC_FN2, // C2 + KC_FN3, // C3 + KC_FN4, // C4 + KC_FN5, // C5 + KC_FN6, // C6 + KC_FN7, // C7 + KC_FN8, // C8 + KC_FN9, // C9 + KC_FN10, // CA + KC_FN11, // CB + KC_FN12, // CC + KC_FN13, // CD + KC_FN14, // CE + KC_FN15, // CF + KC_FN16, // D0 + KC_FN17, // D1 + KC_FN18, // D2 + KC_FN19, // D3 + KC_FN20, // D4 + KC_FN21, // D5 + KC_FN22, // D6 + KC_FN23, // D7 + KC_FN24, // D8 + KC_FN25, // D9 + KC_FN26, // DA + KC_FN27, // DB + KC_FN28, // DC + KC_FN29, // DD + KC_FN30, // DE + KC_FN31, // DF /**************************************/ /* 0xE0-E7 for Modifiers. DO NOT USE. */ /**************************************/ /* Mousekey */ - KC_MS_UP = 0xF0, - KC_MS_DOWN, - KC_MS_LEFT, - KC_MS_RIGHT, - KC_MS_BTN1, - KC_MS_BTN2, - KC_MS_BTN3, - KC_MS_BTN4, - KC_MS_BTN5, /* 0xF8 */ + KC_MS_UP = 0xF0, + KC_MS_DOWN, // F1 + KC_MS_LEFT, // F2 + KC_MS_RIGHT, // F3 + KC_MS_BTN1, // F4 + KC_MS_BTN2, // F5 + KC_MS_BTN3, // F6 + KC_MS_BTN4, // F7 + KC_MS_BTN5, // F8 /* Mousekey wheel */ - KC_MS_WH_UP, - KC_MS_WH_DOWN, - KC_MS_WH_LEFT, - KC_MS_WH_RIGHT, /* 0xFC */ + KC_MS_WH_UP, // F9 + KC_MS_WH_DOWN, // FA + KC_MS_WH_LEFT, // FB + KC_MS_WH_RIGHT, // FC /* Mousekey accel */ - KC_MS_ACCEL0, - KC_MS_ACCEL1, - KC_MS_ACCEL2 /* 0xFF */ + KC_MS_ACCEL0, // FD + KC_MS_ACCEL1, // FE + KC_MS_ACCEL2 // FF }; #endif /* KEYCODE_H */