]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/drashna/process_records.h
Rework drashna userspace to be more modular (#4544)
[qmk_firmware.git] / users / drashna / process_records.h
1 #pragma once
2 #include "drashna.h"
3
4 #if defined(KEYMAP_SAFE_RANGE)
5   #define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
6 #else
7   #define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
8 #endif
9
10 enum userspace_custom_keycodes {
11   VRSN = PLACEHOLDER_SAFE_RANGE,              // Prints QMK Firmware and board info
12   KC_QWERTY,         // Sets default layer to QWERTY
13   KC_COLEMAK,        // Sets default layer to COLEMAK
14   KC_DVORAK,         // Sets default layer to DVORAK
15   KC_WORKMAN,        // Sets default layer to WORKMAN
16   KC_DIABLO_CLEAR,   // Clears all Diablo Timers
17   KC_OVERWATCH,      // Toggles game macro input mode (so in OW, it defaults to game chat)
18   KC_SALT,           // See drashna.c for details
19   KC_MORESALT,
20   KC_SALTHARD,
21   KC_GOODGAME,
22   KC_SYMM,
23   KC_JUSTGAME,
24   KC_GLHF,
25   KC_TORB,
26   KC_AIM,
27   KC_C9,
28   KC_GGEZ,
29   KC_MAKE,           // Run keyboard's customized make command
30   KC_RGB_T,          // Toggles RGB Layer Indication mode
31   KC_SECRET_1,       // test1
32   KC_SECRET_2,       // test2
33   KC_SECRET_3,       // test3
34   KC_SECRET_4,       // test4
35   KC_SECRET_5,       // test5
36   KC_CCCV,           // Hold to copy, tap to paste
37   KC_NUKE,           // NUCLEAR LAUNCH DETECTED!!!
38   UC_FLIP,           // (ಠ痊ಠ)┻━┻
39   UC_TABL,           // ┬─┬ノ( º _ ºノ)
40   UC_SHRG,           // ¯\_(ツ)_/¯
41   UC_DISA,           // ಠ_ಠ
42   NEW_SAFE_RANGE     //use "NEWPLACEHOLDER for keymap specific codes
43 };
44
45 bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
46 bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
47
48
49
50 #define LOWER MO(_LOWER)
51 #define RAISE MO(_RAISE)
52 #define ADJUST MO(_ADJUST)
53 #define TG_MODS TG(_MODS)
54 #define TG_GAME TG(_GAMEPAD)
55
56 #define KC_SEC1 KC_SECRET_1
57 #define KC_SEC2 KC_SECRET_2
58 #define KC_SEC3 KC_SECRET_3
59 #define KC_SEC4 KC_SECRET_4
60 #define KC_SEC5 KC_SECRET_5
61
62 #define QWERTY KC_QWERTY
63 #define DVORAK KC_DVORAK
64 #define COLEMAK KC_COLEMAK
65 #define WORKMAN KC_WORKMAN
66
67 #define KC_RESET RESET
68 #define KC_RST KC_RESET
69
70 #ifdef SWAP_HANDS_ENABLE
71 #define KC_C1R3 SH_TT
72 #else // SWAP_HANDS_ENABLE
73 #define KC_C1R3 KC_BSPC
74 #endif // SWAP_HANDS_ENABLE
75
76 #define BK_LWER LT(_LOWER, KC_BSPC)
77 #define SP_LWER LT(_LOWER, KC_SPC)
78 #define DL_RAIS LT(_RAISE, KC_DEL)
79 #define ET_RAIS LT(_RAISE, KC_ENTER)
80
81 /* OSM keycodes, to keep things clean and easy to change */
82 #define KC_MLSF OSM(MOD_LSFT)
83 #define KC_MRSF OSM(MOD_RSFT)
84
85 #define OS_LGUI OSM(MOD_LGUI)
86 #define OS_RGUI OSM(MOD_RGUI)
87 #define OS_LSFT OSM(MOD_LSFT)
88 #define OS_RSFT OSM(MOD_RSFT)
89 #define OS_LCTL OSM(MOD_LCTL)
90 #define OS_RCTL OSM(MOD_RCTL)
91 #define OS_LALT OSM(MOD_LALT)
92 #define OS_RALT OSM(MOD_RALT)
93 #define OS_MEH  OSM(MOD_MEH)
94 #define OS_HYPR OSM(MOD_HYPR)
95
96 #define ALT_APP ALT_T(KC_APP)
97
98 #define MG_NKRO MAGIC_TOGGLE_NKRO
99
100 #define UC_IRNY UC(0x2E2E)
101 #define UC_CLUE UC(0x203D)