aboutsummaryrefslogtreecommitdiff
path: root/quantum/quantum_keycodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/quantum_keycodes.h')
-rw-r--r--quantum/quantum_keycodes.h43
1 files changed, 35 insertions, 8 deletions
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 4853655f9..ab2e79026 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -39,14 +39,14 @@ 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_MOD_TAP = 0x6000, 42 QK_TAP_DANCE = 0x5700,
43 QK_MOD_TAP_MAX = 0x6FFF, 43 QK_TAP_DANCE_MAX = 0x57FF,
44 QK_TAP_DANCE = 0x7100,
45 QK_TAP_DANCE_MAX = 0x71FF,
46#ifdef UNICODEMAP_ENABLE 44#ifdef UNICODEMAP_ENABLE
47 QK_UNICODE_MAP = 0x7800, 45 QK_UNICODE_MAP = 0x5800,
48 QK_UNICODE_MAP_MAX = 0x7FFF, 46 QK_UNICODE_MAP_MAX = 0x5BFF,
49#endif 47#endif
48 QK_MOD_TAP = 0x6000,
49 QK_MOD_TAP_MAX = 0x7FFF,
50#ifdef UNICODE_ENABLE 50#ifdef UNICODE_ENABLE
51 QK_UNICODE = 0x8000, 51 QK_UNICODE = 0x8000,
52 QK_UNICODE_MAX = 0xFFFF, 52 QK_UNICODE_MAX = 0xFFFF,
@@ -54,7 +54,7 @@ enum quantum_keycodes {
54 54
55 // Loose keycodes - to be used directly 55 // Loose keycodes - to be used directly
56 56
57 RESET = 0x7000, 57 RESET = 0x5C00,
58 DEBUG, 58 DEBUG,
59 MAGIC_SWAP_CONTROL_CAPSLOCK, 59 MAGIC_SWAP_CONTROL_CAPSLOCK,
60 MAGIC_CAPSLOCK_TO_CONTROL, 60 MAGIC_CAPSLOCK_TO_CONTROL,
@@ -141,6 +141,16 @@ enum quantum_keycodes {
141 PRINT_ON, 141 PRINT_ON,
142 PRINT_OFF, 142 PRINT_OFF,
143 143
144 // output selection
145 OUT_AUTO,
146 OUT_USB,
147#ifdef BLUETOOTH_ENABLE
148 OUT_BT,
149#endif
150#ifdef ADAFRUIT_BLE_ENABLE
151 OUT_BLE,
152#endif
153
144 // always leave at the end 154 // always leave at the end
145 SAFE_RANGE 155 SAFE_RANGE
146}; 156};
@@ -246,8 +256,10 @@ enum quantum_keycodes {
246 256
247#define M(kc) (kc | QK_MACRO) 257#define M(kc) (kc | QK_MACRO)
248 258
259#define MACROTAP(kc) (kc | QK_MACRO | FUNC_TAP<<8)
249#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) 260#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)
250 261
262
251// L-ayer, T-ap - 256 keycode max, 16 layer max 263// L-ayer, T-ap - 256 keycode max, 16 layer max
252#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8)) 264#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8))
253 265
@@ -286,14 +298,29 @@ enum quantum_keycodes {
286#define OSM(mod) (mod | QK_ONE_SHOT_MOD) 298#define OSM(mod) (mod | QK_ONE_SHOT_MOD)
287 299
288// M-od, T-ap - 256 keycode max 300// M-od, T-ap - 256 keycode max
289#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0xF) << 8)) 301#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0x1F) << 8))
302
290#define CTL_T(kc) MT(MOD_LCTL, kc) 303#define CTL_T(kc) MT(MOD_LCTL, kc)
304#define LCTL_T(kc) MT(MOD_LCTL, kc)
305#define RCTL_T(kc) MT(MOD_RCTL, kc)
306
291#define SFT_T(kc) MT(MOD_LSFT, kc) 307#define SFT_T(kc) MT(MOD_LSFT, kc)
308#define LSFT_T(kc) MT(MOD_LSFT, kc)
309#define RSFT_T(kc) MT(MOD_RSFT, kc)
310
292#define ALT_T(kc) MT(MOD_LALT, kc) 311#define ALT_T(kc) MT(MOD_LALT, kc)
312#define LALT_T(kc) MT(MOD_LALT, kc)
313#define RALT_T(kc) MT(MOD_RALT, kc)
314#define ALGR_T(kc) MT(MOD_RALT, kc) // dual-function AltGR
315
293#define GUI_T(kc) MT(MOD_LGUI, kc) 316#define GUI_T(kc) MT(MOD_LGUI, kc)
317#define LGUI_T(kc) MT(MOD_LGUI, kc)
318#define RGUI_T(kc) MT(MOD_RGUI, kc)
319
294#define C_S_T(kc) MT((MOD_LCTL | MOD_LSFT), kc) // Control + Shift e.g. for gnome-terminal 320#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 321#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 322#define LCAG_T(kc) MT((MOD_LCTL | MOD_LALT | MOD_LGUI), kc) // Left control alt and gui
323#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/ 324#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) 325#define SCMD_T(kc) MT((MOD_LGUI | MOD_LSFT), kc)
299#define SWIN_T(kc) SCMD_T(kc) 326#define SWIN_T(kc) SCMD_T(kc)