@ -21,45 +21,53 @@
/* Punctuation */
# define X_ENT X_ENTER
# define X_ESC X_ESCAPE
# define X_BSPC X_B SPACE
# define X_BSPC X_B ACK SPACE
# define X_SPC X_SPACE
# define X_MINS X_MINUS
# define X_EQL X_EQUAL
# define X_LBRC X_L BRACKET
# define X_RBRC X_R BRACKET
# define X_BSLS X_B SLASH
# define X_LBRC X_L EFT_ BRACKET
# define X_RBRC X_R IGHT_ BRACKET
# define X_BSLS X_B ACK SLASH
# define X_NUHS X_NONUS_HASH
# define X_SCLN X_S COLON
# define X_SCLN X_S EMI COLON
# define X_QUOT X_QUOTE
# define X_GRV X_GRAVE
# define X_COMM X_COMMA
# define X_SLSH X_SLASH
# define X_NUBS X_NONUS_B SLASH
# define X_NUBS X_NONUS_B ACK SLASH
/* Lock Keys */
# define X_CLCK X_CAPSLOCK
# define X_CAPS X_CAPSLOCK
# define X_SLCK X_SCROLLLOCK
# define X_NLCK X_NUMLOCK
# define X_LCAP X_LOCKING_CAPS
# define X_LNUM X_LOCKING_NUM
# define X_LSCR X_LOCKING_SCROLL
# define X_CAPS X_CAPS_LOCK
# define X_SCRL X_SCROLL_LOCK
# define X_NUM X_NUM_LOCK
# define X_LCAP X_LOCKING_CAPS_LOCK
# define X_LNUM X_LOCKING_NUM_LOCK
# define X_LSCR X_LOCKING_SCROLL_LOCK
/* Commands */
# define X_PSCR X_P SCREEN
# define X_PSCR X_P RINT_ SCREEN
# define X_PAUS X_PAUSE
# define X_BRK X_PAUSE
# define X_INS X_INSERT
# define X_PGUP X_PAGE_UP
# define X_DEL X_DELETE
# define X_PGDN X_P GDOWN
# define X_PGDN X_P A GE_ DOWN
# define X_RGHT X_RIGHT
# define X_APP X_APPLICATION
# define X_EXEC X_EXECUTE
# define X_SLCT X_SELECT
# define X_AGIN X_AGAIN
# define X_PSTE X_PASTE
# define X_ERAS X_ALT_ERASE
# define X_ERAS X_ALTERNATE_ERASE
# define X_SYRQ X_SYSTEM_REQUEST
# define X_CNCL X_CANCEL
# define X_CLR X_CLEAR
# define X_PRIR X_PRIOR
# define X_RETN X_RETURN
# define X_SEPR X_SEPARATOR
# define X_CLAG X_CLEAR_AGAIN
# define X_CRSL X_CRSEL
# define X_EXSL X_EXSEL
/* Keypad */
# define X_PSLS X_KP_SLASH
@ -81,30 +89,42 @@
# define X_PEQL X_KP_EQUAL
# define X_PCMM X_KP_COMMA
/* Japanese specific */
# define X_ZKHK X_GRAVE
# define X_RO X_INT1
# define X_KANA X_INT2
# define X_JYEN X_INT3
# define X_HENK X_INT4
# define X_MHEN X_INT5
/* Korean specific */
# define X_HAEN X_LANG1
# define X_HANJ X_LANG2
/* Language Specific */
# define X_INT1 X_INTERNATIONAL_1
# define X_INT2 X_INTERNATIONAL_2
# define X_INT3 X_INTERNATIONAL_3
# define X_INT4 X_INTERNATIONAL_4
# define X_INT5 X_INTERNATIONAL_5
# define X_INT6 X_INTERNATIONAL_6
# define X_INT7 X_INTERNATIONAL_7
# define X_INT8 X_INTERNATIONAL_8
# define X_INT9 X_INTERNATIONAL_9
# define X_LNG1 X_LANGUAGE_1
# define X_LNG2 X_LANGUAGE_2
# define X_LNG3 X_LANGUAGE_3
# define X_LNG4 X_LANGUAGE_4
# define X_LNG5 X_LANGUAGE_5
# define X_LNG6 X_LANGUAGE_6
# define X_LNG7 X_LANGUAGE_7
# define X_LNG8 X_LANGUAGE_8
# define X_LNG9 X_LANGUAGE_9
/* Modifiers */
# define X_LCTL X_LCTRL
# define X_LSFT X_LSHIFT
# define X_LOPT X_LALT
# define X_LCMD X_LGUI
# define X_LWIN X_LGUI
# define X_RCTL X_RCTRL
# define X_RSFT X_RSHIFT
# define X_ALGR X_RALT
# define X_ROPT X_RALT
# define X_RCMD X_RGUI
# define X_RWIN X_RGUI
# define X_LCTL X_LEFT_CTRL
# define X_LSFT X_LEFT_SHIFT
# define X_LALT X_LEFT_ALT
# define X_LOPT X_LEFT_ALT
# define X_LGUI X_LEFT_GUI
# define X_LCMD X_LEFT_GUI
# define X_LWIN X_LEFT_GUI
# define X_RCTL X_RIGHT_CTRL
# define X_RSFT X_RIGHT_SHIFT
# define X_RALT X_RIGHT_ALT
# define X_ALGR X_RIGHT_ALT
# define X_ROPT X_RIGHT_ALT
# define X_RGUI X_RIGHT_GUI
# define X_RCMD X_RIGHT_GUI
# define X_RWIN X_RIGHT_GUI
/* Generic Desktop Page (0x01) */
# define X_PWR X_SYSTEM_POWER
@ -134,10 +154,12 @@
# define X_MRWD X_MEDIA_REWIND
# define X_BRIU X_BRIGHTNESS_UP
# define X_BRID X_BRIGHTNESS_DOWN
# define X_CPNL X_CONTROL_PANEL
# define X_ASST X_ASSISTANT
/* System Specific */
# define X_BRMU X_PAUSE
# define X_BRMD X_SCROLL LOCK
# define X_BRMD X_SCROLL _ LOCK
/* Mouse Keys */
# define X_MS_U X_MS_UP
@ -149,6 +171,9 @@
# define X_BTN3 X_MS_BTN3
# define X_BTN4 X_MS_BTN4
# define X_BTN5 X_MS_BTN5
# define X_BTN6 X_MS_BTN6
# define X_BTN7 X_MS_BTN7
# define X_BTN8 X_MS_BTN8
# define X_WH_U X_MS_WH_UP
# define X_WH_D X_MS_WH_DOWN
# define X_WH_L X_MS_WH_LEFT
@ -158,250 +183,252 @@
# define X_ACL2 X_MS_ACCEL2
/* Keyboard/Keypad Page (0x07) */
# define X_A 04
# define X_B 05
# define X_C 06
# define X_D 07
# define X_E 08
# define X_F 09
# define X_G 0a
# define X_H 0b
# define X_I 0c
# define X_J 0d
# define X_K 0e
# define X_L 0f
# define X_M 10
# define X_N 11
# define X_O 12
# define X_P 13
# define X_Q 14
# define X_R 15
# define X_S 16
# define X_T 17
# define X_U 18
# define X_V 19
# define X_W 1a
# define X_X 1b
# define X_Y 1c
# define X_Z 1d
# define X_1 1e
# define X_2 1f
# define X_3 20
# define X_4 21
# define X_5 22
# define X_6 23
# define X_7 24
# define X_8 25
# define X_9 26
# define X_0 27
# define X_ENTER 28
# define X_ESCAPE 29
# define X_B SPACE 2a
# define X_TAB 2b
# define X_SPACE 2c
# define X_MINUS 2d
# define X_EQUAL 2e
# define X_L BRACKET 2f
# define X_R BRACKET 30
# define X_B SLASH 31
# define X_NONUS_HASH 32
# define X_S COLON 33
# define X_QUOTE 34
# define X_GRAVE 35
# define X_COMMA 36
# define X_DOT 37
# define X_SLASH 38
# define X_CAPS LOCK 39
# define X_F1 3a
# define X_F2 3b
# define X_F3 3c
# define X_F4 3d
# define X_F5 3e
# define X_F6 3f
# define X_F7 40
# define X_F8 41
# define X_F9 42
# define X_F10 43
# define X_F11 44
# define X_F12 45
# define X_P SCREEN 46
# define X_SCROLL LOCK 47
# define X_PAUSE 48
# define X_INSERT 49
# define X_HOME 4a
# define X_P GUP 4b
# define X_DELETE 4c
# define X_END 4d
# define X_P GDOWN 4e
# define X_RIGHT 4f
# define X_LEFT 50
# define X_DOWN 51
# define X_UP 52
# define X_NUM LOCK 53
# define X_KP_SLASH 54
# define X_KP_ASTERISK 55
# define X_KP_MINUS 56
# define X_KP_PLUS 57
# define X_KP_ENTER 58
# define X_KP_1 59
# define X_KP_2 5a
# define X_KP_3 5b
# define X_KP_4 5c
# define X_KP_5 5d
# define X_KP_6 5e
# define X_KP_7 5f
# define X_KP_8 60
# define X_KP_9 61
# define X_KP_0 62
# define X_KP_DOT 63
# define X_NONUS_B SLASH 64
# define X_APPLICATION 65
# define X_ POWER 66
# define X_KP_EQUAL 67
# define X_F13 68
# define X_F14 69
# define X_F15 6a
# define X_F16 6b
# define X_F17 6c
# define X_F18 6d
# define X_F19 6e
# define X_F20 6f
# define X_F21 70
# define X_F22 71
# define X_F23 72
# define X_F24 73
# define X_EXECUTE 74
# define X_HELP 75
# define X_MENU 76
# define X_SELECT 77
# define X_STOP 78
# define X_AGAIN 79
# define X_UNDO 7a
# define X_CUT 7b
# define X_COPY 7c
# define X_PASTE 7d
# define X_FIND 7e
# define X_ _MUTE 7f
# define X_ _VOLUP 80
# define X_ _VOLDOWN 81
# define X_LOCKING_CAPS 82
# define X_LOCKING_NUM 83
# define X_LOCKING_SCROLL 84
# define X_KP_COMMA 85
# define X_KP_EQUAL_AS400 86
# define X_INT 1 87
# define X_INT 2 88
# define X_INT 3 89
# define X_INT 4 8a
# define X_INT 5 8b
# define X_INT 6 8c
# define X_INT 7 8d
# define X_INT 8 8e
# define X_INT 9 8f
# define X_LANG 1 90
# define X_LANG 2 91
# define X_LANG 3 92
# define X_LANG 4 93
# define X_LANG 5 94
# define X_LANG 6 95
# define X_LANG 7 96
# define X_LANG 8 97
# define X_LANG 9 98
# define X_ALT _ERASE 99
# define X_SYS REQ 9a
# define X_CANCEL 9b
# define X_CLEAR 9c
# define X_PRIOR 9d
# define X_RETURN 9e
# define X_SEPARATOR 9f
# define X_OUT a0
# define X_OPER a1
# define X_CLEAR_AGAIN a2
# define X_CRSEL a3
# define X_EXSEL a4
# define X_A 04
# define X_B 05
# define X_C 06
# define X_D 07
# define X_E 08
# define X_F 09
# define X_G 0a
# define X_H 0b
# define X_I 0c
# define X_J 0d
# define X_K 0e
# define X_L 0f
# define X_M 10
# define X_N 11
# define X_O 12
# define X_P 13
# define X_Q 14
# define X_R 15
# define X_S 16
# define X_T 17
# define X_U 18
# define X_V 19
# define X_W 1a
# define X_X 1b
# define X_Y 1c
# define X_Z 1d
# define X_1 1e
# define X_2 1f
# define X_3 20
# define X_4 21
# define X_5 22
# define X_6 23
# define X_7 24
# define X_8 25
# define X_9 26
# define X_0 27
# define X_ENTER 28
# define X_ESCAPE 29
# define X_B ACK SPACE 2a
# define X_TAB 2b
# define X_SPACE 2c
# define X_MINUS 2d
# define X_EQUAL 2e
# define X_L EFT_ BRACKET 2f
# define X_R IGHT_ BRACKET 30
# define X_B ACK SLASH 31
# define X_NONUS_HASH 32
# define X_S EMI COLON 33
# define X_QUOTE 34
# define X_GRAVE 35
# define X_COMMA 36
# define X_DOT 37
# define X_SLASH 38
# define X_CAPS _ LOCK 39
# define X_F1 3a
# define X_F2 3b
# define X_F3 3c
# define X_F4 3d
# define X_F5 3e
# define X_F6 3f
# define X_F7 40
# define X_F8 41
# define X_F9 42
# define X_F10 43
# define X_F11 44
# define X_F12 45
# define X_P RINT_ SCREEN 46
# define X_SCROLL _ LOCK 47
# define X_PAUSE 48
# define X_INSERT 49
# define X_HOME 4a
# define X_P A GE_ UP 4b
# define X_DELETE 4c
# define X_END 4d
# define X_P A GE_ DOWN 4e
# define X_RIGHT 4f
# define X_LEFT 50
# define X_DOWN 51
# define X_UP 52
# define X_NUM _ LOCK 53
# define X_KP_SLASH 54
# define X_KP_ASTERISK 55
# define X_KP_MINUS 56
# define X_KP_PLUS 57
# define X_KP_ENTER 58
# define X_KP_1 59
# define X_KP_2 5a
# define X_KP_3 5b
# define X_KP_4 5c
# define X_KP_5 5d
# define X_KP_6 5e
# define X_KP_7 5f
# define X_KP_8 60
# define X_KP_9 61
# define X_KP_0 62
# define X_KP_DOT 63
# define X_NONUS_B ACK SLASH 64
# define X_APPLICATION 65
# define X_ KB_ POWER 66
# define X_KP_EQUAL 67
# define X_F13 68
# define X_F14 69
# define X_F15 6a
# define X_F16 6b
# define X_F17 6c
# define X_F18 6d
# define X_F19 6e
# define X_F20 6f
# define X_F21 70
# define X_F22 71
# define X_F23 72
# define X_F24 73
# define X_EXECUTE 74
# define X_HELP 75
# define X_MENU 76
# define X_SELECT 77
# define X_STOP 78
# define X_AGAIN 79
# define X_UNDO 7a
# define X_CUT 7b
# define X_COPY 7c
# define X_PASTE 7d
# define X_FIND 7e
# define X_ KB _MUTE 7f
# define X_ KB _VOLUME_ UP 80
# define X_ KB _VOLUME_ DOWN 81
# define X_LOCKING_CAPS _LOCK 82
# define X_LOCKING_NUM _LOCK 83
# define X_LOCKING_SCROLL _LOCK 84
# define X_KP_COMMA 85
# define X_KP_EQUAL_AS400 86
# define X_INT ERNATIONAL_ 1 87
# define X_INT ERNATIONAL_ 2 88
# define X_INT ERNATIONAL_ 3 89
# define X_INT ERNATIONAL_ 4 8a
# define X_INT ERNATIONAL_ 5 8b
# define X_INT ERNATIONAL_ 6 8c
# define X_INT ERNATIONAL_ 7 8d
# define X_INT ERNATIONAL_ 8 8e
# define X_INT ERNATIONAL_ 9 8f
# define X_LANG UAGE_ 1 90
# define X_LANG UAGE_ 2 91
# define X_LANG UAGE_ 3 92
# define X_LANG UAGE_ 4 93
# define X_LANG UAGE_ 5 94
# define X_LANG UAGE_ 6 95
# define X_LANG UAGE_ 7 96
# define X_LANG UAGE_ 8 97
# define X_LANG UAGE_ 9 98
# define X_ALT ERNATE _ERASE 99
# define X_SYS TEM_REQUEST 9a
# define X_CANCEL 9b
# define X_CLEAR 9c
# define X_PRIOR 9d
# define X_RETURN 9e
# define X_SEPARATOR 9f
# define X_OUT a0
# define X_OPER a1
# define X_CLEAR_AGAIN a2
# define X_CRSEL a3
# define X_EXSEL a4
/* Modifiers */
# define X_L CTRL e0
# define X_L SHIFT e1
# define X_L ALT e2
# define X_L GUI e3
# define X_R CTRL e4
# define X_R SHIFT e5
# define X_R ALT e6
# define X_R GUI e7
# define X_L EFT_ CTRL e0
# define X_L EFT_ SHIFT e1
# define X_L EFT_ ALT e2
# define X_L EFT_ GUI e3
# define X_R IGHT_ CTRL e4
# define X_R IGHT_ SHIFT e5
# define X_R IGHT_ ALT e6
# define X_R IGHT_ GUI e7
/* Media and Function keys */
/* Generic Desktop Page (0x01) */
# define X_SYSTEM_POWER a5
# define X_SYSTEM_SLEEP a6
# define X_SYSTEM_WAKE a7
# define X_SYSTEM_POWER a5
# define X_SYSTEM_SLEEP a6
# define X_SYSTEM_WAKE a7
/* Consumer Page (0x0C) */
# define X_AUDIO_MUTE a8
# define X_AUDIO_VOL_UP a9
# define X_AUDIO_VOL_DOWN aa
# define X_MEDIA_NEXT_TRACK ab
# define X_MEDIA_PREV_TRACK ac
# define X_MEDIA_STOP ad
# define X_MEDIA_PLAY_PAUSE ae
# define X_MEDIA_SELECT af
# define X_MEDIA_EJECT b0
# define X_MAIL b1
# define X_CALCULATOR b2
# define X_MY_COMPUTER b3
# define X_WWW_SEARCH b4
# define X_WWW_HOME b5
# define X_WWW_BACK b6
# define X_WWW_FORWARD b7
# define X_WWW_STOP b8
# define X_WWW_REFRESH b9
# define X_WWW_FAVORITES ba
# define X_MEDIA_FAST_FORWARD bb
# define X_MEDIA_REWIND bc
# define X_BRIGHTNESS_UP bd
# define X_BRIGHTNESS_DOWN be
# define X_AUDIO_MUTE a8
# define X_AUDIO_VOL_UP a9
# define X_AUDIO_VOL_DOWN aa
# define X_MEDIA_NEXT_TRACK ab
# define X_MEDIA_PREV_TRACK ac
# define X_MEDIA_STOP ad
# define X_MEDIA_PLAY_PAUSE ae
# define X_MEDIA_SELECT af
# define X_MEDIA_EJECT b0
# define X_MAIL b1
# define X_CALCULATOR b2
# define X_MY_COMPUTER b3
# define X_WWW_SEARCH b4
# define X_WWW_HOME b5
# define X_WWW_BACK b6
# define X_WWW_FORWARD b7
# define X_WWW_STOP b8
# define X_WWW_REFRESH b9
# define X_WWW_FAVORITES ba
# define X_MEDIA_FAST_FORWARD bb
# define X_MEDIA_REWIND bc
# define X_BRIGHTNESS_UP bd
# define X_BRIGHTNESS_DOWN be
# define X_CONTROL_PANEL bf
# define X_ASSISTANT c0
/* Mouse Buttons (unallocated range in HID spec) */
# ifdef VIA_ENABLE
# define X_MS_UP f0
# define X_MS_DOWN f1
# define X_MS_LEFT f2
# define X_MS_RIGHT f3
# define X_MS_BTN1 f4
# define X_MS_BTN2 f5
# define X_MS_BTN3 f6
# define X_MS_BTN4 f7
# define X_MS_BTN5 f8
# define X_MS_BTN6 f8
# define X_MS_BTN7 f8
# define X_MS_BTN8 f8
# define X_MS_WH_UP f9
# define X_MS_WH_DOWN fa
# define X_MS_WH_LEFT fb
# define X_MS_WH_RIGHT fc
# define X_MS_ACCEL0 fd
# define X_MS_ACCEL1 fe
# define X_MS_ACCEL2 ff
# define X_MS_UP f0
# define X_MS_DOWN f1
# define X_MS_LEFT f2
# define X_MS_RIGHT f3
# define X_MS_BTN1 f4
# define X_MS_BTN2 f5
# define X_MS_BTN3 f6
# define X_MS_BTN4 f7
# define X_MS_BTN5 f8
# define X_MS_BTN6 f8
# define X_MS_BTN7 f8
# define X_MS_BTN8 f8
# define X_MS_WH_UP f9
# define X_MS_WH_DOWN fa
# define X_MS_WH_LEFT fb
# define X_MS_WH_RIGHT fc
# define X_MS_ACCEL0 fd
# define X_MS_ACCEL1 fe
# define X_MS_ACCEL2 ff
# else
# define X_MS_UP cd
# define X_MS_DOWN ce
# define X_MS_LEFT cf
# define X_MS_RIGHT d0
# define X_MS_BTN1 d1
# define X_MS_BTN2 d2
# define X_MS_BTN3 d3
# define X_MS_BTN4 d4
# define X_MS_BTN5 d5
# define X_MS_BTN6 d6
# define X_MS_BTN7 d7
# define X_MS_BTN8 d8
# define X_MS_WH_UP d9
# define X_MS_WH_DOWN da
# define X_MS_WH_LEFT db
# define X_MS_WH_RIGHT dc
# define X_MS_ACCEL0 dd
# define X_MS_ACCEL1 de
# define X_MS_ACCEL2 df
# define X_MS_UP cd
# define X_MS_DOWN ce
# define X_MS_LEFT cf
# define X_MS_RIGHT d0
# define X_MS_BTN1 d1
# define X_MS_BTN2 d2
# define X_MS_BTN3 d3
# define X_MS_BTN4 d4
# define X_MS_BTN5 d5
# define X_MS_BTN6 d6
# define X_MS_BTN7 d7
# define X_MS_BTN8 d8
# define X_MS_WH_UP d9
# define X_MS_WH_DOWN da
# define X_MS_WH_LEFT db
# define X_MS_WH_RIGHT dc
# define X_MS_ACCEL0 dd
# define X_MS_ACCEL1 de
# define X_MS_ACCEL2 df
# endif
@ -439,6 +466,3 @@
# define SS_ROPT(string) SS_RALT(string)
# define SS_RCMD(string) SS_RGUI(string)
# define SS_RWIN(string) SS_RGUI(string)
// DEPRECATED
# define SS_LCTRL(string) SS_LCTL(string)