aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/README.md25
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/keymap.c24
-rw-r--r--keyboards/handwired/woodpad/keymaps/drashna/README.md25
-rw-r--r--keyboards/orthodox/keymaps/drashna/README.md26
-rw-r--r--keyboards/viterbi/keymaps/drashna/keymap.c4
-rw-r--r--users/drashna/drashna.c17
-rw-r--r--users/drashna/drashna.h11
-rw-r--r--users/drashna/readme.md106
-rw-r--r--users/drashna/sensitive.h8
9 files changed, 204 insertions, 42 deletions
diff --git a/keyboards/ergodox_ez/keymaps/drashna/README.md b/keyboards/ergodox_ez/keymaps/drashna/README.md
new file mode 100644
index 000000000..e77defc91
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/drashna/README.md
@@ -0,0 +1,25 @@
1Overview
2========
3
4This is my personal Ergodox EZ configuration, and my daily driver.
5
6Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
7
8How to build
9------------
10make ergodox_ez:drashna:teensy
11
12Layers
13------
14* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
15* SYMB: F keys across the top, symbols on the left and numpad on the right.
16* GAMEPAD: This is the QWERTY layout shifted to the right for FPS type games. Destiny and Overwatch are the primary games for this.
17* DIABLO: This contains a Diablo 3 layout, that requires much less reaching or shifting. If Tap Dance is enabled, then it has a "spam" feature. See Userspace for details.
18* MOUSE: mouse navigation
19
20All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
21
22Ergodox Specific Code
23---------------------
24
25Aside from my userspace code, this includes LED indications for Shift (Green LED), Ctrl (Red LED), and Alt (Blue LED).
diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
index abfbb5e33..8743ae282 100644
--- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), 71 KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
72 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(_DIABLO), 72 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(_DIABLO),
73 KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G, 73 KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G,
74 KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(_OVERWATCH), 74 KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(_GAMEPAD),
75 LT(_SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET, 75 LT(_SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
76 76
77 ALT_T(KC_APPLICATION), KC_LGUI, 77 ALT_T(KC_APPLICATION), KC_LGUI,
@@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
81 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, 81 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
82 TG(_DIABLO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, 82 TG(_DIABLO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
83 KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE), 83 KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
84 TG(_OVERWATCH), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT, 84 TG(_GAMEPAD), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT,
85 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB), 85 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
86 KC_RGUI, CTL_T(KC_ESCAPE), 86 KC_RGUI, CTL_T(KC_ESCAPE),
87 KC_PGUP, 87 KC_PGUP,
@@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
115 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), 115 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
116 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(_DIABLO), 116 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(_DIABLO),
117 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, 117 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
118 KC_LSFT, LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(_OVERWATCH), 118 KC_LSFT, LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(_GAMEPAD),
119 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET, 119 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
120 ALT_T(KC_APP), KC_LGUI, 120 ALT_T(KC_APP), KC_LGUI,
121 KC_HOME, 121 KC_HOME,
@@ -124,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 124 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
125 TG(_DIABLO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, 125 TG(_DIABLO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
126 KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE), 126 KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE),
127 TG(_OVERWATCH),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT, 127 TG(_GAMEPAD),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
128 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB), 128 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
129 KC_RGUI, CTL_T(KC_ESC), 129 KC_RGUI, CTL_T(KC_ESC),
130 KC_PGUP, 130 KC_PGUP,
@@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
158 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), 158 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
159 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(_DIABLO), 159 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(_DIABLO),
160 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, 160 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
161 KC_LSFT, LCTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(_OVERWATCH), 161 KC_LSFT, LCTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(_GAMEPAD),
162 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET, KC_RBRACKET, 162 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET, KC_RBRACKET,
163 ALT_T(KC_APP), KC_LEAD, 163 ALT_T(KC_APP), KC_LEAD,
164 KC_HOME, 164 KC_HOME,
@@ -167,7 +167,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
167 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, 167 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
168 TG(_DIABLO), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, 168 TG(_DIABLO), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
169 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 169 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
170 TG(_OVERWATCH),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT, 170 TG(_GAMEPAD),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT,
171 KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(_SYMB), 171 KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(_SYMB),
172 KC_LALT, CTL_T(KC_ESC), 172 KC_LALT, CTL_T(KC_ESC),
173 KC_PGUP, 173 KC_PGUP,
@@ -201,7 +201,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
201 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), 201 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
202 KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(_DIABLO), 202 KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(_DIABLO),
203 KC_BSPC, KC_A, KC_S, KC_H, KC_T, KC_G, 203 KC_BSPC, KC_A, KC_S, KC_H, KC_T, KC_G,
204 KC_LSFT, LCTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V, TG(_OVERWATCH), 204 KC_LSFT, LCTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V, TG(_GAMEPAD),
205 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET, 205 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
206 ALT_T(KC_APP), KC_LEAD, 206 ALT_T(KC_APP), KC_LEAD,
207 KC_HOME, 207 KC_HOME,
@@ -210,7 +210,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
210 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 210 TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
211 TG(_DIABLO), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, 211 TG(_DIABLO), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
212 KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE, 212 KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
213 TG(_OVERWATCH),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT, 213 TG(_GAMEPAD),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
214 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB), 214 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
215 KC_LALT, CTL_T(KC_ESC), 215 KC_LALT, CTL_T(KC_ESC),
216 KC_PGUP, 216 KC_PGUP,
@@ -279,7 +279,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
279 * | | | H | | | | | 279 * | | | H | | | | |
280 * `--------------------' `--------------------' 280 * `--------------------' `--------------------'
281 */ 281 */
282 [_OVERWATCH] = LAYOUT_ergodox( 282 [_GAMEPAD] = LAYOUT_ergodox(
283 KC_ESCAPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 283 KC_ESCAPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
284 KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, 284 KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T,
285 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, 285 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F,
@@ -291,9 +291,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
291 291
292 KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, 292 KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
293 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 293 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
294 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 294 KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
295 TG(_OVERWATCH), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, 295 TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
296 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 296 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO,
297 KC_NO, KC_NO, 297 KC_NO, KC_NO,
298 KC_NO, 298 KC_NO,
299 KC_PGDOWN, KC_DELETE, KC_ENTER 299 KC_PGDOWN, KC_DELETE, KC_ENTER
diff --git a/keyboards/handwired/woodpad/keymaps/drashna/README.md b/keyboards/handwired/woodpad/keymaps/drashna/README.md
new file mode 100644
index 000000000..f24d2c48f
--- /dev/null
+++ b/keyboards/handwired/woodpad/keymaps/drashna/README.md
@@ -0,0 +1,25 @@
1Overview
2========
3
4This is my personal Numpad (Woodpad) configuration, and my daily driver.
5
6Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
7
8How to build
9------------
10make handwired/woodpad:drashna:avrdude
11
12Layers
13------
14* NUMLOCK: Num pad, locked to NUM LOCK enabled.
15* NAV: Navigation codes without needing to enable numlock.
16* DIABLO: This contains a Diablo 3 layout, that requires much less reaching or shifting. If Tap Dance is enabled, then it has a "spam" feature. See Userspace for details.
17* MACROS: This layer contains a bunch of macros for spamming chat, with a toggle on what key to open up chat with.
18* MEDIA: Media and RGB commands
19
20All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
21
22Woodpad Specific Code
23---------------------
24
25Aside from my userspace code, this includes LED indications for numlock and macro mode. It also forces NUMLOCK to be enabled.
diff --git a/keyboards/orthodox/keymaps/drashna/README.md b/keyboards/orthodox/keymaps/drashna/README.md
new file mode 100644
index 000000000..c61161774
--- /dev/null
+++ b/keyboards/orthodox/keymaps/drashna/README.md
@@ -0,0 +1,26 @@
1Overview
2========
3
4This is my personal Orthodox configuration, and my daily driver.
5
6Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
7
8How to build
9------------
10make orthodox/rev1:drashna:teensy
11
12Layers
13------
14* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
15* RAISE: Contains function keys and unshifted symbols
16* LOWER: Contains function keys and shifted symbols
17* ADJUST: contains special codes (layout defaults, RGB codes, Audio codes, and volume control)
18
19All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
20
21Orthodox Specific Code
22----------------------
23
24Left side is designed to have RGB underglow and Faux Clicking enabled, while the right has Audio enabled.
25
26The make commend ensures that the correct settings are retained.
diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c
index 3002af038..4b41d4977 100644
--- a/keyboards/viterbi/keymaps/drashna/keymap.c
+++ b/keyboards/viterbi/keymaps/drashna/keymap.c
@@ -17,7 +17,7 @@ extern keymap_config_t keymap_config;
17 17
18#define LMACRO TG(_MACROS) 18#define LMACRO TG(_MACROS)
19#define DIABLO TG(_DIABLO) 19#define DIABLO TG(_DIABLO)
20#define GAMEPAD TG(_OVERWATCH) 20#define GAMEPAD TG(_GAMEPAD)
21#define MEDIA TG(_MEDIA) 21#define MEDIA TG(_MEDIA)
22#define COVECUBE TG(_COVECUBE) 22#define COVECUBE TG(_COVECUBE)
23 23
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 43 KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
44 ), 44 ),
45 45
46 [_OVERWATCH] = KEYMAP( // Game pad layout designed primarily for Overwatch 46 [_GAMEPAD] = KEYMAP( // Game pad layout designed primarily for Overwatch
47 LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 47 LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
48 MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 48 MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
49 KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 49 KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index b7ca84faf..95fb793a7 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -19,7 +19,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19#include "quantum.h" 19#include "quantum.h"
20#include "action.h" 20#include "action.h"
21#include "version.h" 21#include "version.h"
22#include "sensitive.h" 22
23#if (__has_include("secrets.h"))
24#include "secrets.h"
25#else
26PROGMEM const char secret[][64] = {
27 "test1",
28 "test2",
29 "test3",
30 "test4",
31 "test5"
32};
33#endif
23 34
24#ifdef TAP_DANCE_ENABLE 35#ifdef TAP_DANCE_ENABLE
25//define diablo macro timer variables 36//define diablo macro timer variables
@@ -486,7 +497,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
486 break; 497 break;
487 case KC_SECRET_1 ... KC_SECRET_5: 498 case KC_SECRET_1 ... KC_SECRET_5:
488 if (!record->event.pressed) { 499 if (!record->event.pressed) {
489 send_string(secret[keycode - KC_SECRET_1]); 500 send_string_P(secret[keycode - KC_SECRET_1]);
490 } 501 }
491 return false; 502 return false;
492 break; 503 break;
@@ -538,7 +549,7 @@ uint32_t layer_state_set_user(uint32_t state) {
538 rgblight_set_green; 549 rgblight_set_green;
539 rgblight_mode(22); 550 rgblight_mode(22);
540 break; 551 break;
541 case _OVERWATCH: 552 case _GAMEPAD:
542 rgblight_set_orange; 553 rgblight_set_orange;
543 rgblight_mode(17); 554 rgblight_mode(17);
544 break; 555 break;
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index 4fd42acb9..0b9347f1d 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19#define USERSPACE 19#define USERSPACE
20 20
21#include "quantum.h" 21#include "quantum.h"
22#include "song_list.h"
23 22
24// Define layer names 23// Define layer names
25#define _QWERTY 0 24#define _QWERTY 0
@@ -30,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
30#define _NAV 5 29#define _NAV 5
31#define _COVECUBE 6 30#define _COVECUBE 6
32#define _SYMB 8 31#define _SYMB 8
33#define _OVERWATCH 9 32#define _GAMEPAD 9
34#define _DIABLO 10 33#define _DIABLO 10
35#define _MOUS 11 34#define _MOUS 11
36#define _MACROS 12 35#define _MACROS 12
@@ -55,14 +54,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
55#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); 54#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
56#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF); 55#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
57#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); 56#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
57#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF);
58#endif 58#endif
59 59
60extern bool is_overwatch; 60extern bool is_overwatch;
61extern bool rgb_layer_change; 61extern bool rgb_layer_change;
62 62
63enum userrpace_custom_keycodes { 63enum userspace_custom_keycodes {
64 PLACEHOLDER = SAFE_RANGE, // can always be here 64 EPRM = SAFE_RANGE, // can always be here
65 EPRM,
66 VRSN, 65 VRSN,
67 KC_QWERTY, 66 KC_QWERTY,
68 KC_COLEMAK, 67 KC_COLEMAK,
@@ -105,7 +104,7 @@ enum {
105#endif 104#endif
106 105
107 106
108#define QMK_KEYS_PER_SCAN 4 107#define QMK_KEYS_PER_SCAN 8
109 108
110#ifdef RGBLIGHT_ENABLE 109#ifdef RGBLIGHT_ENABLE
111#define RGBLIGHT_SLEEP 110#define RGBLIGHT_SLEEP
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
index 0d553f08e..0523be2a6 100644
--- a/users/drashna/readme.md
+++ b/users/drashna/readme.md
@@ -1,14 +1,98 @@
1Copyright 2017 Christopher Courtney <drashna@live.com> @drashna 1Overview
2========
2 3
3This program is free software: you can redistribute it and/or modify 4This is my personal userspace file. Most of my code exists here, as it's heavily shared.
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7 5
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12 6
13You should have received a copy of the GNU General Public License 7Custom handlers
14along with this program. If not, see <http://www.gnu.org/licenses/>. 8---------------
9
10All (most) `_user` functions are handled here instead. To allow keyboard specific configuration, I've created `_keymap` functions that can be called by the keymap.c files instead.
11
12This allows for keyboard specific configuration while maintaining the ability to customize the board.
13
14My Ergodox EZ Keymap is a good example of this, as it uses the LEDs as modifier indicators.
15
16Custom Keycodes
17---------------
18
19Keycods are defined in the drashna.h file and need to be included in the keymap.c files, so that they can be used there.
20
21A bunch of macros are present and are only included on boards that are not the Ergodox EZ or Orthodox, as they are not needed for those boards.
22
23Included is a custom macro for compiling my keyboards. This includes the bootloader target (`:teensy`, `:avrdude`, or `:dfu`), and keeps RGBLIGHT, AUDIO and/or FAUXCLICKY enabled, if it previously was (regardless of the rules file).
24
25This also includes a modified RESET keycode as well, that sets the underglow to red.
26
27Layer Indication
28----------------
29
30This uses the `layer_state_set_*` command to change the layer color, to indicate which layer it is on. This includes the default keymap, as well.
31
32Since this is done via userspace, it is the same between all systems.
33
34Additionally, there is a custom keycode to toggle layer indication. And all RGB keycodes disable layer indication by default, as well. This way, I can leave special effects doing when I want.
35
36Also. I use `rgblight_sethsv` since it works with animation modes (that support it).
37
38
39Diablo Layer
40------------
41
42This layer has some special handling.
43
44When Tap Dances are enabled, this layer has the ability to "spam" keypresses.
45
46For instance, tapping the TD "1" twice causes the layer to hit "1" ever 1 second (appoximately). This is useful for auto-hotkeying skills (such as bone armor or devour).
47
48Tappind once disables this, and switching layers temporarily disables this, until you switch back to the layer.
49
50For critics that think this is cheating, search "diablo 3 num lock auto cast". This is just a simpler method, since I no longer own a normal (non QMK) numpad.
51
52Secret Macros
53-------------
54
55With help from gitter and Colinta, this adds the ability to add hidden strings to be used for macros.
56
57I have a number of long strings that I need to use that are semi-private. This uses the `__has_include` function to check for the file. If it exists, then it includes the custom text. Otherwise, it uses some default values.
58
59If you would *also* like to take advantage of this feature, you'll first want to make sure your "secrets" file isn't included in the repo. Open `.git/info/exclude` and add `secrets.h` to that file, below the comments.
60
61###### .git/info/exclude
62```
63# git ls-files --others --exclude-from=.git/info/exclude
64# Lines that start with '#' are comments.
65# For a project mostly in C, the following would be a good set of
66# exclude patterns (uncomment them if you want to use them):
67# *.[oa]
68# *~
69/users/drashna/secrets.h
70```
71
72Then you can create this file and add your macro strings to it:
73
74###### secrets.h
75```
76PROGMEM const char secret[][64] = {
77 "secret1",
78 "secret2",
79 "secret3",
80 "secret4",
81 "secret5"
82};
83```
84
85Replacing the strings with the codes that you need.
86
87
88These are called in the `process_record_user` function, using this block:
89```
90 case KC_SECRET_1 ... KC_SECRET_5:
91 if (!record->event.pressed) {
92 send_string_P(secret[keycode - KC_SECRET_1]);
93 }
94 return false;
95 break;
96```
97
98And this requires `KC_SECRET_1` through `KC_SECRET_5` to be defined, as well.
diff --git a/users/drashna/sensitive.h b/users/drashna/sensitive.h
deleted file mode 100644
index bf47263bd..000000000
--- a/users/drashna/sensitive.h
+++ /dev/null
@@ -1,8 +0,0 @@
1const char secret[][64] = {
2 "test1",
3 "test2",
4 "test3",
5 "test4",
6 "test5"
7};
8