summaryrefslogtreecommitdiffstats
path: root/quantum/keycode.h
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/keycode.h')
-rw-r--r--quantum/keycode.h495
1 files changed, 7 insertions, 488 deletions
diff --git a/quantum/keycode.h b/quantum/keycode.h
index 3c80a386d1..45736e92f1 100644
--- a/quantum/keycode.h
+++ b/quantum/keycode.h
@@ -26,16 +26,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* FIXME: Add doxygen comments here */
-#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED)
#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF)
-#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL)
-#define IS_MOD(code) (KC_LEFT_CTRL <= (code) && (code) <= KC_RIGHT_GUI)
+#define IS_KEY(code) IS_BASIC_KEYCODE(code)
+#define IS_MOD(code) IS_MODIFIERS_KEYCODE(code)
-#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_BRID)
+#define IS_SYSTEM(code) IS_SYSTEM_KEYCODE(code)
+#define IS_CONSUMER(code) IS_MEDIA_KEYCODE(code)
-#define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2)
+#define IS_MOUSEKEY(code) IS_MOUSE_KEYCODE(code)
#define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT)
#define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN8)
#define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT)
@@ -62,484 +60,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// clang-format off
-/*
- * Short names for ease of definition of keymap
- */
-/* Transparent */
-#define KC_TRANSPARENT 0x01
-#define KC_TRNS KC_TRANSPARENT
-
-/* Punctuation */
-#define KC_ENT KC_ENTER
-#define KC_ESC KC_ESCAPE
-#define KC_BSPC KC_BACKSPACE
-#define KC_SPC KC_SPACE
-#define KC_MINS KC_MINUS
-#define KC_EQL KC_EQUAL
-#define KC_LBRC KC_LEFT_BRACKET
-#define KC_RBRC KC_RIGHT_BRACKET
-#define KC_BSLS KC_BACKSLASH
-#define KC_NUHS KC_NONUS_HASH
-#define KC_SCLN KC_SEMICOLON
-#define KC_QUOT KC_QUOTE
-#define KC_GRV KC_GRAVE
-#define KC_COMM KC_COMMA
-#define KC_SLSH KC_SLASH
-#define KC_NUBS KC_NONUS_BACKSLASH
-
-/* Lock Keys */
-#define KC_CAPS KC_CAPS_LOCK
-#define KC_SCRL KC_SCROLL_LOCK
-#define KC_NUM KC_NUM_LOCK
-#define KC_LCAP KC_LOCKING_CAPS_LOCK
-#define KC_LNUM KC_LOCKING_NUM_LOCK
-#define KC_LSCR KC_LOCKING_SCROLL_LOCK
-
-/* Commands */
-#define KC_PSCR KC_PRINT_SCREEN
-#define KC_PAUS KC_PAUSE
-#define KC_BRK KC_PAUSE
-#define KC_INS KC_INSERT
-#define KC_PGUP KC_PAGE_UP
-#define KC_DEL KC_DELETE
-#define KC_PGDN KC_PAGE_DOWN
-#define KC_RGHT KC_RIGHT
-#define KC_APP KC_APPLICATION
-#define KC_EXEC KC_EXECUTE
-#define KC_SLCT KC_SELECT
-#define KC_AGIN KC_AGAIN
-#define KC_PSTE KC_PASTE
-#define KC_ERAS KC_ALTERNATE_ERASE
-#define KC_SYRQ KC_SYSTEM_REQUEST
-#define KC_CNCL KC_CANCEL
-#define KC_CLR KC_CLEAR
-#define KC_PRIR KC_PRIOR
-#define KC_RETN KC_RETURN
-#define KC_SEPR KC_SEPARATOR
-#define KC_CLAG KC_CLEAR_AGAIN
-#define KC_CRSL KC_CRSEL
-#define KC_EXSL KC_EXSEL
-
-/* Keypad */
-#define KC_PSLS KC_KP_SLASH
-#define KC_PAST KC_KP_ASTERISK
-#define KC_PMNS KC_KP_MINUS
-#define KC_PPLS KC_KP_PLUS
-#define KC_PENT KC_KP_ENTER
-#define KC_P1 KC_KP_1
-#define KC_P2 KC_KP_2
-#define KC_P3 KC_KP_3
-#define KC_P4 KC_KP_4
-#define KC_P5 KC_KP_5
-#define KC_P6 KC_KP_6
-#define KC_P7 KC_KP_7
-#define KC_P8 KC_KP_8
-#define KC_P9 KC_KP_9
-#define KC_P0 KC_KP_0
-#define KC_PDOT KC_KP_DOT
-#define KC_PEQL KC_KP_EQUAL
-#define KC_PCMM KC_KP_COMMA
-
-/* Language Specific */
-#define KC_INT1 KC_INTERNATIONAL_1
-#define KC_INT2 KC_INTERNATIONAL_2
-#define KC_INT3 KC_INTERNATIONAL_3
-#define KC_INT4 KC_INTERNATIONAL_4
-#define KC_INT5 KC_INTERNATIONAL_5
-#define KC_INT6 KC_INTERNATIONAL_6
-#define KC_INT7 KC_INTERNATIONAL_7
-#define KC_INT8 KC_INTERNATIONAL_8
-#define KC_INT9 KC_INTERNATIONAL_9
-#define KC_LNG1 KC_LANGUAGE_1
-#define KC_LNG2 KC_LANGUAGE_2
-#define KC_LNG3 KC_LANGUAGE_3
-#define KC_LNG4 KC_LANGUAGE_4
-#define KC_LNG5 KC_LANGUAGE_5
-#define KC_LNG6 KC_LANGUAGE_6
-#define KC_LNG7 KC_LANGUAGE_7
-#define KC_LNG8 KC_LANGUAGE_8
-#define KC_LNG9 KC_LANGUAGE_9
-
-/* Modifiers */
-#define KC_LCTL KC_LEFT_CTRL
-#define KC_LSFT KC_LEFT_SHIFT
-#define KC_LALT KC_LEFT_ALT
-#define KC_LOPT KC_LEFT_ALT
-#define KC_LGUI KC_LEFT_GUI
-#define KC_LCMD KC_LEFT_GUI
-#define KC_LWIN KC_LEFT_GUI
-#define KC_RCTL KC_RIGHT_CTRL
-#define KC_RSFT KC_RIGHT_SHIFT
-#define KC_RALT KC_RIGHT_ALT
-#define KC_ALGR KC_RIGHT_ALT
-#define KC_ROPT KC_RIGHT_ALT
-#define KC_RGUI KC_RIGHT_GUI
-#define KC_RCMD KC_RIGHT_GUI
-#define KC_RWIN KC_RIGHT_GUI
-
-/* Generic Desktop Page (0x01) */
-#define KC_PWR KC_SYSTEM_POWER
-#define KC_SLEP KC_SYSTEM_SLEEP
-#define KC_WAKE KC_SYSTEM_WAKE
-
-/* Consumer Page (0x0C) */
-#define KC_MUTE KC_AUDIO_MUTE
-#define KC_VOLU KC_AUDIO_VOL_UP
-#define KC_VOLD KC_AUDIO_VOL_DOWN
-#define KC_MNXT KC_MEDIA_NEXT_TRACK
-#define KC_MPRV KC_MEDIA_PREV_TRACK
-#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_CALC KC_CALCULATOR
-#define KC_MYCM KC_MY_COMPUTER
-#define KC_WSCH KC_WWW_SEARCH
-#define KC_WHOM KC_WWW_HOME
-#define KC_WBAK KC_WWW_BACK
-#define KC_WFWD KC_WWW_FORWARD
-#define KC_WSTP KC_WWW_STOP
-#define KC_WREF KC_WWW_REFRESH
-#define KC_WFAV KC_WWW_FAVORITES
-#define KC_MFFD KC_MEDIA_FAST_FORWARD
-#define KC_MRWD KC_MEDIA_REWIND
-#define KC_BRIU KC_BRIGHTNESS_UP
-#define KC_BRID KC_BRIGHTNESS_DOWN
-
-/* System Specific */
-#define KC_BRMU KC_PAUSE
-#define KC_BRMD KC_SCROLL_LOCK
-
-/* Mouse Keys */
-#define KC_MS_U KC_MS_UP
-#define KC_MS_D KC_MS_DOWN
-#define KC_MS_L KC_MS_LEFT
-#define KC_MS_R KC_MS_RIGHT
-#define KC_BTN1 KC_MS_BTN1
-#define KC_BTN2 KC_MS_BTN2
-#define KC_BTN3 KC_MS_BTN3
-#define KC_BTN4 KC_MS_BTN4
-#define KC_BTN5 KC_MS_BTN5
-#define KC_BTN6 KC_MS_BTN6
-#define KC_BTN7 KC_MS_BTN7
-#define KC_BTN8 KC_MS_BTN8
-#define KC_WH_U KC_MS_WH_UP
-#define KC_WH_D KC_MS_WH_DOWN
-#define KC_WH_L KC_MS_WH_LEFT
-#define KC_WH_R KC_MS_WH_RIGHT
-#define KC_ACL0 KC_MS_ACCEL0
-#define KC_ACL1 KC_MS_ACCEL1
-#define KC_ACL2 KC_MS_ACCEL2
-
-// clang-format on
-
-/* Keyboard/Keypad Page (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_BACKSPACE,
- KC_TAB,
- KC_SPACE,
- KC_MINUS,
- KC_EQUAL,
- KC_LEFT_BRACKET,
- KC_RIGHT_BRACKET, // 0x30
- KC_BACKSLASH,
- KC_NONUS_HASH,
- KC_SEMICOLON,
- KC_QUOTE,
- KC_GRAVE,
- KC_COMMA,
- KC_DOT,
- KC_SLASH,
- KC_CAPS_LOCK,
- 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_PRINT_SCREEN,
- KC_SCROLL_LOCK,
- KC_PAUSE,
- KC_INSERT,
- KC_HOME,
- KC_PAGE_UP,
- KC_DELETE,
- KC_END,
- KC_PAGE_DOWN,
- KC_RIGHT,
- KC_LEFT, // 0x50
- KC_DOWN,
- KC_UP,
- KC_NUM_LOCK,
- 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_BACKSLASH,
- KC_APPLICATION,
- KC_KB_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_KB_MUTE,
- KC_KB_VOLUME_UP, // 0x80
- KC_KB_VOLUME_DOWN,
- KC_LOCKING_CAPS_LOCK,
- KC_LOCKING_NUM_LOCK,
- KC_LOCKING_SCROLL_LOCK,
- KC_KP_COMMA,
- KC_KP_EQUAL_AS400,
- KC_INTERNATIONAL_1,
- KC_INTERNATIONAL_2,
- KC_INTERNATIONAL_3,
- KC_INTERNATIONAL_4,
- KC_INTERNATIONAL_5,
- KC_INTERNATIONAL_6,
- KC_INTERNATIONAL_7,
- KC_INTERNATIONAL_8,
- KC_INTERNATIONAL_9,
- KC_LANGUAGE_1, // 0x90
- KC_LANGUAGE_2,
- KC_LANGUAGE_3,
- KC_LANGUAGE_4,
- KC_LANGUAGE_5,
- KC_LANGUAGE_6,
- KC_LANGUAGE_7,
- KC_LANGUAGE_8,
- KC_LANGUAGE_9,
- KC_ALTERNATE_ERASE,
- KC_SYSTEM_REQUEST,
- KC_CANCEL,
- KC_CLEAR,
- KC_PRIOR,
- KC_RETURN,
- KC_SEPARATOR,
- KC_OUT, // 0xA0
- KC_OPER,
- KC_CLEAR_AGAIN,
- KC_CRSEL,
- KC_EXSEL,
-
-#if 0
- // ***************************************************************
- // These keycodes are present in the HID spec, but are *
- // nonfunctional on modern OSes. QMK uses this range (0xA5-0xDF) *
- // for the media and function keys instead - see below. *
- // ***************************************************************
-
- KC_KP_00 = 0xB0,
- KC_KP_000,
- KC_THOUSANDS_SEPARATOR,
- KC_DECIMAL_SEPARATOR,
- KC_CURRENCY_UNIT,
- KC_CURRENCY_SUB_UNIT,
- KC_KP_LEFT_PARENTHESIS,
- KC_KP_RIGHT_PARENTHESIS,
- KC_KP_LEFT_BRACE,
- KC_KP_RIGHT_BRACE,
- KC_KP_TAB,
- KC_KP_BACKSPACE,
- 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_PERCENT,
- KC_KP_LESS_THAN,
- KC_KP_GREATER_THAN,
- KC_KP_AND,
- KC_KP_LAZY_AND,
- KC_KP_OR,
- KC_KP_LAZY_OR,
- KC_KP_COLON,
- KC_KP_HASH,
- KC_KP_SPACE,
- KC_KP_AT,
- 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,
-#endif
-
- /* Modifiers */
- KC_LEFT_CTRL = 0xE0,
- KC_LEFT_SHIFT,
- KC_LEFT_ALT,
- KC_LEFT_GUI,
- KC_RIGHT_CTRL,
- KC_RIGHT_SHIFT,
- KC_RIGHT_ALT,
- KC_RIGHT_GUI
-
- // **********************************************
- // * 0xF0-0xFF are unallocated in the HID spec. *
- // * QMK uses these for Mouse Keys - see below. *
- // **********************************************
-};
-
-/* Media and Function keys */
-enum internal_special_keycodes {
- /* Generic Desktop Page (0x01) */
- KC_SYSTEM_POWER = 0xA5,
- KC_SYSTEM_SLEEP,
- KC_SYSTEM_WAKE,
-
- /* Consumer Page (0x0C) */
- 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, // 0xB0
- 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,
- KC_BRIGHTNESS_UP,
- KC_BRIGHTNESS_DOWN
-};
-
-enum mouse_keys {
-/* Mouse Buttons */
-#ifdef VIA_ENABLE
- KC_MS_UP = 0xF0,
-#else
- KC_MS_UP = 0xED,
-#endif
- KC_MS_DOWN,
- KC_MS_LEFT,
- KC_MS_RIGHT, // 0xF0
- KC_MS_BTN1,
- KC_MS_BTN2,
- KC_MS_BTN3,
- KC_MS_BTN4,
- KC_MS_BTN5,
-#ifdef VIA_ENABLE
- KC_MS_BTN6 = KC_MS_BTN5,
- KC_MS_BTN7 = KC_MS_BTN5,
- KC_MS_BTN8 = KC_MS_BTN5,
-#else
- KC_MS_BTN6,
- KC_MS_BTN7,
- KC_MS_BTN8,
-#endif
-
- /* Mouse Wheel */
- KC_MS_WH_UP,
- KC_MS_WH_DOWN,
- KC_MS_WH_LEFT,
- KC_MS_WH_RIGHT,
-
- /* Acceleration */
- KC_MS_ACCEL0,
- KC_MS_ACCEL1,
- KC_MS_ACCEL2 // 0xFF
-};
-
-#include "keycode_legacy.h"
+// TODO: dd keycodes
+#include "keycodes.h"