@@ -108,6 +108,38 @@ const (
108108 KEY_BRIGHTNESSUP = 225
109109 KEY_PRINT = 99
110110 KEY_SYSRQ = 183
111+
112+ // Navigation cluster
113+ KEY_INSERT = 110
114+ KEY_DELETE = 111
115+ KEY_HOME = 102
116+ KEY_END = 107
117+ KEY_PAGEUP = 104
118+ KEY_PAGEDOWN = 109
119+
120+ // Arrow keys
121+ KEY_UP = 103
122+ KEY_DOWN = 108
123+ KEY_LEFT = 105
124+ KEY_RIGHT = 106
125+
126+ // Numpad
127+ KEY_KP0 = 82
128+ KEY_KP1 = 79
129+ KEY_KP2 = 80
130+ KEY_KP3 = 81
131+ KEY_KP4 = 75
132+ KEY_KP5 = 76
133+ KEY_KP6 = 77
134+ KEY_KP7 = 71
135+ KEY_KP8 = 72
136+ KEY_KP9 = 73
137+ KEY_KPDOT = 83
138+ KEY_KPENTER = 96
139+ KEY_KPPLUS = 78
140+ KEY_KPMINUS = 74
141+ KEY_KPSLASH = 98
142+ // KEY_KPASTERISK = 55 (already defined above)
111143)
112144
113145// KeyNameToCode maps human-readable key names to Linux input codes.
@@ -148,6 +180,26 @@ var KeyNameToCode = map[string]int{
148180 "brightnessup" : KEY_BRIGHTNESSUP , "brightnessdown" : KEY_BRIGHTNESSDOWN ,
149181 "printscreen" : KEY_PRINT , "sysrq" : KEY_SYSRQ ,
150182 "screenshot" : KEY_PRINT ,
183+ // Navigation cluster
184+ "insert" : KEY_INSERT , "ins" : KEY_INSERT ,
185+ "delete" : KEY_DELETE , "del" : KEY_DELETE ,
186+ "home" : KEY_HOME , "end" : KEY_END ,
187+ "pageup" : KEY_PAGEUP , "pgup" : KEY_PAGEUP ,
188+ "pagedown" : KEY_PAGEDOWN , "pgdn" : KEY_PAGEDOWN , "pgdown" : KEY_PAGEDOWN ,
189+ // Arrow keys
190+ "up" : KEY_UP , "down" : KEY_DOWN , "left" : KEY_LEFT , "right" : KEY_RIGHT ,
191+ // Numpad
192+ "numpad0" : KEY_KP0 , "numpad1" : KEY_KP1 , "numpad2" : KEY_KP2 ,
193+ "numpad3" : KEY_KP3 , "numpad4" : KEY_KP4 , "numpad5" : KEY_KP5 ,
194+ "numpad6" : KEY_KP6 , "numpad7" : KEY_KP7 , "numpad8" : KEY_KP8 ,
195+ "numpad9" : KEY_KP9 ,
196+ "numpaddot" : KEY_KPDOT , "numpadenter" : KEY_KPENTER ,
197+ "numpadplus" : KEY_KPPLUS , "numpadminus" : KEY_KPMINUS ,
198+ "numpadmultiply" : KEY_KPASTERISK , "numpaddivide" : KEY_KPSLASH ,
199+ // Common aliases
200+ "return" : KEY_ENTER ,
201+ "win" : KEY_LEFTMETA , "super" : KEY_LEFTMETA ,
202+ "windows" : KEY_LEFTMETA ,
151203}
152204
153205// allKeys contains all key codes to register with uinput.
@@ -171,6 +223,14 @@ var allKeys = []uint16{
171223 KEY_PLAYPAUSE , KEY_STOPCD , KEY_PREVIOUSSONG , KEY_NEXTSONG ,
172224 KEY_BRIGHTNESSUP , KEY_BRIGHTNESSDOWN ,
173225 KEY_PRINT , KEY_SYSRQ ,
226+ // Navigation cluster
227+ KEY_INSERT , KEY_DELETE , KEY_HOME , KEY_END , KEY_PAGEUP , KEY_PAGEDOWN ,
228+ // Arrow keys
229+ KEY_UP , KEY_DOWN , KEY_LEFT , KEY_RIGHT ,
230+ // Numpad
231+ KEY_KP0 , KEY_KP1 , KEY_KP2 , KEY_KP3 , KEY_KP4 , KEY_KP5 ,
232+ KEY_KP6 , KEY_KP7 , KEY_KP8 , KEY_KP9 ,
233+ KEY_KPDOT , KEY_KPENTER , KEY_KPPLUS , KEY_KPMINUS , KEY_KPASTERISK , KEY_KPSLASH ,
174234}
175235
176236// linuxKeyboard represents a virtual keyboard device created via uinput.
0 commit comments