aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common/keycode.h
diff options
context:
space:
mode:
authorfauxpark <fauxpark@gmail.com>2018-08-17 02:12:48 +1000
committerJack Humbert <jack.humb@gmail.com>2018-08-16 12:12:48 -0400
commit700aa8fe1c5775ba26358c343c122997225fafcc (patch)
treee82f773b45284c0e221d4c1548af3c31eafad492 /tmk_core/common/keycode.h
parent97df0fc072333684e7dfbca0effd7d25097c2e26 (diff)
downloadqmk_firmware-700aa8fe1c5775ba26358c343c122997225fafcc.tar.gz
qmk_firmware-700aa8fe1c5775ba26358c343c122997225fafcc.zip
Tidy up keycode.h (#3666)
* Tidy up keycode.h * Fix spacing here * Add back this comma
Diffstat (limited to 'tmk_core/common/keycode.h')
-rw-r--r--tmk_core/common/keycode.h809
1 files changed, 412 insertions, 397 deletions
diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h
index 9cb4f1e0c..61642ae84 100644
--- a/tmk_core/common/keycode.h
+++ b/tmk_core/common/keycode.h
@@ -16,8 +16,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18/* 18/*
19 * Keycodes based on HID Usage Keyboard/Keypad Page(0x07) plus special codes 19 * Keycodes based on HID Keyboard/Keypad Usage Page (0x07) plus media keys from Generic Desktop Page (0x01) and Consumer Page (0x0C)
20 * https://web.archive.org/web/20060218214400/http://www.usb.org/developers/devclass_docs/Hut1_12.pdf 20 *
21 * See https://web.archive.org/web/20060218214400/http://www.usb.org/developers/devclass_docs/Hut1_12.pdf
21 * or http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (older) 22 * or http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (older)
22 */ 23 */
23#ifndef KEYCODE_H 24#ifndef KEYCODE_H
@@ -30,76 +31,82 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
30#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) 31#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL)
31#define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI) 32#define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI)
32 33
33
34#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) 34#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF))
35#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) 35#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE)
36#define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_MRWD) 36#define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_MRWD)
37
37#define IS_FN(code) (KC_FN0 <= (code) && (code) <= KC_FN31) 38#define IS_FN(code) (KC_FN0 <= (code) && (code) <= KC_FN31)
39
38#define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) 40#define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2)
39#define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) 41#define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT)
40#define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN5) 42#define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN5)
41#define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) 43#define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT)
42#define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2) 44#define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2)
43 45
44#define MOD_BIT(code) (1<<MOD_INDEX(code)) 46#define MOD_BIT(code) (1 << MOD_INDEX(code))
45#define MOD_INDEX(code) ((code) & 0x07) 47#define MOD_INDEX(code) ((code) & 0x07)
46#define FN_BIT(code) (1<<FN_INDEX(code))
47#define FN_INDEX(code) ((code) - KC_FN0)
48#define FN_MIN KC_FN0
49#define FN_MAX KC_FN31
50 48
49#define FN_BIT(code) (1 << FN_INDEX(code))
50#define FN_INDEX(code) ((code) - KC_FN0)
51#define FN_MIN KC_FN0
52#define FN_MAX KC_FN31
51 53
52/* 54/*
53 * Short names for ease of definition of keymap 55 * Short names for ease of definition of keymap
54 */ 56 */
55#define KC_LCTL KC_LCTRL 57/* Transparent */
56#define KC_RCTL KC_RCTRL 58#define KC_TRANSPARENT 0x01
57#define KC_LSFT KC_LSHIFT 59#define KC_TRNS KC_TRANSPARENT
58#define KC_RSFT KC_RSHIFT 60
61/* Punctuation */
62#define KC_ENT KC_ENTER
59#define KC_ESC KC_ESCAPE 63#define KC_ESC KC_ESCAPE
60#define KC_BSPC KC_BSPACE 64#define KC_BSPC KC_BSPACE
61#define KC_ENT KC_ENTER
62#define KC_DEL KC_DELETE
63#define KC_INS KC_INSERT
64#define KC_CAPS KC_CAPSLOCK
65#define KC_CLCK KC_CAPSLOCK
66#define KC_RGHT KC_RIGHT
67#define KC_PGDN KC_PGDOWN
68#define KC_PSCR KC_PSCREEN
69#define KC_SLCK KC_SCROLLLOCK
70#define KC_PAUS KC_PAUSE
71#define KC_BRK KC_PAUSE
72#define KC_NLCK KC_NUMLOCK
73#define KC_SPC KC_SPACE 65#define KC_SPC KC_SPACE
74#define KC_MINS KC_MINUS 66#define KC_MINS KC_MINUS
75#define KC_EQL KC_EQUAL 67#define KC_EQL KC_EQUAL
76#define KC_GRV KC_GRAVE
77#define KC_RBRC KC_RBRACKET
78#define KC_LBRC KC_LBRACKET 68#define KC_LBRC KC_LBRACKET
79#define KC_COMM KC_COMMA 69#define KC_RBRC KC_RBRACKET
80#define KC_BSLS KC_BSLASH 70#define KC_BSLS KC_BSLASH
81#define KC_SLSH KC_SLASH 71#define KC_NUHS KC_NONUS_HASH
82#define KC_SCLN KC_SCOLON 72#define KC_SCLN KC_SCOLON
83#define KC_QUOT KC_QUOTE 73#define KC_QUOT KC_QUOTE
84#define KC_APP KC_APPLICATION 74#define KC_GRV KC_GRAVE
85#define KC_NUHS KC_NONUS_HASH 75#define KC_COMM KC_COMMA
76#define KC_SLSH KC_SLASH
86#define KC_NUBS KC_NONUS_BSLASH 77#define KC_NUBS KC_NONUS_BSLASH
78
79/* Lock Keys */
80#define KC_CLCK KC_CAPSLOCK
81#define KC_CAPS KC_CAPSLOCK
82#define KC_SLCK KC_SCROLLLOCK
83#define KC_NLCK KC_NUMLOCK
87#define KC_LCAP KC_LOCKING_CAPS 84#define KC_LCAP KC_LOCKING_CAPS
88#define KC_LNUM KC_LOCKING_NUM 85#define KC_LNUM KC_LOCKING_NUM
89#define KC_LSCR KC_LOCKING_SCROLL 86#define KC_LSCR KC_LOCKING_SCROLL
87
88/* Commands */
89#define KC_PSCR KC_PSCREEN
90#define KC_PAUS KC_PAUSE
91#define KC_BRK KC_PAUSE
92#define KC_INS KC_INSERT
93#define KC_DEL KC_DELETE
94#define KC_PGDN KC_PGDOWN
95#define KC_RGHT KC_RIGHT
96#define KC_APP KC_APPLICATION
97#define KC_EXEC KC_EXECUTE
98#define KC_SLCT KC_SELECT
99#define KC_AGIN KC_AGAIN
100#define KC_PSTE KC_PASTE
90#define KC_ERAS KC_ALT_ERASE 101#define KC_ERAS KC_ALT_ERASE
91#define KC_CLR KC_CLEAR 102#define KC_CLR KC_CLEAR
92/* Japanese specific */ 103
93#define KC_ZKHK KC_GRAVE
94#define KC_RO KC_INT1
95#define KC_KANA KC_INT2
96#define KC_JYEN KC_INT3
97#define KC_HENK KC_INT4
98#define KC_MHEN KC_INT5
99/* Korean specific */
100#define KC_HAEN KC_LANG1
101#define KC_HANJ KC_LANG2
102/* Keypad */ 104/* Keypad */
105#define KC_PSLS KC_KP_SLASH
106#define KC_PAST KC_KP_ASTERISK
107#define KC_PMNS KC_KP_MINUS
108#define KC_PPLS KC_KP_PLUS
109#define KC_PENT KC_KP_ENTER
103#define KC_P1 KC_KP_1 110#define KC_P1 KC_KP_1
104#define KC_P2 KC_KP_2 111#define KC_P2 KC_KP_2
105#define KC_P3 KC_KP_3 112#define KC_P3 KC_KP_3
@@ -111,47 +118,42 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
111#define KC_P9 KC_KP_9 118#define KC_P9 KC_KP_9
112#define KC_P0 KC_KP_0 119#define KC_P0 KC_KP_0
113#define KC_PDOT KC_KP_DOT 120#define KC_PDOT KC_KP_DOT
114#define KC_PCMM KC_KP_COMMA
115#define KC_PSLS KC_KP_SLASH
116#define KC_PAST KC_KP_ASTERISK
117#define KC_PMNS KC_KP_MINUS
118#define KC_PPLS KC_KP_PLUS
119#define KC_PEQL KC_KP_EQUAL 121#define KC_PEQL KC_KP_EQUAL
120#define KC_PENT KC_KP_ENTER 122#define KC_PCMM KC_KP_COMMA
121/* Unix function key */ 123
122#define KC_EXEC KC_EXECUTE 124/* Japanese specific */
123#define KC_SLCT KC_SELECT 125#define KC_ZKHK KC_GRAVE
124#define KC_AGIN KC_AGAIN 126#define KC_RO KC_INT1
125#define KC_PSTE KC_PASTE 127#define KC_KANA KC_INT2
126/* Mousekey */ 128#define KC_JYEN KC_INT3
127#define KC_MS_U KC_MS_UP 129#define KC_HENK KC_INT4
128#define KC_MS_D KC_MS_DOWN 130#define KC_MHEN KC_INT5
129#define KC_MS_L KC_MS_LEFT 131
130#define KC_MS_R KC_MS_RIGHT 132/* Korean specific */
131#define KC_BTN1 KC_MS_BTN1 133#define KC_HAEN KC_LANG1
132#define KC_BTN2 KC_MS_BTN2 134#define KC_HANJ KC_LANG2
133#define KC_BTN3 KC_MS_BTN3 135
134#define KC_BTN4 KC_MS_BTN4 136/* Modifiers */
135#define KC_BTN5 KC_MS_BTN5 137#define KC_LCTL KC_LCTRL
136#define KC_WH_U KC_MS_WH_UP 138#define KC_LSFT KC_LSHIFT
137#define KC_WH_D KC_MS_WH_DOWN 139#define KC_LCMD KC_LGUI
138#define KC_WH_L KC_MS_WH_LEFT 140#define KC_LWIN KC_LGUI
139#define KC_WH_R KC_MS_WH_RIGHT 141#define KC_RCTL KC_RCTRL
140#define KC_ACL0 KC_MS_ACCEL0 142#define KC_RSFT KC_RSHIFT
141#define KC_ACL1 KC_MS_ACCEL1 143#define KC_RCMD KC_RGUI
142#define KC_ACL2 KC_MS_ACCEL2 144#define KC_RWIN KC_RGUI
143/* Sytem Control */ 145
146/* Generic Desktop Page (0x01) */
144#define KC_PWR KC_SYSTEM_POWER 147#define KC_PWR KC_SYSTEM_POWER
145#define KC_SLEP KC_SYSTEM_SLEEP 148#define KC_SLEP KC_SYSTEM_SLEEP
146#define KC_WAKE KC_SYSTEM_WAKE 149#define KC_WAKE KC_SYSTEM_WAKE
147/* Consumer Page */ 150
151/* Consumer Page (0x0C) */
148#define KC_MUTE KC_AUDIO_MUTE 152#define KC_MUTE KC_AUDIO_MUTE
149#define KC_VOLU KC_AUDIO_VOL_UP 153#define KC_VOLU KC_AUDIO_VOL_UP
150#define KC_VOLD KC_AUDIO_VOL_DOWN 154#define KC_VOLD KC_AUDIO_VOL_DOWN
151#define KC_MNXT KC_MEDIA_NEXT_TRACK 155#define KC_MNXT KC_MEDIA_NEXT_TRACK
152#define KC_MPRV KC_MEDIA_PREV_TRACK 156#define KC_MPRV KC_MEDIA_PREV_TRACK
153#define KC_MFFD KC_MEDIA_FAST_FORWARD
154#define KC_MRWD KC_MEDIA_REWIND
155#define KC_MSTP KC_MEDIA_STOP 157#define KC_MSTP KC_MEDIA_STOP
156#define KC_MPLY KC_MEDIA_PLAY_PAUSE 158#define KC_MPLY KC_MEDIA_PLAY_PAUSE
157#define KC_MSEL KC_MEDIA_SELECT 159#define KC_MSEL KC_MEDIA_SELECT
@@ -166,339 +168,352 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
166#define KC_WSTP KC_WWW_STOP 168#define KC_WSTP KC_WWW_STOP
167#define KC_WREF KC_WWW_REFRESH 169#define KC_WREF KC_WWW_REFRESH
168#define KC_WFAV KC_WWW_FAVORITES 170#define KC_WFAV KC_WWW_FAVORITES
169/* Transparent */ 171#define KC_MFFD KC_MEDIA_FAST_FORWARD
170#define KC_TRANSPARENT 1 172#define KC_MRWD KC_MEDIA_REWIND
171#define KC_TRNS KC_TRANSPARENT
172/* GUI key aliases */
173#define KC_LCMD KC_LGUI
174#define KC_LWIN KC_LGUI
175#define KC_RCMD KC_RGUI
176#define KC_RWIN KC_RGUI
177
178 173
174/* Mouse Keys */
175#define KC_MS_U KC_MS_UP
176#define KC_MS_D KC_MS_DOWN
177#define KC_MS_L KC_MS_LEFT
178#define KC_MS_R KC_MS_RIGHT
179#define KC_BTN1 KC_MS_BTN1
180#define KC_BTN2 KC_MS_BTN2
181#define KC_BTN3 KC_MS_BTN3
182#define KC_BTN4 KC_MS_BTN4
183#define KC_BTN5 KC_MS_BTN5
184#define KC_WH_U KC_MS_WH_UP
185#define KC_WH_D KC_MS_WH_DOWN
186#define KC_WH_L KC_MS_WH_LEFT
187#define KC_WH_R KC_MS_WH_RIGHT
188#define KC_ACL0 KC_MS_ACCEL0
189#define KC_ACL1 KC_MS_ACCEL1
190#define KC_ACL2 KC_MS_ACCEL2
179 191
180/* USB HID Keyboard/Keypad Usage(0x07) */ 192/* Keyboard/Keypad Page (0x07) */
181enum hid_keyboard_keypad_usage { 193enum hid_keyboard_keypad_usage {
182 KC_NO = 0x00, 194 KC_NO = 0x00,
183 KC_ROLL_OVER, 195 KC_ROLL_OVER,
184 KC_POST_FAIL, 196 KC_POST_FAIL,
185 KC_UNDEFINED, 197 KC_UNDEFINED,
186 KC_A, 198 KC_A,
187 KC_B, 199 KC_B,
188 KC_C, 200 KC_C,
189 KC_D, 201 KC_D,
190 KC_E, 202 KC_E,
191 KC_F, 203 KC_F,
192 KC_G, 204 KC_G,
193 KC_H, 205 KC_H,
194 KC_I, 206 KC_I,
195 KC_J, 207 KC_J,
196 KC_K, 208 KC_K,
197 KC_L, 209 KC_L,
198 KC_M, /* 0x10 */ 210 KC_M, //0x10
199 KC_N, 211 KC_N,
200 KC_O, 212 KC_O,
201 KC_P, 213 KC_P,
202 KC_Q, 214 KC_Q,
203 KC_R, 215 KC_R,
204 KC_S, 216 KC_S,
205 KC_T, 217 KC_T,
206 KC_U, 218 KC_U,
207 KC_V, 219 KC_V,
208 KC_W, 220 KC_W,
209 KC_X, 221 KC_X,
210 KC_Y, 222 KC_Y,
211 KC_Z, 223 KC_Z,
212 KC_1, 224 KC_1,
213 KC_2, 225 KC_2,
214 KC_3, /* 0x20 */ 226 KC_3, //0x20
215 KC_4, 227 KC_4,
216 KC_5, 228 KC_5,
217 KC_6, 229 KC_6,
218 KC_7, 230 KC_7,
219 KC_8, 231 KC_8,
220 KC_9, 232 KC_9,
221 KC_0, 233 KC_0,
222 KC_ENTER, 234 KC_ENTER,
223 KC_ESCAPE, 235 KC_ESCAPE,
224 KC_BSPACE, 236 KC_BSPACE,
225 KC_TAB, 237 KC_TAB,
226 KC_SPACE, 238 KC_SPACE,
227 KC_MINUS, 239 KC_MINUS,
228 KC_EQUAL, 240 KC_EQUAL,
229 KC_LBRACKET, 241 KC_LBRACKET,
230 KC_RBRACKET, /* 0x30 */ 242 KC_RBRACKET, //0x30
231 KC_BSLASH, /* \ (and |) */ 243 KC_BSLASH,
232 KC_NONUS_HASH, /* Non-US # and ~ (Typically near the Enter key) */ 244 KC_NONUS_HASH,
233 KC_SCOLON, /* ; (and :) */ 245 KC_SCOLON,
234 KC_QUOTE, /* ' and " */ 246 KC_QUOTE,
235 KC_GRAVE, /* Grave accent and tilde */ 247 KC_GRAVE,
236 KC_COMMA, /* , and < */ 248 KC_COMMA,
237 KC_DOT, /* . and > */ 249 KC_DOT,
238 KC_SLASH, /* / and ? */ 250 KC_SLASH,
239 KC_CAPSLOCK, 251 KC_CAPSLOCK,
240 KC_F1, 252 KC_F1,
241 KC_F2, 253 KC_F2,
242 KC_F3, 254 KC_F3,
243 KC_F4, 255 KC_F4,
244 KC_F5, 256 KC_F5,
245 KC_F6, 257 KC_F6,
246 KC_F7, /* 0x40 */ 258 KC_F7, //0x40
247 KC_F8, 259 KC_F8,
248 KC_F9, 260 KC_F9,
249 KC_F10, 261 KC_F10,
250 KC_F11, 262 KC_F11,
251 KC_F12, 263 KC_F12,
252 KC_PSCREEN, 264 KC_PSCREEN,
253 KC_SCROLLLOCK, 265 KC_SCROLLLOCK,
254 KC_PAUSE, 266 KC_PAUSE,
255 KC_INSERT, 267 KC_INSERT,
256 KC_HOME, 268 KC_HOME,
257 KC_PGUP, 269 KC_PGUP,
258 KC_DELETE, 270 KC_DELETE,
259 KC_END, 271 KC_END,
260 KC_PGDOWN, 272 KC_PGDOWN,
261 KC_RIGHT, 273 KC_RIGHT,
262 KC_LEFT, /* 0x50 */ 274 KC_LEFT, //0x50
263 KC_DOWN, 275 KC_DOWN,
264 KC_UP, 276 KC_UP,
265 KC_NUMLOCK, 277 KC_NUMLOCK,
266 KC_KP_SLASH, 278 KC_KP_SLASH,
267 KC_KP_ASTERISK, 279 KC_KP_ASTERISK,
268 KC_KP_MINUS, 280 KC_KP_MINUS,
269 KC_KP_PLUS, 281 KC_KP_PLUS,
270 KC_KP_ENTER, 282 KC_KP_ENTER,
271 KC_KP_1, 283 KC_KP_1,
272 KC_KP_2, 284 KC_KP_2,
273 KC_KP_3, 285 KC_KP_3,
274 KC_KP_4, 286 KC_KP_4,
275 KC_KP_5, 287 KC_KP_5,
276 KC_KP_6, 288 KC_KP_6,
277 KC_KP_7, 289 KC_KP_7,
278 KC_KP_8, /* 0x60 */ 290 KC_KP_8, //0x60
279 KC_KP_9, 291 KC_KP_9,
280 KC_KP_0, 292 KC_KP_0,
281 KC_KP_DOT, 293 KC_KP_DOT,
282 KC_NONUS_BSLASH, /* Non-US \ and | (Typically near the Left-Shift key) */ 294 KC_NONUS_BSLASH,
283 KC_APPLICATION, 295 KC_APPLICATION,
284 KC_POWER, 296 KC_POWER,
285 KC_KP_EQUAL, 297 KC_KP_EQUAL,
286 KC_F13, 298 KC_F13,
287 KC_F14, 299 KC_F14,
288 KC_F15, 300 KC_F15,
289 KC_F16, 301 KC_F16,
290 KC_F17, 302 KC_F17,
291 KC_F18, 303 KC_F18,
292 KC_F19, 304 KC_F19,
293 KC_F20, 305 KC_F20,
294 KC_F21, /* 0x70 */ 306 KC_F21, //0x70
295 KC_F22, 307 KC_F22,
296 KC_F23, 308 KC_F23,
297 KC_F24, 309 KC_F24,
298 KC_EXECUTE, 310 KC_EXECUTE,
299 KC_HELP, 311 KC_HELP,
300 KC_MENU, 312 KC_MENU,
301 KC_SELECT, 313 KC_SELECT,
302 KC_STOP, 314 KC_STOP,
303 KC_AGAIN, 315 KC_AGAIN,
304 KC_UNDO, 316 KC_UNDO,
305 KC_CUT, 317 KC_CUT,
306 KC_COPY, 318 KC_COPY,
307 KC_PASTE, 319 KC_PASTE,
308 KC_FIND, 320 KC_FIND,
309 KC__MUTE, 321 KC__MUTE,
310 KC__VOLUP, /* 0x80 */ 322 KC__VOLUP, //0x80
311 KC__VOLDOWN, 323 KC__VOLDOWN,
312 KC_LOCKING_CAPS, /* locking Caps Lock */ 324 KC_LOCKING_CAPS,
313 KC_LOCKING_NUM, /* locking Num Lock */ 325 KC_LOCKING_NUM,
314 KC_LOCKING_SCROLL, /* locking Scroll Lock */ 326 KC_LOCKING_SCROLL,
315 KC_KP_COMMA, 327 KC_KP_COMMA,
316 KC_KP_EQUAL_AS400, /* equal sign on AS/400 */ 328 KC_KP_EQUAL_AS400,
317 KC_INT1, 329 KC_INT1,
318 KC_INT2, 330 KC_INT2,
319 KC_INT3, 331 KC_INT3,
320 KC_INT4, 332 KC_INT4,
321 KC_INT5, 333 KC_INT5,
322 KC_INT6, 334 KC_INT6,
323 KC_INT7, 335 KC_INT7,
324 KC_INT8, 336 KC_INT8,
325 KC_INT9, 337 KC_INT9,
326 KC_LANG1, /* 0x90 */ 338 KC_LANG1, //0x90
327 KC_LANG2, 339 KC_LANG2,
328 KC_LANG3, 340 KC_LANG3,
329 KC_LANG4, 341 KC_LANG4,
330 KC_LANG5, 342 KC_LANG5,
331 KC_LANG6, 343 KC_LANG6,
332 KC_LANG7, 344 KC_LANG7,
333 KC_LANG8, 345 KC_LANG8,
334 KC_LANG9, 346 KC_LANG9,
335 KC_ALT_ERASE, 347 KC_ALT_ERASE,
336 KC_SYSREQ, 348 KC_SYSREQ,
337 KC_CANCEL, 349 KC_CANCEL,
338 KC_CLEAR, 350 KC_CLEAR,
339 KC_PRIOR, 351 KC_PRIOR,
340 KC_RETURN, 352 KC_RETURN,
341 KC_SEPARATOR, 353 KC_SEPARATOR,
342 KC_OUT, /* 0xA0 */ 354 KC_OUT, //0xA0
343 KC_OPER, 355 KC_OPER,
344 KC_CLEAR_AGAIN, 356 KC_CLEAR_AGAIN,
345 KC_CRSEL, 357 KC_CRSEL,
346 KC_EXSEL, /* 0xA4 */ 358 KC_EXSEL,
347
348 /* NOTE: 0xA5-DF are used for internal special purpose */
349 359
350#if 0 360#if 0
351 /* NOTE: Following codes(0xB0-DD) are not used. Leave them for reference. */ 361 // ***************************************************************
352 KC_KP_00 = 0xB0, 362 // These keycodes are present in the HID spec, but are *
353 KC_KP_000, 363 // nonfunctional on modern OSes. QMK uses this range (0xA5-0xDF) *
354 KC_THOUSANDS_SEPARATOR, 364 // for the media and function keys instead - see below. *
355 KC_DECIMAL_SEPARATOR, 365 // ***************************************************************
356 KC_CURRENCY_UNIT, 366
357 KC_CURRENCY_SUB_UNIT, 367 KC_KP_00 = 0xB0,
358 KC_KP_LPAREN, 368 KC_KP_000,
359 KC_KP_RPAREN, 369 KC_THOUSANDS_SEPARATOR,
360 KC_KP_LCBRACKET, /* { */ 370 KC_DECIMAL_SEPARATOR,
361 KC_KP_RCBRACKET, /* } */ 371 KC_CURRENCY_UNIT,
362 KC_KP_TAB, 372 KC_CURRENCY_SUB_UNIT,
363 KC_KP_BSPACE, 373 KC_KP_LPAREN,
364 KC_KP_A, 374 KC_KP_RPAREN,
365 KC_KP_B, 375 KC_KP_LCBRACKET,
366 KC_KP_C, 376 KC_KP_RCBRACKET,
367 KC_KP_D, 377 KC_KP_TAB,
368 KC_KP_E, /* 0xC0 */ 378 KC_KP_BSPACE,
369 KC_KP_F, 379 KC_KP_A,
370 KC_KP_XOR, 380 KC_KP_B,
371 KC_KP_HAT, 381 KC_KP_C,
372 KC_KP_PERC, 382 KC_KP_D,
373 KC_KP_LT, 383 KC_KP_E, //0xC0
374 KC_KP_GT, 384 KC_KP_F,
375 KC_KP_AND, 385 KC_KP_XOR,
376 KC_KP_LAZYAND, 386 KC_KP_HAT,
377 KC_KP_OR, 387 KC_KP_PERC,
378 KC_KP_LAZYOR, 388 KC_KP_LT,
379 KC_KP_COLON, 389 KC_KP_GT,
380 KC_KP_HASH, 390 KC_KP_AND,
381 KC_KP_SPACE, 391 KC_KP_LAZYAND,
382 KC_KP_ATMARK, 392 KC_KP_OR,
383 KC_KP_EXCLAMATION, 393 KC_KP_LAZYOR,
384 KC_KP_MEM_STORE, /* 0xD0 */ 394 KC_KP_COLON,
385 KC_KP_MEM_RECALL, 395 KC_KP_HASH,
386 KC_KP_MEM_CLEAR, 396 KC_KP_SPACE,
387 KC_KP_MEM_ADD, 397 KC_KP_ATMARK,
388 KC_KP_MEM_SUB, 398 KC_KP_EXCLAMATION,
389 KC_KP_MEM_MUL, 399 KC_KP_MEM_STORE, //0xD0
390 KC_KP_MEM_DIV, 400 KC_KP_MEM_RECALL,
391 KC_KP_PLUS_MINUS, 401 KC_KP_MEM_CLEAR,
392 KC_KP_CLEAR, 402 KC_KP_MEM_ADD,
393 KC_KP_CLEAR_ENTRY, 403 KC_KP_MEM_SUB,
394 KC_KP_BINARY, 404 KC_KP_MEM_MUL,
395 KC_KP_OCTAL, 405 KC_KP_MEM_DIV,
396 KC_KP_DECIMAL, 406 KC_KP_PLUS_MINUS,
397 KC_KP_HEXADECIMAL, /* 0xDD */ 407 KC_KP_CLEAR,
408 KC_KP_CLEAR_ENTRY,
409 KC_KP_BINARY,
410 KC_KP_OCTAL,
411 KC_KP_DECIMAL,
412 KC_KP_HEXADECIMAL,
398#endif 413#endif
399 414
400 /* Modifiers */ 415 /* Modifiers */
401 KC_LCTRL = 0xE0, 416 KC_LCTRL = 0xE0,
402 KC_LSHIFT, 417 KC_LSHIFT,
403 KC_LALT, 418 KC_LALT,
404 KC_LGUI, 419 KC_LGUI,
405 KC_RCTRL, 420 KC_RCTRL,
406 KC_RSHIFT, 421 KC_RSHIFT,
407 KC_RALT, 422 KC_RALT,
408 KC_RGUI, 423 KC_RGUI
409 424
410 /* NOTE: 0xE8-FF are used for internal special purpose */ 425 // **********************************************
426 // * 0xF0-0xFF are unallocated in the HID spec. *
427 // * QMK uses these for Mouse Keys - see below. *
428 // **********************************************
411}; 429};
412 430
413/* Special keycodes */ 431/* Media and Function keys */
414/* NOTE: 0xA5-DF and 0xE8-FF are used for internal special purpose */
415enum internal_special_keycodes { 432enum internal_special_keycodes {
416 /* System Control */ 433 /* Generic Desktop Page (0x01) */
417 KC_SYSTEM_POWER = 0xA5, 434 KC_SYSTEM_POWER = 0xA5,
418 KC_SYSTEM_SLEEP, 435 KC_SYSTEM_SLEEP,
419 KC_SYSTEM_WAKE, 436 KC_SYSTEM_WAKE,
420 437
421 /* Media Control */ 438 /* Consumer Page (0x0C) */
422 KC_AUDIO_MUTE, 439 KC_AUDIO_MUTE,
423 KC_AUDIO_VOL_UP, 440 KC_AUDIO_VOL_UP,
424 KC_AUDIO_VOL_DOWN, 441 KC_AUDIO_VOL_DOWN,
425 KC_MEDIA_NEXT_TRACK, 442 KC_MEDIA_NEXT_TRACK,
426 KC_MEDIA_PREV_TRACK, 443 KC_MEDIA_PREV_TRACK,
427 KC_MEDIA_STOP, 444 KC_MEDIA_STOP,
428 KC_MEDIA_PLAY_PAUSE, 445 KC_MEDIA_PLAY_PAUSE,
429 KC_MEDIA_SELECT, 446 KC_MEDIA_SELECT,
430 KC_MEDIA_EJECT, 447 KC_MEDIA_EJECT, //0xB0
431 KC_MAIL, 448 KC_MAIL,
432 KC_CALCULATOR, 449 KC_CALCULATOR,
433 KC_MY_COMPUTER, 450 KC_MY_COMPUTER,
434 KC_WWW_SEARCH, 451 KC_WWW_SEARCH,
435 KC_WWW_HOME, 452 KC_WWW_HOME,
436 KC_WWW_BACK, 453 KC_WWW_BACK,
437 KC_WWW_FORWARD, 454 KC_WWW_FORWARD,
438 KC_WWW_STOP, 455 KC_WWW_STOP,
439 KC_WWW_REFRESH, 456 KC_WWW_REFRESH,
440 KC_WWW_FAVORITES, 457 KC_WWW_FAVORITES,
441 KC_MEDIA_FAST_FORWARD, 458 KC_MEDIA_FAST_FORWARD,
442 KC_MEDIA_REWIND, /* 0xBC */ 459 KC_MEDIA_REWIND,
443 460
444 /* Fn key */ 461 /* Fn keys */
445 KC_FN0 = 0xC0, 462 KC_FN0 = 0xC0,
446 KC_FN1, 463 KC_FN1,
447 KC_FN2, 464 KC_FN2,
448 KC_FN3, 465 KC_FN3,
449 KC_FN4, 466 KC_FN4,
450 KC_FN5, 467 KC_FN5,
451 KC_FN6, 468 KC_FN6,
452 KC_FN7, 469 KC_FN7,
453 KC_FN8, 470 KC_FN8,
454 KC_FN9, 471 KC_FN9,
455 KC_FN10, 472 KC_FN10,
456 KC_FN11, 473 KC_FN11,
457 KC_FN12, 474 KC_FN12,
458 KC_FN13, 475 KC_FN13,
459 KC_FN14, 476 KC_FN14,
460 KC_FN15, 477 KC_FN15,
461 478 KC_FN16, //0xD0
462 KC_FN16 = 0xD0, 479 KC_FN17,
463 KC_FN17, 480 KC_FN18,
464 KC_FN18, 481 KC_FN19,
465 KC_FN19, 482 KC_FN20,
466 KC_FN20, 483 KC_FN21,
467 KC_FN21, 484 KC_FN22,
468 KC_FN22, 485 KC_FN23,
469 KC_FN23, 486 KC_FN24,
470 KC_FN24, 487 KC_FN25,
471 KC_FN25, 488 KC_FN26,
472 KC_FN26, 489 KC_FN27,
473 KC_FN27, 490 KC_FN28,
474 KC_FN28, 491 KC_FN29,
475 KC_FN29, 492 KC_FN30,
476 KC_FN30, 493 KC_FN31
477 KC_FN31, /* 0xDF */
478
479 /**************************************/
480 /* 0xE0-E7 for Modifiers. DO NOT USE. */
481 /**************************************/
482
483 /* Mousekey */
484 KC_MS_UP = 0xF0,
485 KC_MS_DOWN,
486 KC_MS_LEFT,
487 KC_MS_RIGHT,
488 KC_MS_BTN1,
489 KC_MS_BTN2,
490 KC_MS_BTN3,
491 KC_MS_BTN4,
492 KC_MS_BTN5, /* 0xF8 */
493 /* Mousekey wheel */
494 KC_MS_WH_UP,
495 KC_MS_WH_DOWN,
496 KC_MS_WH_LEFT,
497 KC_MS_WH_RIGHT, /* 0xFC */
498 /* Mousekey accel */
499 KC_MS_ACCEL0,
500 KC_MS_ACCEL1,
501 KC_MS_ACCEL2 /* 0xFF */
502}; 494};
503 495
504#endif /* KEYCODE_H */ 496enum mouse_keys {
497 /* Mouse Buttons */
498 KC_MS_UP = 0xF0,
499 KC_MS_DOWN,
500 KC_MS_LEFT,
501 KC_MS_RIGHT,
502 KC_MS_BTN1,
503 KC_MS_BTN2,
504 KC_MS_BTN3,
505 KC_MS_BTN4,
506 KC_MS_BTN5,
507
508 /* Mouse Wheel */
509 KC_MS_WH_UP,
510 KC_MS_WH_DOWN,
511 KC_MS_WH_LEFT,
512 KC_MS_WH_RIGHT,
513
514 /* Acceleration */
515 KC_MS_ACCEL0,
516 KC_MS_ACCEL1,
517 KC_MS_ACCEL2
518};
519#endif