@ -21,45 +21,53 @@
/* Punctuation */
# define X_ENT X_ENTER
# define X_ESC X_ESCAPE
# define X_BSPC X_BSPACE
# define X_BSPC X_BACK SPACE
# define X_SPC X_SPACE
# define X_MINS X_MINUS
# define X_EQL X_EQUAL
# define X_LBRC X_LBRACKET
# define X_RBRC X_RBRACKET
# define X_BSLS X_BSLASH
# define X_LBRC X_LEFT_ BRACKET
# define X_RBRC X_RIGHT_ BRACKET
# define X_BSLS X_BACK SLASH
# define X_NUHS X_NONUS_HASH
# define X_SCLN X_SCOLON
# define X_SCLN X_SEMI 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_BSLASH
# define X_NUBS X_NONUS_BACK 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_PSCREEN
# define X_PSCR X_PRINT_ 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_PGDOWN
# define X_PGDN X_PA 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_SCROLLLOCK
# 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_BSPACE 2a
# define X_TAB 2b
# define X_SPACE 2c
# define X_MINUS 2d
# define X_EQUAL 2e
# define X_LBRACKET 2f
# define X_RBRACKET 30
# define X_BSLASH 31
# define X_NONUS_HASH 32
# define X_SCOLON 33
# define X_QUOTE 34
# define X_GRAVE 35
# define X_COMMA 36
# define X_DOT 37
# define X_SLASH 38
# define X_CAPSLOCK 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_PSCREEN 46
# define X_SCROLLLOCK 47
# define X_PAUSE 48
# define X_INSERT 49
# define X_HOME 4a
# define X_PGUP 4b
# define X_DELETE 4c
# define X_END 4d
# define X_PGDOWN 4e
# define X_RIGHT 4f
# define X_LEFT 50
# define X_DOWN 51
# define X_UP 52
# define X_NUMLOCK 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_BSLASH 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_INT1 87
# define X_INT2 88
# define X_INT3 89
# define X_INT4 8a
# define X_INT5 8b
# define X_INT6 8c
# define X_INT7 8d
# define X_INT8 8e
# define X_INT9 8f
# define X_LANG1 90
# define X_LANG2 91
# define X_LANG3 92
# define X_LANG4 93
# define X_LANG5 94
# define X_LANG6 95
# define X_LANG7 96
# define X_LANG8 97
# define X_LANG9 98
# define X_ALT_ERASE 99
# define X_SYSREQ 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_BACK SPACE 2a
# define X_TAB 2b
# define X_SPACE 2c
# define X_MINUS 2d
# define X_EQUAL 2e
# define X_LEFT_ BRACKET 2f
# define X_RIGHT_ BRACKET 30
# define X_BACK SLASH 31
# define X_NONUS_HASH 32
# define X_SEMI 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_PRINT_ SCREEN 46
# define X_SCROLL_ LOCK 47
# define X_PAUSE 48
# define X_INSERT 49
# define X_HOME 4a
# define X_PA GE_ UP 4b
# define X_DELETE 4c
# define X_END 4d
# define X_PA 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_BACK 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_INTERNATIONAL_ 1 87
# define X_INTERNATIONAL_ 2 88
# define X_INTERNATIONAL_ 3 89
# define X_INTERNATIONAL_ 4 8a
# define X_INTERNATIONAL_ 5 8b
# define X_INTERNATIONAL_ 6 8c
# define X_INTERNATIONAL_ 7 8d
# define X_INTERNATIONAL_ 8 8e
# define X_INTERNATIONAL_ 9 8f
# define X_LANGUAGE_ 1 90
# define X_LANGUAGE_ 2 91
# define X_LANGUAGE_ 3 92
# define X_LANGUAGE_ 4 93
# define X_LANGUAGE_ 5 94
# define X_LANGUAGE_ 6 95
# define X_LANGUAGE_ 7 96
# define X_LANGUAGE_ 8 97
# define X_LANGUAGE_ 9 98
# define X_ALTERNATE _ERASE 99
# define X_SYSTEM_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_LCTRL e0
# define X_LSHIFT e1
# define X_LALT e2
# define X_LGUI e3
# define X_RCTRL e4
# define X_RSHIFT e5
# define X_RALT e6
# define X_RGUI e7
# define X_LEFT_ CTRL e0
# define X_LEFT_ SHIFT e1
# define X_LEFT_ ALT e2
# define X_LEFT_ GUI e3
# define X_RIGHT_ CTRL e4
# define X_RIGHT_ SHIFT e5
# define X_RIGHT_ ALT e6
# define X_RIGHT_ 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)