diff --git a/src/keycode.h b/src/keycode.h index 7ab1685f..eeb1f7ff 100644 --- a/src/keycode.h +++ b/src/keycode.h @@ -56,7 +56,9 @@ enum _MMKeyCode { K_F24 = K_NOT_A_KEY, K_META = kVK_Command, K_ALT = kVK_Option, + K_RIGHT_ALT = kVK_Option, K_CONTROL = kVK_Control, + K_RIGHT_CONTROL = kVK_RightControl, K_SHIFT = kVK_Shift, K_RIGHTSHIFT = kVK_RightShift, K_CAPSLOCK = kVK_CapsLock, @@ -65,6 +67,7 @@ enum _MMKeyCode { K_PRINTSCREEN = K_NOT_A_KEY, K_MENU = K_NOT_A_KEY, + K_NUMPAD_LOCK = K_NOT_A_KEY, K_NUMPAD_0 = kVK_ANSI_Keypad0, K_NUMPAD_1 = kVK_ANSI_Keypad1, K_NUMPAD_2 = kVK_ANSI_Keypad2, @@ -75,6 +78,11 @@ enum _MMKeyCode { K_NUMPAD_7 = kVK_ANSI_Keypad7, K_NUMPAD_8 = kVK_ANSI_Keypad8, K_NUMPAD_9 = kVK_ANSI_Keypad9, + K_NUMPAD_PLUS = kVK_ANSI_KeypadPlus, + K_NUMPAD_MINUS = kVK_ANSI_KeypadMinus, + K_NUMPAD_MULTIPLY = kVK_ANSI_KeypadMultiply, + K_NUMPAD_DIVIDE = kVK_ANSI_KeypadDivide, + K_NUMPAD_DECIMAL = kVK_ANSI_KeypadDecimal, K_AUDIO_VOLUME_MUTE = 1007, K_AUDIO_VOLUME_DOWN = 1001, @@ -144,7 +152,9 @@ enum _MMKeyCode { K_F24 = XK_F24, K_META = XK_Super_L, K_ALT = XK_Alt_L, + K_RIGHT_ALT = XK_Alt_R, K_CONTROL = XK_Control_L, + K_RIGHT_CONTROL = XK_Control_R, K_SHIFT = XK_Shift_L, K_RIGHTSHIFT = XK_Shift_R, K_CAPSLOCK = XK_Shift_Lock, @@ -153,6 +163,7 @@ enum _MMKeyCode { K_PRINTSCREEN = XK_Print, K_MENU = K_NOT_A_KEY, + K_NUMPAD_LOCK = K_NOT_A_KEY, K_NUMPAD_0 = K_NOT_A_KEY, K_NUMPAD_1 = K_NOT_A_KEY, K_NUMPAD_2 = K_NOT_A_KEY, @@ -163,6 +174,11 @@ enum _MMKeyCode { K_NUMPAD_7 = K_NOT_A_KEY, K_NUMPAD_8 = K_NOT_A_KEY, K_NUMPAD_9 = K_NOT_A_KEY, + K_NUMPAD_PLUS = K_NOT_A_KEY, + K_NUMPAD_MINUS = K_NOT_A_KEY, + K_NUMPAD_MULTIPLY = K_NOT_A_KEY, + K_NUMPAD_DIVIDE = K_NOT_A_KEY, + K_NUMPAD_DECIMAL = K_NOT_A_KEY, K_AUDIO_VOLUME_MUTE = XF86XK_AudioMute, K_AUDIO_VOLUME_DOWN = XF86XK_AudioLowerVolume, @@ -229,15 +245,18 @@ enum _MMKeyCode { K_F24 = VK_F24, K_META = VK_LWIN, K_CONTROL = VK_CONTROL, + K_RIGHT_CONTROL = VK_RCONTROL, K_SHIFT = VK_SHIFT, K_RIGHTSHIFT = VK_RSHIFT, K_ALT = VK_MENU, + K_RIGHT_ALT = VK_MENU, K_CAPSLOCK = VK_CAPITAL, K_SPACE = VK_SPACE, K_PRINTSCREEN = VK_SNAPSHOT, K_INSERT = VK_INSERT, K_MENU = VK_APPS, + K_NUMPAD_LOCK = VK_NUMLOCK, K_NUMPAD_0 = VK_NUMPAD0, K_NUMPAD_1 = VK_NUMPAD1, K_NUMPAD_2 = VK_NUMPAD2, @@ -248,6 +267,11 @@ enum _MMKeyCode { K_NUMPAD_7 = VK_NUMPAD7, K_NUMPAD_8 = VK_NUMPAD8, K_NUMPAD_9 = VK_NUMPAD9, + K_NUMPAD_PLUS = VK_ADD, + K_NUMPAD_MINUS = VK_SUBTRACT, + K_NUMPAD_MULTIPLY = VK_MULTIPLY, + K_NUMPAD_DIVIDE = VK_DIVIDE, + K_NUMPAD_DECIMAL = VK_DECIMAL, K_AUDIO_VOLUME_MUTE = VK_VOLUME_MUTE, K_AUDIO_VOLUME_DOWN = VK_VOLUME_DOWN, diff --git a/src/robotjs.cc b/src/robotjs.cc index 972d75c6..50d64de0 100644 --- a/src/robotjs.cc +++ b/src/robotjs.cc @@ -76,10 +76,14 @@ static KeyNames key_names[] = { "f22", K_F22 }, { "f23", K_F23 }, { "f24", K_F24 }, + { "capslock", K_CAPSLOCK }, { "command", K_META }, { "alt", K_ALT }, + { "right_alt", K_RIGHT_ALT }, { "control", K_CONTROL }, + { "right_control", K_RIGHT_CONTROL }, { "shift", K_SHIFT }, + { "right_shift", K_RIGHTSHIFT }, { "space", K_SPACE }, { "printscreen", K_PRINTSCREEN }, { "insert", K_INSERT }, @@ -98,6 +102,7 @@ static KeyNames key_names[] = { "audio_repeat", K_AUDIO_REPEAT }, { "audio_random", K_AUDIO_RANDOM }, + { "numpad_lock", K_NUMPAD_LOCK }, { "numpad_0", K_NUMPAD_0 }, { "numpad_0", K_NUMPAD_0 }, { "numpad_1", K_NUMPAD_1 }, @@ -109,6 +114,11 @@ static KeyNames key_names[] = { "numpad_7", K_NUMPAD_7 }, { "numpad_8", K_NUMPAD_8 }, { "numpad_9", K_NUMPAD_9 }, + { "numpad_+", K_NUMPAD_PLUS }, + { "numpad_-", K_NUMPAD_MINUS }, + { "numpad_*", K_NUMPAD_MULTIPLY }, + { "numpad_/", K_NUMPAD_DIVIDE }, + { "numpad_.", K_NUMPAD_DECIMAL }, { "lights_mon_up", K_LIGHTS_MON_UP }, { "lights_mon_down", K_LIGHTS_MON_DOWN }, @@ -154,7 +164,7 @@ int CheckKeyFlags(char* f, MMKeyFlags* flags) { if (!flags) return -1; - if (strcmp(f, "alt") == 0) + if (strcmp(f, "alt") == 0 || strcmp(f, "right_alt") == 0) { *flags = MOD_ALT; } @@ -162,11 +172,11 @@ int CheckKeyFlags(char* f, MMKeyFlags* flags) { *flags = MOD_META; } - else if(strcmp(f, "control") == 0) + else if(strcmp(f, "control") == 0 || strcmp(f, "right_control") == 0) { *flags = MOD_CONTROL; } - else if(strcmp(f, "shift") == 0) + else if(strcmp(f, "shift") == 0 || strcmp(f, "right_shift") == 0) { *flags = MOD_SHIFT; }