Skip to content

Commit 55444c3

Browse files
committed
Support additional keys (capslock, numpad-keys, right alt+control).
Closes #358
1 parent d021733 commit 55444c3

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

src/keycode.h

+24
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ enum _MMKeyCode {
5656
K_F24 = K_NOT_A_KEY,
5757
K_META = kVK_Command,
5858
K_ALT = kVK_Option,
59+
K_RIGHT_ALT = kVK_Option,
5960
K_CONTROL = kVK_Control,
61+
K_RIGHT_CONTROL = kVK_RightControl,
6062
K_SHIFT = kVK_Shift,
6163
K_RIGHTSHIFT = kVK_RightShift,
6264
K_CAPSLOCK = kVK_CapsLock,
@@ -65,6 +67,7 @@ enum _MMKeyCode {
6567
K_PRINTSCREEN = K_NOT_A_KEY,
6668
K_MENU = K_NOT_A_KEY,
6769

70+
K_NUMPAD_LOCK = K_NOT_A_KEY,
6871
K_NUMPAD_0 = kVK_ANSI_Keypad0,
6972
K_NUMPAD_1 = kVK_ANSI_Keypad1,
7073
K_NUMPAD_2 = kVK_ANSI_Keypad2,
@@ -75,6 +78,11 @@ enum _MMKeyCode {
7578
K_NUMPAD_7 = kVK_ANSI_Keypad7,
7679
K_NUMPAD_8 = kVK_ANSI_Keypad8,
7780
K_NUMPAD_9 = kVK_ANSI_Keypad9,
81+
K_NUMPAD_PLUS = kVK_ANSI_KeypadPlus,
82+
K_NUMPAD_MINUS = kVK_ANSI_KeypadMinus,
83+
K_NUMPAD_MULTIPLY = kVK_ANSI_KeypadMultiply,
84+
K_NUMPAD_DIVIDE = kVK_ANSI_KeypadDivide,
85+
K_NUMPAD_DECIMAL = kVK_ANSI_KeypadDecimal,
7886

7987
K_AUDIO_VOLUME_MUTE = 1007,
8088
K_AUDIO_VOLUME_DOWN = 1001,
@@ -144,7 +152,9 @@ enum _MMKeyCode {
144152
K_F24 = XK_F24,
145153
K_META = XK_Super_L,
146154
K_ALT = XK_Alt_L,
155+
K_RIGHT_ALT = XK_Alt_R,
147156
K_CONTROL = XK_Control_L,
157+
K_RIGHT_CONTROL = XK_Control_R,
148158
K_SHIFT = XK_Shift_L,
149159
K_RIGHTSHIFT = XK_Shift_R,
150160
K_CAPSLOCK = XK_Shift_Lock,
@@ -153,6 +163,7 @@ enum _MMKeyCode {
153163
K_PRINTSCREEN = XK_Print,
154164
K_MENU = K_NOT_A_KEY,
155165

166+
K_NUMPAD_LOCK = K_NOT_A_KEY,
156167
K_NUMPAD_0 = K_NOT_A_KEY,
157168
K_NUMPAD_1 = K_NOT_A_KEY,
158169
K_NUMPAD_2 = K_NOT_A_KEY,
@@ -163,6 +174,11 @@ enum _MMKeyCode {
163174
K_NUMPAD_7 = K_NOT_A_KEY,
164175
K_NUMPAD_8 = K_NOT_A_KEY,
165176
K_NUMPAD_9 = K_NOT_A_KEY,
177+
K_NUMPAD_PLUS = K_NOT_A_KEY,
178+
K_NUMPAD_MINUS = K_NOT_A_KEY,
179+
K_NUMPAD_MULTIPLY = K_NOT_A_KEY,
180+
K_NUMPAD_DIVIDE = K_NOT_A_KEY,
181+
K_NUMPAD_DECIMAL = K_NOT_A_KEY,
166182

167183
K_AUDIO_VOLUME_MUTE = XF86XK_AudioMute,
168184
K_AUDIO_VOLUME_DOWN = XF86XK_AudioLowerVolume,
@@ -229,15 +245,18 @@ enum _MMKeyCode {
229245
K_F24 = VK_F24,
230246
K_META = VK_LWIN,
231247
K_CONTROL = VK_CONTROL,
248+
K_RIGHT_CONTROL = VK_RCONTROL,
232249
K_SHIFT = VK_SHIFT,
233250
K_RIGHTSHIFT = VK_RSHIFT,
234251
K_ALT = VK_MENU,
252+
K_RIGHT_ALT = VK_MENU,
235253
K_CAPSLOCK = VK_CAPITAL,
236254
K_SPACE = VK_SPACE,
237255
K_PRINTSCREEN = VK_SNAPSHOT,
238256
K_INSERT = VK_INSERT,
239257
K_MENU = VK_APPS,
240258

259+
K_NUMPAD_LOCK = VK_NUMLOCK,
241260
K_NUMPAD_0 = VK_NUMPAD0,
242261
K_NUMPAD_1 = VK_NUMPAD1,
243262
K_NUMPAD_2 = VK_NUMPAD2,
@@ -248,6 +267,11 @@ enum _MMKeyCode {
248267
K_NUMPAD_7 = VK_NUMPAD7,
249268
K_NUMPAD_8 = VK_NUMPAD8,
250269
K_NUMPAD_9 = VK_NUMPAD9,
270+
K_NUMPAD_PLUS = VK_ADD,
271+
K_NUMPAD_MINUS = VK_SUBTRACT,
272+
K_NUMPAD_MULTIPLY = VK_MULTIPLY,
273+
K_NUMPAD_DIVIDE = VK_DIVIDE,
274+
K_NUMPAD_DECIMAL = VK_DECIMAL,
251275

252276
K_AUDIO_VOLUME_MUTE = VK_VOLUME_MUTE,
253277
K_AUDIO_VOLUME_DOWN = VK_VOLUME_DOWN,

src/robotjs.cc

+13-3
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,12 @@ static KeyNames key_names[] =
309309
{ "f22", K_F22 },
310310
{ "f23", K_F23 },
311311
{ "f24", K_F24 },
312+
{ "capslock", K_CAPSLOCK },
312313
{ "command", K_META },
313314
{ "alt", K_ALT },
315+
{ "right_alt", K_RIGHT_ALT },
314316
{ "control", K_CONTROL },
317+
{ "right_control", K_RIGHT_CONTROL },
315318
{ "shift", K_SHIFT },
316319
{ "right_shift", K_RIGHTSHIFT },
317320
{ "space", K_SPACE },
@@ -332,6 +335,8 @@ static KeyNames key_names[] =
332335
{ "audio_repeat", K_AUDIO_REPEAT },
333336
{ "audio_random", K_AUDIO_RANDOM },
334337

338+
{ "numpad_lock", K_NUMPAD_LOCK },
339+
{ "numpad_0", K_NUMPAD_0 },
335340
{ "numpad_0", K_NUMPAD_0 },
336341
{ "numpad_1", K_NUMPAD_1 },
337342
{ "numpad_2", K_NUMPAD_2 },
@@ -342,6 +347,11 @@ static KeyNames key_names[] =
342347
{ "numpad_7", K_NUMPAD_7 },
343348
{ "numpad_8", K_NUMPAD_8 },
344349
{ "numpad_9", K_NUMPAD_9 },
350+
{ "numpad_+", K_NUMPAD_PLUS },
351+
{ "numpad_-", K_NUMPAD_MINUS },
352+
{ "numpad_*", K_NUMPAD_MULTIPLY },
353+
{ "numpad_/", K_NUMPAD_DIVIDE },
354+
{ "numpad_.", K_NUMPAD_DECIMAL },
345355

346356
{ "lights_mon_up", K_LIGHTS_MON_UP },
347357
{ "lights_mon_down", K_LIGHTS_MON_DOWN },
@@ -387,19 +397,19 @@ int CheckKeyFlags(char* f, MMKeyFlags* flags)
387397
{
388398
if (!flags) return -1;
389399

390-
if (strcmp(f, "alt") == 0)
400+
if (strcmp(f, "alt") == 0 || strcmp(f, "right_alt") == 0)
391401
{
392402
*flags = MOD_ALT;
393403
}
394404
else if(strcmp(f, "command") == 0)
395405
{
396406
*flags = MOD_META;
397407
}
398-
else if(strcmp(f, "control") == 0)
408+
else if(strcmp(f, "control") == 0 || strcmp(f, "right_control") == 0)
399409
{
400410
*flags = MOD_CONTROL;
401411
}
402-
else if(strcmp(f, "shift") == 0)
412+
else if(strcmp(f, "shift") == 0 || strcmp(f, "right_shift") == 0)
403413
{
404414
*flags = MOD_SHIFT;
405415
}

0 commit comments

Comments
 (0)