2019-02-19 22:31:25 +08:00
|
|
|
package hook
|
|
|
|
|
|
|
|
var (
|
2019-02-20 23:07:25 +08:00
|
|
|
raw2key = map[uint16]string{ // https://github.com/wesbos/keycodes
|
2019-02-19 22:31:25 +08:00
|
|
|
0: "error",
|
|
|
|
3: "break",
|
|
|
|
8: "backspace",
|
|
|
|
9: "tab",
|
|
|
|
12: "clear",
|
|
|
|
13: "enter",
|
|
|
|
16: "shift",
|
|
|
|
17: "ctrl",
|
|
|
|
18: "alt",
|
|
|
|
19: "pause/break",
|
|
|
|
20: "caps lock",
|
|
|
|
21: "hangul",
|
|
|
|
25: "hanja",
|
|
|
|
27: "escape",
|
|
|
|
28: "conversion",
|
|
|
|
29: "non-conversion",
|
|
|
|
32: "spacebar",
|
|
|
|
33: "page up",
|
|
|
|
34: "page down",
|
|
|
|
35: "end",
|
|
|
|
36: "home",
|
|
|
|
37: "left arrow",
|
|
|
|
38: "up arrow",
|
|
|
|
39: "right arrow",
|
|
|
|
40: "down arrow",
|
|
|
|
41: "select",
|
|
|
|
42: "print",
|
|
|
|
43: "execute",
|
|
|
|
44: "Print Screen",
|
|
|
|
45: "insert",
|
|
|
|
46: "delete",
|
|
|
|
47: "help",
|
|
|
|
48: "0",
|
|
|
|
49: "1",
|
|
|
|
50: "2",
|
|
|
|
51: "3",
|
|
|
|
52: "4",
|
|
|
|
53: "5",
|
|
|
|
54: "6",
|
|
|
|
55: "7",
|
|
|
|
56: "8",
|
|
|
|
57: "9",
|
|
|
|
58: ":",
|
|
|
|
59: ";",
|
|
|
|
60: "<",
|
|
|
|
61: "=",
|
|
|
|
63: "ß",
|
|
|
|
64: "@",
|
|
|
|
65: "a",
|
|
|
|
66: "b",
|
|
|
|
67: "c",
|
|
|
|
68: "d",
|
|
|
|
69: "e",
|
|
|
|
70: "f",
|
|
|
|
71: "g",
|
|
|
|
72: "h",
|
|
|
|
73: "i",
|
|
|
|
74: "j",
|
|
|
|
75: "k",
|
|
|
|
76: "l",
|
|
|
|
77: "m",
|
|
|
|
78: "n",
|
|
|
|
79: "o",
|
|
|
|
80: "p",
|
|
|
|
81: "q",
|
|
|
|
82: "r",
|
|
|
|
83: "s",
|
|
|
|
84: "t",
|
|
|
|
85: "u",
|
|
|
|
86: "v",
|
|
|
|
87: "w",
|
|
|
|
88: "x",
|
|
|
|
89: "y",
|
|
|
|
90: "z",
|
|
|
|
91: "l-super",
|
|
|
|
92: "r-super",
|
|
|
|
93: "apps",
|
|
|
|
95: "sleep",
|
|
|
|
96: "numpad 0",
|
|
|
|
97: "numpad 1",
|
|
|
|
98: "numpad 2",
|
|
|
|
99: "numpad 3",
|
|
|
|
100: "numpad 4",
|
|
|
|
101: "numpad 5",
|
|
|
|
102: "numpad 6",
|
|
|
|
103: "numpad 7",
|
|
|
|
104: "numpad 8",
|
|
|
|
105: "numpad 9",
|
|
|
|
106: "multiply",
|
|
|
|
107: "add",
|
|
|
|
108: "numpad period",
|
|
|
|
109: "subtract",
|
|
|
|
110: "decimal point",
|
|
|
|
111: "divide",
|
|
|
|
112: "f1",
|
|
|
|
113: "f2",
|
|
|
|
114: "f3",
|
|
|
|
115: "f4",
|
|
|
|
116: "f5",
|
|
|
|
117: "f6",
|
|
|
|
118: "f7",
|
|
|
|
119: "f8",
|
|
|
|
120: "f9",
|
|
|
|
121: "f10",
|
|
|
|
122: "f11",
|
|
|
|
123: "f12",
|
|
|
|
124: "f13",
|
|
|
|
125: "f14",
|
|
|
|
126: "f15",
|
|
|
|
127: "f16",
|
|
|
|
128: "f17",
|
|
|
|
129: "f18",
|
|
|
|
130: "f19",
|
|
|
|
131: "f20",
|
|
|
|
132: "f21",
|
|
|
|
133: "f22",
|
|
|
|
134: "f23",
|
|
|
|
135: "f24",
|
|
|
|
144: "num lock",
|
|
|
|
145: "scroll lock",
|
|
|
|
160: "^",
|
|
|
|
161: "!",
|
|
|
|
162: "؛",
|
|
|
|
163: "#",
|
|
|
|
164: "$",
|
|
|
|
165: "ù",
|
|
|
|
166: "page backward",
|
|
|
|
167: "page forward",
|
|
|
|
168: "refresh",
|
|
|
|
169: "closing paren (AZERTY)",
|
|
|
|
170: "*",
|
|
|
|
171: "~ + * key",
|
|
|
|
172: "home key",
|
|
|
|
173: "minus (firefox), mute/unmute",
|
|
|
|
174: "decrease volume level",
|
|
|
|
175: "increase volume level",
|
|
|
|
176: "next",
|
|
|
|
177: "previous",
|
|
|
|
178: "stop",
|
|
|
|
179: "play/pause",
|
|
|
|
180: "e-mail",
|
|
|
|
181: "mute/unmute (firefox)",
|
|
|
|
182: "decrease volume level (firefox)",
|
|
|
|
183: "increase volume level (firefox)",
|
|
|
|
186: "semi-colon / ñ",
|
|
|
|
187: "equal sign",
|
|
|
|
188: "comma",
|
|
|
|
189: "dash",
|
|
|
|
190: "period",
|
|
|
|
191: "forward slash / ç",
|
|
|
|
192: "grave accent / ñ / æ / ö",
|
|
|
|
193: "?, / or °",
|
|
|
|
194: "numpad period (chrome)",
|
|
|
|
219: "open bracket",
|
|
|
|
220: "back slash",
|
|
|
|
221: "close bracket / å",
|
|
|
|
222: "single quote / ø / ä",
|
|
|
|
223: "`",
|
|
|
|
224: "left or right ⌘ key (firefox)",
|
|
|
|
225: "altgr",
|
|
|
|
226: "< /git >, left back slash",
|
|
|
|
230: "GNOME Compose Key",
|
|
|
|
231: "ç",
|
|
|
|
233: "XF86Forward",
|
|
|
|
234: "XF86Back",
|
|
|
|
235: "non-conversion",
|
|
|
|
240: "alphanumeric",
|
|
|
|
242: "hiragana/katakana",
|
|
|
|
243: "half-width/full-width",
|
|
|
|
244: "kanji",
|
|
|
|
251: "unlock trackpad (Chrome/Edge)",
|
|
|
|
255: "toggle touchpad",
|
|
|
|
}
|
2019-02-19 23:32:48 +08:00
|
|
|
|
2019-02-19 22:31:25 +08:00
|
|
|
keytoraw = map[string]uint16{
|
|
|
|
"error": 0,
|
|
|
|
"break": 3,
|
|
|
|
"backspace": 8,
|
|
|
|
"tab": 9,
|
|
|
|
"clear": 12,
|
|
|
|
"enter": 13,
|
|
|
|
"shift": 16,
|
|
|
|
"ctrl": 17,
|
|
|
|
"alt": 18,
|
|
|
|
"pause/break": 19,
|
|
|
|
"caps lock": 20,
|
|
|
|
"hangul": 21,
|
|
|
|
"hanja": 25,
|
|
|
|
"escape": 27,
|
|
|
|
"conversion": 28,
|
|
|
|
"non-conversion": 29,
|
|
|
|
"spacebar": 32,
|
|
|
|
"page up": 33,
|
|
|
|
"page down": 34,
|
|
|
|
"end": 35,
|
|
|
|
"home": 36,
|
|
|
|
"left arrow": 37,
|
|
|
|
"up arrow": 38,
|
|
|
|
"right arrow": 39,
|
|
|
|
"down arrow": 40,
|
|
|
|
"select": 41,
|
|
|
|
"print": 42,
|
|
|
|
"execute": 43,
|
|
|
|
"Print Screen": 44,
|
|
|
|
"insert": 45,
|
|
|
|
"delete": 46,
|
|
|
|
"help": 47,
|
|
|
|
"0": 48,
|
|
|
|
"1": 49,
|
|
|
|
"2": 50,
|
|
|
|
"3": 51,
|
|
|
|
"4": 52,
|
|
|
|
"5": 53,
|
|
|
|
"6": 54,
|
|
|
|
"7": 55,
|
|
|
|
"8": 56,
|
|
|
|
"9": 57,
|
|
|
|
":": 58,
|
|
|
|
";": 59,
|
|
|
|
"<": 60,
|
|
|
|
"=": 61,
|
|
|
|
"ß": 63,
|
|
|
|
"@": 64,
|
|
|
|
"a": 65,
|
|
|
|
"b": 66,
|
|
|
|
"c": 67,
|
|
|
|
"d": 68,
|
|
|
|
"e": 69,
|
|
|
|
"f": 70,
|
|
|
|
"g": 71,
|
|
|
|
"h": 72,
|
|
|
|
"i": 73,
|
|
|
|
"j": 74,
|
|
|
|
"k": 75,
|
|
|
|
"l": 76,
|
|
|
|
"m": 77,
|
|
|
|
"n": 78,
|
|
|
|
"o": 79,
|
|
|
|
"p": 80,
|
|
|
|
"q": 81,
|
|
|
|
"r": 82,
|
|
|
|
"s": 83,
|
|
|
|
"t": 84,
|
|
|
|
"u": 85,
|
|
|
|
"v": 86,
|
|
|
|
"w": 87,
|
|
|
|
"x": 88,
|
|
|
|
"y": 89,
|
|
|
|
"z": 90,
|
|
|
|
"l-super": 91,
|
|
|
|
"r-super": 92,
|
|
|
|
"apps": 93,
|
|
|
|
"sleep": 95,
|
|
|
|
"numpad 0": 96,
|
|
|
|
"numpad 1": 97,
|
|
|
|
"numpad 2": 98,
|
|
|
|
"numpad 3": 99,
|
|
|
|
"numpad 4": 100,
|
|
|
|
"numpad 5": 101,
|
|
|
|
"numpad 6": 102,
|
|
|
|
"numpad 7": 103,
|
|
|
|
"numpad 8": 104,
|
|
|
|
"numpad 9": 105,
|
|
|
|
"multiply": 106,
|
|
|
|
"add": 107,
|
|
|
|
"numpad period": 108,
|
|
|
|
"subtract": 109,
|
|
|
|
"decimal point": 110,
|
|
|
|
"divide": 111,
|
|
|
|
"f1": 112,
|
|
|
|
"f2": 113,
|
|
|
|
"f3": 114,
|
|
|
|
"f4": 115,
|
|
|
|
"f5": 116,
|
|
|
|
"f6": 117,
|
|
|
|
"f7": 118,
|
|
|
|
"f8": 119,
|
|
|
|
"f9": 120,
|
|
|
|
"f10": 121,
|
|
|
|
"f11": 122,
|
|
|
|
"f12": 123,
|
|
|
|
"f13": 124,
|
|
|
|
"f14": 125,
|
|
|
|
"f15": 126,
|
|
|
|
"f16": 127,
|
|
|
|
"f17": 128,
|
|
|
|
"f18": 129,
|
|
|
|
"f19": 130,
|
|
|
|
"f20": 131,
|
|
|
|
"f21": 132,
|
|
|
|
"f22": 133,
|
|
|
|
"f23": 134,
|
|
|
|
"f24": 135,
|
|
|
|
"num lock": 144,
|
|
|
|
"scroll lock": 145,
|
|
|
|
"^": 160,
|
|
|
|
"!": 161,
|
|
|
|
"؛": 162,
|
|
|
|
"#": 163,
|
|
|
|
"$": 164,
|
|
|
|
"ù": 165,
|
|
|
|
"page backward": 166,
|
|
|
|
"page forward": 167,
|
|
|
|
"refresh": 168,
|
|
|
|
"closing paren (AZERTY)": 169,
|
|
|
|
"*": 170,
|
|
|
|
"~ + * key": 171,
|
|
|
|
"home key": 172,
|
|
|
|
"minus (firefox), mute/unmute": 173,
|
|
|
|
"decrease volume level": 174,
|
|
|
|
"increase volume level": 175,
|
|
|
|
"next": 176,
|
|
|
|
"previous": 177,
|
|
|
|
"stop": 178,
|
|
|
|
"play/pause": 179,
|
|
|
|
"e-mail": 180,
|
|
|
|
"mute/unmute (firefox)": 181,
|
|
|
|
"decrease volume level (firefox)": 182,
|
|
|
|
"increase volume level (firefox)": 183,
|
|
|
|
"semi-colon / ñ": 186,
|
|
|
|
"equal sign": 187,
|
|
|
|
"comma": 188,
|
|
|
|
"dash": 189,
|
|
|
|
"period": 190,
|
|
|
|
"forward slash / ç": 191,
|
|
|
|
"grave accent / ñ / æ / ö": 192,
|
|
|
|
"?, / or °": 193,
|
|
|
|
"numpad period (chrome)": 194,
|
|
|
|
"open bracket": 219,
|
|
|
|
"back slash": 220,
|
|
|
|
"close bracket / å": 221,
|
|
|
|
"single quote / ø / ä": 222,
|
|
|
|
"`": 223,
|
|
|
|
"left or right ⌘ key (firefox)": 224,
|
|
|
|
"altgr": 225,
|
|
|
|
"< /git >, left back slash": 226,
|
|
|
|
"GNOME Compose Key": 230,
|
|
|
|
"ç": 231,
|
|
|
|
"XF86Forward": 233,
|
|
|
|
"XF86Back": 234,
|
|
|
|
"alphanumeric": 240,
|
|
|
|
"hiragana/katakana": 242,
|
|
|
|
"half-width/full-width": 243,
|
|
|
|
"kanji": 244,
|
|
|
|
"unlock trackpad (Chrome/Edge)": 251,
|
|
|
|
"toggle touchpad": 255,
|
|
|
|
}
|
|
|
|
)
|