aboutsummaryrefslogtreecommitdiff
path: root/quantum/quantum_keycodes.h
diff options
context:
space:
mode:
authordbroqua <dbroqua@mousur.org>2017-04-02 23:27:57 +0200
committerdbroqua <dbroqua@mousur.org>2017-04-02 23:27:57 +0200
commite7347ff0de93ff823462b3ff2b4136b44dc576c0 (patch)
tree286e2a78fee74eb370641a981d2c81c8e02942b4 /quantum/quantum_keycodes.h
parent9e72b7e7e97f9ae92c7eb1de66aa03cad047baf6 (diff)
parent24ec8f509703cbaf9de7b41d251dbb7fcd339559 (diff)
downloadqmk_firmware-e7347ff0de93ff823462b3ff2b4136b44dc576c0.tar.gz
qmk_firmware-e7347ff0de93ff823462b3ff2b4136b44dc576c0.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'quantum/quantum_keycodes.h')
-rw-r--r--quantum/quantum_keycodes.h58
1 files changed, 50 insertions, 8 deletions
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 4853655f9..63b626926 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -39,22 +39,27 @@ enum quantum_keycodes {
39 QK_CHORDING = 0x5600, 39 QK_CHORDING = 0x5600,
40 QK_CHORDING_MAX = 0x56FF, 40 QK_CHORDING_MAX = 0x56FF,
41#endif 41#endif
42 QK_TAP_DANCE = 0x5700,
43 QK_TAP_DANCE_MAX = 0x57FF,
44 QK_LAYER_TAP_TOGGLE = 0x5800,
45 QK_LAYER_TAP_TOGGLE_MAX = 0x58FF,
42 QK_MOD_TAP = 0x6000, 46 QK_MOD_TAP = 0x6000,
43 QK_MOD_TAP_MAX = 0x6FFF, 47 QK_MOD_TAP_MAX = 0x7FFF,
44 QK_TAP_DANCE = 0x7100, 48#if defined(UNICODEMAP_ENABLE) && defined(UNICODE_ENABLE)
45 QK_TAP_DANCE_MAX = 0x71FF, 49 #error "Cannot enable both UNICODEMAP && UNICODE"
46#ifdef UNICODEMAP_ENABLE
47 QK_UNICODE_MAP = 0x7800,
48 QK_UNICODE_MAP_MAX = 0x7FFF,
49#endif 50#endif
50#ifdef UNICODE_ENABLE 51#ifdef UNICODE_ENABLE
51 QK_UNICODE = 0x8000, 52 QK_UNICODE = 0x8000,
52 QK_UNICODE_MAX = 0xFFFF, 53 QK_UNICODE_MAX = 0xFFFF,
53#endif 54#endif
55#ifdef UNICODEMAP_ENABLE
56 QK_UNICODE_MAP = 0x8000,
57 QK_UNICODE_MAP_MAX = 0x83FF,
58#endif
54 59
55 // Loose keycodes - to be used directly 60 // Loose keycodes - to be used directly
56 61
57 RESET = 0x7000, 62 RESET = 0x5C00,
58 DEBUG, 63 DEBUG,
59 MAGIC_SWAP_CONTROL_CAPSLOCK, 64 MAGIC_SWAP_CONTROL_CAPSLOCK,
60 MAGIC_CAPSLOCK_TO_CONTROL, 65 MAGIC_CAPSLOCK_TO_CONTROL,
@@ -86,6 +91,13 @@ enum quantum_keycodes {
86 AU_OFF, 91 AU_OFF,
87 AU_TOG, 92 AU_TOG,
88 93
94#ifdef FAUXCLICKY_ENABLE
95 // Faux clicky
96 FC_ON,
97 FC_OFF,
98 FC_TOG,
99#endif
100
89 // Music mode on/off/toggle 101 // Music mode on/off/toggle
90 MU_ON, 102 MU_ON,
91 MU_OFF, 103 MU_OFF,
@@ -141,6 +153,16 @@ enum quantum_keycodes {
141 PRINT_ON, 153 PRINT_ON,
142 PRINT_OFF, 154 PRINT_OFF,
143 155
156 // output selection
157 OUT_AUTO,
158 OUT_USB,
159#ifdef BLUETOOTH_ENABLE
160 OUT_BT,
161#endif
162#ifdef ADAFRUIT_BLE_ENABLE
163 OUT_BLE,
164#endif
165
144 // always leave at the end 166 // always leave at the end
145 SAFE_RANGE 167 SAFE_RANGE
146}; 168};
@@ -246,8 +268,10 @@ enum quantum_keycodes {
246 268
247#define M(kc) (kc | QK_MACRO) 269#define M(kc) (kc | QK_MACRO)
248 270
271#define MACROTAP(kc) (kc | QK_MACRO | FUNC_TAP<<8)
249#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) 272#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)
250 273
274
251// L-ayer, T-ap - 256 keycode max, 16 layer max 275// L-ayer, T-ap - 256 keycode max, 16 layer max
252#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8)) 276#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8))
253 277
@@ -285,15 +309,33 @@ enum quantum_keycodes {
285// One-shot mod 309// One-shot mod
286#define OSM(mod) (mod | QK_ONE_SHOT_MOD) 310#define OSM(mod) (mod | QK_ONE_SHOT_MOD)
287 311
312// Layer tap-toggle
313#define TT(layer) (layer | QK_LAYER_TAP_TOGGLE)
314
288// M-od, T-ap - 256 keycode max 315// M-od, T-ap - 256 keycode max
289#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0xF) << 8)) 316#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0x1F) << 8))
317
290#define CTL_T(kc) MT(MOD_LCTL, kc) 318#define CTL_T(kc) MT(MOD_LCTL, kc)
319#define LCTL_T(kc) MT(MOD_LCTL, kc)
320#define RCTL_T(kc) MT(MOD_RCTL, kc)
321
291#define SFT_T(kc) MT(MOD_LSFT, kc) 322#define SFT_T(kc) MT(MOD_LSFT, kc)
323#define LSFT_T(kc) MT(MOD_LSFT, kc)
324#define RSFT_T(kc) MT(MOD_RSFT, kc)
325
292#define ALT_T(kc) MT(MOD_LALT, kc) 326#define ALT_T(kc) MT(MOD_LALT, kc)
327#define LALT_T(kc) MT(MOD_LALT, kc)
328#define RALT_T(kc) MT(MOD_RALT, kc)
329#define ALGR_T(kc) MT(MOD_RALT, kc) // dual-function AltGR
330
293#define GUI_T(kc) MT(MOD_LGUI, kc) 331#define GUI_T(kc) MT(MOD_LGUI, kc)
332#define LGUI_T(kc) MT(MOD_LGUI, kc)
333#define RGUI_T(kc) MT(MOD_RGUI, kc)
334
294#define C_S_T(kc) MT((MOD_LCTL | MOD_LSFT), kc) // Control + Shift e.g. for gnome-terminal 335#define C_S_T(kc) MT((MOD_LCTL | MOD_LSFT), kc) // Control + Shift e.g. for gnome-terminal
295#define MEH_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT), kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl 336#define MEH_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT), kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
296#define LCAG_T(kc) MT((MOD_LCTL | MOD_LALT | MOD_LGUI), kc) // Left control alt and gui 337#define LCAG_T(kc) MT((MOD_LCTL | MOD_LALT | MOD_LGUI), kc) // Left control alt and gui
338#define RCAG_T(kc) MT((MOD_RCTL | MOD_RALT | MOD_RGUI), kc) // Right control alt and gui
297#define ALL_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI), kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ 339#define ALL_T(kc) MT((MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI), kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
298#define SCMD_T(kc) MT((MOD_LGUI | MOD_LSFT), kc) 340#define SCMD_T(kc) MT((MOD_LGUI | MOD_LSFT), kc)
299#define SWIN_T(kc) SCMD_T(kc) 341#define SWIN_T(kc) SCMD_T(kc)