Skip to content

Commit a56d3bd

Browse files
committed
(nut-tree/nut.js#457) Add and expose additional keys
cmd, right_cmd win, right_win alt, right_alt control, right_control menu fn
1 parent 71be53f commit a56d3bd

File tree

2 files changed

+44
-13
lines changed

2 files changed

+44
-13
lines changed

src/keycode.h

+32-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "os.h"
66

77
#ifdef __cplusplus
8-
extern "C"
8+
extern "C"
99
{
1010
#endif
1111

@@ -14,7 +14,7 @@ extern "C"
1414
#include <Carbon/Carbon.h> /* Really only need <HIToolbox/Events.h> */
1515
#include <ApplicationServices/ApplicationServices.h>
1616
#import <IOKit/hidsystem/ev_keymap.h>
17-
17+
1818
enum _MMKeyCode {
1919
K_NOT_A_KEY = 9999,
2020
K_BACKSPACE = kVK_Delete,
@@ -55,8 +55,16 @@ enum _MMKeyCode {
5555
K_F23 = K_NOT_A_KEY,
5656
K_F24 = K_NOT_A_KEY,
5757
K_META = kVK_Command,
58-
K_ALT = kVK_Option,
59-
K_CONTROL = kVK_Control,
58+
K_RIGHTMETA = kVK_RightCommand,
59+
K_CMD = kVK_Command,
60+
K_RIGHTCMD = kVK_RightCommand,
61+
K_WIN = K_NOT_A_KEY,
62+
K_RIGHTWIN = K_NOT_A_KEY,
63+
K_FUNCTION = kVK_Function,
64+
K_ALT = kVK_Option,
65+
K_RIGHTALT = kVK_RightOption,
66+
K_CONTROL = kVK_Control,
67+
K_RIGHTCONTROL = kVK_RightControl,
6068
K_SHIFT = kVK_Shift,
6169
K_RIGHTSHIFT = kVK_RightShift,
6270
K_CAPSLOCK = kVK_CapsLock,
@@ -151,8 +159,16 @@ enum _MMKeyCode {
151159
K_F23 = XK_F23,
152160
K_F24 = XK_F24,
153161
K_META = XK_Super_L,
154-
K_ALT = XK_Alt_L,
155-
K_CONTROL = XK_Control_L,
162+
K_RIGHTMETA = XK_Super_R,
163+
K_CMD = K_NOT_A_KEY,
164+
K_RIGHTCMD = K_NOT_A_KEY
165+
K_WIN = XK_Super_L,
166+
K_RIGHTWIN = XK_Super_R,
167+
K_FUNCTION = K_NOT_A_KEY,
168+
K_ALT = XK_Alt_L,
169+
K_RIGHTALT = XK_Alt_R,
170+
K_CONTROL = XK_Control_L,
171+
K_RIGHTCONTROL = XK_Control_R,
156172
K_SHIFT = XK_Shift_L,
157173
K_RIGHTSHIFT = XK_Shift_R,
158174
K_CAPSLOCK = XK_Caps_Lock,
@@ -244,10 +260,18 @@ enum _MMKeyCode {
244260
K_F23 = VK_F23,
245261
K_F24 = VK_F24,
246262
K_META = VK_LWIN,
247-
K_CONTROL = VK_CONTROL,
263+
K_RIGHTMETA = VK_RWIN,
264+
K_CMD = K_NOT_A_KEY,
265+
K_RIGHTCMD = K_NOT_A_KEY
266+
K_WIN = VK_LWIN,
267+
K_RIGHTWIN = VK_RWIN,
268+
K_FUNCTION = K_NOT_A_KEY,
269+
K_ALT = VK_LMENU,
270+
K_RIGHTALT = VK_RMENU,
271+
K_CONTROL = VK_LCONTROL,
272+
K_RIGHTCONTROL = VK_RCONTROL,
248273
K_SHIFT = VK_SHIFT,
249274
K_RIGHTSHIFT = VK_RSHIFT,
250-
K_ALT = VK_MENU,
251275
K_CAPSLOCK = VK_CAPITAL,
252276
K_NUMLOCK = VK_NUMLOCK,
253277
K_SCROLL_LOCK = VK_SCROLL,

src/main.cc

+12-5
Original file line numberDiff line numberDiff line change
@@ -295,14 +295,21 @@ static KeyNames key_names[] =
295295
{"f23", K_F23},
296296
{"f24", K_F24},
297297
{"command", K_META},
298-
{"alt", K_ALT},
299-
{"control", K_CONTROL},
300-
{"shift", K_SHIFT},
301-
{"right_shift", K_RIGHTSHIFT},
298+
{"cmd", K_CMD},
299+
{"right_cmd", K_RIGHTCMD},
300+
{"win", K_WIN},
301+
{"right_win", K_RIGHTWIN},
302+
{"alt", K_ALT},
303+
{"right_alt", K_RIGHTALT},
304+
{"control", K_CONTROL},
305+
{"right_control", K_RIGHTCONTROL},
306+
{"shift", K_SHIFT},
307+
{"right_shift", K_RIGHTSHIFT},
302308
{"space", K_SPACE},
303309
{"printscreen", K_PRINTSCREEN},
304310
{"insert", K_INSERT},
305-
{"menu", K_MENU},
311+
{"menu", K_MENU},
312+
{"fn", K_FUNCTION},
306313

307314
{"caps_lock", K_CAPSLOCK},
308315
{"num_lock", K_NUMLOCK},

0 commit comments

Comments
 (0)