-
Notifications
You must be signed in to change notification settings - Fork 274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Where are these key codes and state flags coming from? #190
Comments
nevermind I found it https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-rawkeyboard |
In case it would be useful for anyone, here's some defines for the scan codes, using the same names as in the Linux kernel headers, generated by ChatGPT. On my keyboard these are right up until the Edit: I'm an idiot, these are also the same as the values used by the linux kernel. https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h #define KEY_ESC 0x01
#define KEY_1 0x02
#define KEY_2 0x03
#define KEY_3 0x04
#define KEY_4 0x05
#define KEY_5 0x06
#define KEY_6 0x07
#define KEY_7 0x08
#define KEY_8 0x09
#define KEY_9 0x0A
#define KEY_0 0x0B
#define KEY_MINUS 0x0C
#define KEY_EQUAL 0x0D
#define KEY_BACKSPACE 0x0E
#define KEY_TAB 0x0F
#define KEY_Q 0x10
#define KEY_W 0x11
#define KEY_E 0x12
#define KEY_R 0x13
#define KEY_T 0x14
#define KEY_Y 0x15
#define KEY_U 0x16
#define KEY_I 0x17
#define KEY_O 0x18
#define KEY_P 0x19
#define KEY_LEFTBRACE 0x1A
#define KEY_RIGHTBRACE 0x1B
#define KEY_ENTER 0x1C
#define KEY_LEFTCTRL 0x1D
#define KEY_A 0x1E
#define KEY_S 0x1F
#define KEY_D 0x20
#define KEY_F 0x21
#define KEY_G 0x22
#define KEY_H 0x23
#define KEY_J 0x24
#define KEY_K 0x25
#define KEY_L 0x26
#define KEY_SEMICOLON 0x27
#define KEY_APOSTROPHE 0x28
#define KEY_GRAVE 0x29
#define KEY_LEFTSHIFT 0x2A
#define KEY_BACKSLASH 0x2B
#define KEY_Z 0x2C
#define KEY_X 0x2D
#define KEY_C 0x2E
#define KEY_V 0x2F
#define KEY_B 0x30
#define KEY_N 0x31
#define KEY_M 0x32
#define KEY_COMMA 0x33
#define KEY_DOT 0x34
#define KEY_SLASH 0x35
#define KEY_RIGHTSHIFT 0x36
#define KEY_KPASTERISK 0x37
#define KEY_LEFTALT 0x38
#define KEY_SPACE 0x39
#define KEY_CAPSLOCK 0x3A
#define KEY_F1 0x3B
#define KEY_F2 0x3C
#define KEY_F3 0x3D
#define KEY_F4 0x3E
#define KEY_F5 0x3F
#define KEY_F6 0x40
#define KEY_F7 0x41
#define KEY_F8 0x42
#define KEY_F9 0x43
#define KEY_F10 0x44
#define KEY_NUMLOCK 0x45
#define KEY_SCROLLLOCK 0x46
#define KEY_KP7 0x47
#define KEY_KP8 0x48
#define KEY_KP9 0x49
#define KEY_KPMINUS 0x4A
#define KEY_KP4 0x4B
#define KEY_KP5 0x4C
#define KEY_KP6 0x4D
#define KEY_KPPLUS 0x4E
#define KEY_KP1 0x4F
#define KEY_KP2 0x50
#define KEY_KP3 0x51
#define KEY_KP0 0x52
#define KEY_KPDOT 0x53
#define KEY_ZENKAKUHANKAKU 0x56
#define KEY_102ND 0x56
#define KEY_F11 0x57
#define KEY_F12 0x58
#define KEY_RO 0x73
#define KEY_KATAKANA 0x70
#define KEY_HIRAGANA 0x77
#define KEY_HENKAN 0x79
#define KEY_KATAKANAHIRAGANA 0x78
#define KEY_MUHENKAN 0x7B
#define KEY_KPJPCOMMA 0x7C
#define KEY_KPENTER 0xE0
#define KEY_RIGHTCTRL 0xE4
#define KEY_KPSLASH 0xE5
#define KEY_SYSRQ 0xE6
#define KEY_RIGHTALT 0xE7
#define KEY_LINEFEED 0xE8
#define KEY_HOME 0xE9
#define KEY_UP 0xEA
#define KEY_PAGEUP 0xEB
#define KEY_LEFT 0xEC
#define KEY_RIGHT 0xED
#define KEY_END 0xEE
#define KEY_DOWN 0xEF
#define KEY_PAGEDOWN 0xF0
#define KEY_INSERT 0xF1
#define KEY_DELETE 0xF2
#define KEY_MACRO 0xF3
#define KEY_MUTE 0xF4
#define KEY_VOLUMEDOWN 0xF5
#define KEY_VOLUMEUP 0xF6
#define KEY_POWER 0xF7
#define KEY_KPEQUAL 0xF8
#define KEY_KPPLUSMINUS 0xF9
#define KEY_PAUSE 0xF9
#define KEY_SCALE 0xFA
#define KEY_KPCOMMA 0xFB
#define KEY_HANGEUL 0xFC
#define KEY_HANJA 0xFD
#define KEY_YEN 0xFE
#define KEY_LEFTMETA 0xFF
#define KEY_RIGHTMETA 0x100
#define KEY_COMPOSE 0x101 |
So the keycodes don't agree with the virtual keycodes listed here https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes. Are the Interception keycodes documented or
#define
d anywhere? Similarly thestate
field contains some flags. Clearlykey_stroke.state | 0x1
is down vs up, but are the other flags documented anywhere?The text was updated successfully, but these errors were encountered: