aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/config.h11
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/keymap.c51
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/rules.mk5
-rw-r--r--keyboards/handwired/woodpad/keymaps/drashna/config.h2
-rw-r--r--keyboards/orthodox/keymaps/drashna/config.h13
-rw-r--r--keyboards/orthodox/keymaps/drashna/keymap.c8
-rw-r--r--keyboards/orthodox/keymaps/drashna/rules.mk6
-rw-r--r--keyboards/orthodox/rev3/rules.mk3
-rw-r--r--keyboards/viterbi/keymaps/drashna/config.h16
-rw-r--r--keyboards/viterbi/keymaps/drashna/keymap.c69
-rw-r--r--keyboards/viterbi/keymaps/drashna/rules.mk5
-rw-r--r--users/drashna/drashna.c7
-rw-r--r--users/drashna/drashna.h29
-rw-r--r--users/drashna/readme.md15
-rw-r--r--users/drashna/rules.mk2
15 files changed, 133 insertions, 109 deletions
diff --git a/keyboards/ergodox_ez/keymaps/drashna/config.h b/keyboards/ergodox_ez/keymaps/drashna/config.h
index 3d138e072..c0286f16a 100644
--- a/keyboards/ergodox_ez/keymaps/drashna/config.h
+++ b/keyboards/ergodox_ez/keymaps/drashna/config.h
@@ -1,9 +1,8 @@
1#ifndef CONFIG_USER_H 1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H 2#define CONFIG_USER_H
3#include "../../config.h"
4 3
4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define TAPPING_TERM 200
7 6
8#ifdef RGBLIGHT_ENABLE 7#ifdef RGBLIGHT_ENABLE
9#undef RGBLIGHT_SAT_STEP 8#undef RGBLIGHT_SAT_STEP
@@ -13,6 +12,12 @@
13#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 12#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
14#endif // RGBLIGHT_ENABLE 13#endif // RGBLIGHT_ENABLE
15 14
16#define FORCE_NKRO 15#ifdef TAPPING_TERM
16#undef TAPPING_TERM
17#endif
18#define TAPPING_TERM 150
19#undef PERMISSIVE_HOLD
20#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
21#define ONESHOT_TAP_TOGGLE 2
17 22
18#endif 23#endif
diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
index 8743ae282..c7939de37 100644
--- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
@@ -15,15 +15,8 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18#include "debug.h"
19#include "action_layer.h"
20#include "version.h"
21#include "drashna.h" 18#include "drashna.h"
22 19
23#include "keymap_german.h"
24
25#include "keymap_nordic.h"
26
27 20
28 21
29 22
@@ -31,18 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31bool skip_leds = false; 24bool skip_leds = false;
32 25
33 26
34#ifdef TAP_DANCE_ENABLE
35#define KC_D3_1 TD(TD_D3_1)
36#define KC_D3_2 TD(TD_D3_2)
37#define KC_D3_3 TD(TD_D3_3)
38#define KC_D3_4 TD(TD_D3_4)
39#else
40#define KC_D3_1 KC_1
41#define KC_D3_2 KC_2
42#define KC_D3_3 KC_3
43#define KC_D3_4 KC_4
44#endif
45
46 27
47const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
48/* Keymap 0: Basic layer 29/* Keymap 0: Basic layer
@@ -71,7 +52,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), 52 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), 53 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, 54 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(_GAMEPAD), 55 OSM(MOD_LSFT), 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, 56 LT(_SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
76 57
77 ALT_T(KC_APPLICATION), KC_LGUI, 58 ALT_T(KC_APPLICATION), KC_LGUI,
@@ -81,7 +62,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, 62 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, 63 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), 64 KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
84 TG(_GAMEPAD), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT, 65 TG(_GAMEPAD), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),OSM(MOD_RSFT),
85 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB), 66 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
86 KC_RGUI, CTL_T(KC_ESCAPE), 67 KC_RGUI, CTL_T(KC_ESCAPE),
87 KC_PGUP, 68 KC_PGUP,
@@ -115,7 +96,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), 96 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), 97 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, 98 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(_GAMEPAD), 99 OSM(MOD_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, 100 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
120 ALT_T(KC_APP), KC_LGUI, 101 ALT_T(KC_APP), KC_LGUI,
121 KC_HOME, 102 KC_HOME,
@@ -124,7 +105,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, 105 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, 106 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), 107 KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE),
127 TG(_GAMEPAD),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT, 108 TG(_GAMEPAD),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), OSM(MOD_RSFT),
128 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB), 109 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
129 KC_RGUI, CTL_T(KC_ESC), 110 KC_RGUI, CTL_T(KC_ESC),
130 KC_PGUP, 111 KC_PGUP,
@@ -156,9 +137,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
156[_DVORAK] = LAYOUT_ergodox( 137[_DVORAK] = LAYOUT_ergodox(
157 // left hand 138 // left hand
158 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), 139 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), 140 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, 141 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(_GAMEPAD), 142 OSM(MOD_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, 143 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET, KC_RBRACKET,
163 ALT_T(KC_APP), KC_LEAD, 144 ALT_T(KC_APP), KC_LEAD,
164 KC_HOME, 145 KC_HOME,
@@ -167,7 +148,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, 148 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, 149 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, 150 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
170 TG(_GAMEPAD),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT, 151 TG(_GAMEPAD),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), OSM(MOD_RSFT),
171 KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(_SYMB), 152 KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(_SYMB),
172 KC_LALT, CTL_T(KC_ESC), 153 KC_LALT, CTL_T(KC_ESC),
173 KC_PGUP, 154 KC_PGUP,
@@ -178,11 +159,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
178 * ,--------------------------------------------------. ,--------------------------------------------------. 159 * ,--------------------------------------------------. ,--------------------------------------------------.
179 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | 160 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
180 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 161 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
181 * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | 162 * | Del | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | \ |
182 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 163 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
183 * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' | 164 * | BkSp | A | S | H | T | D |------| |------| Y | N | E | O | I | ' |
184 * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------| 165 * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
185 * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | 166 * | LShift |Z/Ctrl| X | M | C | V | | | | K | L | , | . |//Ctrl| RShift |
186 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 167 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
187 * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | 168 * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
188 * `----------------------------------' `----------------------------------' 169 * `----------------------------------' `----------------------------------'
@@ -201,7 +182,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), 182 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), 183 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, 184 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(_GAMEPAD), 185 OSM(MOD_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, 186 LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
206 ALT_T(KC_APP), KC_LEAD, 187 ALT_T(KC_APP), KC_LEAD,
207 KC_HOME, 188 KC_HOME,
@@ -210,7 +191,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, 191 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, 192 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, 193 KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
213 TG(_GAMEPAD),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT, 194 TG(_GAMEPAD),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), OSM(MOD_RSFT),
214 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB), 195 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
215 KC_LALT, CTL_T(KC_ESC), 196 KC_LALT, CTL_T(KC_ESC),
216 KC_PGUP, 197 KC_PGUP,
@@ -239,7 +220,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
239* `--------------------' `--------------------' 220* `--------------------' `--------------------'
240*/ 221*/
241 [_SYMB] = LAYOUT_ergodox( 222 [_SYMB] = LAYOUT_ergodox(
242 KC_ESCAPE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_WORKMAN, 223 EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_WORKMAN,
243 VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_DVORAK, 224 VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_DVORAK,
244 KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, 225 KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE,
245 KC_RESET, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK, 226 KC_RESET, KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK,
@@ -280,7 +261,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
280 * `--------------------' `--------------------' 261 * `--------------------' `--------------------'
281 */ 262 */
282 [_GAMEPAD] = LAYOUT_ergodox( 263 [_GAMEPAD] = LAYOUT_ergodox(
283 KC_ESCAPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 264 KC_ESCAPE, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV),
284 KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, 265 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, 266 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F,
286 KC_LCTL, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, 267 KC_LCTL, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS,
@@ -294,7 +275,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
294 KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, 275 KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
295 TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, 276 TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
296 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, 277 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO,
297 KC_NO, KC_NO, 278 KC_HYPR, MAGIC_TOGGLE_NKRO,
298 KC_NO, 279 KC_NO,
299 KC_PGDOWN, KC_DELETE, KC_ENTER 280 KC_PGDOWN, KC_DELETE, KC_ENTER
300 ), 281 ),
@@ -364,7 +345,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
364 * `--------------------' `--------------------' 345 * `--------------------' `--------------------'
365 */ 346 */
366 [_MOUS] = LAYOUT_ergodox( 347 [_MOUS] = LAYOUT_ergodox(
367 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, 348 KC_NO, KC_SECRET_1,KC_SECRET_2,KC_SECRET_3,KC_SECRET_4,KC_SECRET_5,KC_TRNS,
368 KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, 349 KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS,
369 KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, 350 KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
370 KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, 351 KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS,
diff --git a/keyboards/ergodox_ez/keymaps/drashna/rules.mk b/keyboards/ergodox_ez/keymaps/drashna/rules.mk
index bfeb6be49..6f30c5491 100644
--- a/keyboards/ergodox_ez/keymaps/drashna/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/drashna/rules.mk
@@ -4,8 +4,3 @@ COMMAND_ENABLE = no # Commands for debug and configuration
4RGBLIGHT_ENABLE = yes 4RGBLIGHT_ENABLE = yes
5CONSOLE_ENABLE = no 5CONSOLE_ENABLE = no
6 6
7EXTRAFLAGS = -flto
8
9ifndef QUANTUM_DIR
10 include ../../../../Makefile
11endif
diff --git a/keyboards/handwired/woodpad/keymaps/drashna/config.h b/keyboards/handwired/woodpad/keymaps/drashna/config.h
index e505aac41..a35b60d36 100644
--- a/keyboards/handwired/woodpad/keymaps/drashna/config.h
+++ b/keyboards/handwired/woodpad/keymaps/drashna/config.h
@@ -17,7 +17,7 @@
17#ifndef CONFIG_USER_H 17#ifndef CONFIG_USER_H
18#define CONFIG_USER_H 18#define CONFIG_USER_H
19 19
20#include "../../config.h" 20#include QMK_KEYBOARD_CONFIG_H
21 21
22#ifdef TAP_DANCE_ENABLE 22#ifdef TAP_DANCE_ENABLE
23#define TAPPING_TERM 200 23#define TAPPING_TERM 200
diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h
index 4dee43905..f39c34e76 100644
--- a/keyboards/orthodox/keymaps/drashna/config.h
+++ b/keyboards/orthodox/keymaps/drashna/config.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22#ifndef CONFIG_USER_H 22#ifndef CONFIG_USER_H
23#define CONFIG_USER_H 23#define CONFIG_USER_H
24 24
25#include "config_common.h" 25#include QMK_KEYBOARD_CONFIG_H
26 26
27/* Use I2C or Serial, not both */ 27/* Use I2C or Serial, not both */
28 28
@@ -35,9 +35,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
35// #define MASTER_RIGHT 35// #define MASTER_RIGHT
36#define EE_HANDS 36#define EE_HANDS
37 37
38#ifndef TAPPING_TERM 38#ifdef TAPPING_TERM
39#define TAPPING_TERM 200 39#undef TAPPING_TERM
40#endif 40#endif
41#define TAPPING_TERM 150
42#undef PERMISSIVE_HOLD
43#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
44#define ONESHOT_TAP_TOGGLE 2
45
41 46
42 47
43/* key combination for command */ 48/* key combination for command */
@@ -63,7 +68,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
63 68
64#ifdef AUDIO_ENABLE 69#ifdef AUDIO_ENABLE
65#define C6_AUDIO 70#define C6_AUDIO
66#define STARTUP_SONG SONG(ZELDA_PUZZLE) 71#define STARTUP_SONG SONG(ZELDA_TREASURE)
67#endif 72#endif
68 73
69#endif 74#endif
diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c
index f5a18033e..af235f55d 100644
--- a/keyboards/orthodox/keymaps/drashna/keymap.c
+++ b/keyboards/orthodox/keymaps/drashna/keymap.c
@@ -50,24 +50,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50[_QWERTY] = KEYMAP(\ 50[_QWERTY] = KEYMAP(\
51 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ 51 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
52 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ 52 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
53 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH), KC_LGUI \ 53 OSM(MOD_LSFT),CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH), KC_LGUI \
54), 54),
55 55
56[_COLEMAK] = KEYMAP(\ 56[_COLEMAK] = KEYMAP(\
57 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ 57 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
58 KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ 58 KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
59 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH), KC_LGUI \ 59 OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLASH), KC_LGUI \
60), 60),
61 61
62[_DVORAK] = KEYMAP(\ 62[_DVORAK] = KEYMAP(\
63 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ 63 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
64 KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ 64 KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
65 KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_LGUI \ 65 OSM(MOD_LSFT), CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_LGUI \
66), 66),
67[_WORKMAN] = KEYMAP(\ 67[_WORKMAN] = KEYMAP(\
68 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ 68 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
69 KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ 69 KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
70 KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_LGUI \ 70 OSM(MOD_LSFT), CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, LOWER, KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, RAISE, KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_LGUI \
71), 71),
72 72
73[_LOWER] = KEYMAP(\ 73[_LOWER] = KEYMAP(\
diff --git a/keyboards/orthodox/keymaps/drashna/rules.mk b/keyboards/orthodox/keymaps/drashna/rules.mk
index 293faf13e..53a44424b 100644
--- a/keyboards/orthodox/keymaps/drashna/rules.mk
+++ b/keyboards/orthodox/keymaps/drashna/rules.mk
@@ -4,8 +4,4 @@ RGBLIGHT_ENABLE = yes
4AUDIO_ENABLE = no 4AUDIO_ENABLE = no
5MOUSEKEY_ENABLE = no 5MOUSEKEY_ENABLE = no
6NKRO_ENABLE = yes 6NKRO_ENABLE = yes
7FAUXCLICKY_ENABLE = yes 7FAUXCLICKY_ENABLE = no
8
9ifndef QUANTUM_DIR
10 include ../../../../Makefile
11endif
diff --git a/keyboards/orthodox/rev3/rules.mk b/keyboards/orthodox/rev3/rules.mk
index a0825b4ef..549b6a253 100644
--- a/keyboards/orthodox/rev3/rules.mk
+++ b/keyboards/orthodox/rev3/rules.mk
@@ -1,5 +1,2 @@
1BACKLIGHT_ENABLE = no 1BACKLIGHT_ENABLE = no
2 2
3ifndef QUANTUM_DIR
4 include ../../../Makefile
5endif \ No newline at end of file
diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h
index 8ac492a8a..617f01bb9 100644
--- a/keyboards/viterbi/keymaps/drashna/config.h
+++ b/keyboards/viterbi/keymaps/drashna/config.h
@@ -18,12 +18,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef CONFIG_USER_H 18#ifndef CONFIG_USER_H
19#define CONFIG_USER_H 19#define CONFIG_USER_H
20 20
21#include "../../config.h" 21#include QMK_KEYBOARD_CONFIG_H
22 22
23/* Use I2C or Serial, not both */
24 23
25#define USE_SERIAL 24/* Use I2C or Serial, not both */
26// #define USE_I2C 25// #define USE_SERIAL
26#define USE_I2C
27 27
28/* Select hand configuration */ 28/* Select hand configuration */
29 29
@@ -31,20 +31,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31// #define MASTER_RIGHT 31// #define MASTER_RIGHT
32// #define EE_HANDS 32// #define EE_HANDS
33 33
34#ifdef RGBLIGHT_ENABLE
34#undef RGBLED_NUM 35#undef RGBLED_NUM
35#define RGBLIGHT_ANIMATIONS 36#define RGBLIGHT_ANIMATIONS
36#define RGBLED_NUM 12 37#define RGBLED_NUM 16
37#define RGBLIGHT_HUE_STEP 8 38#define RGBLIGHT_HUE_STEP 8
38#define RGBLIGHT_SAT_STEP 8 39#define RGBLIGHT_SAT_STEP 8
39#define RGBLIGHT_VAL_STEP 8 40#define RGBLIGHT_VAL_STEP 8
40#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 41#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
41#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 42#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
42#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 43#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
44#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 300
45#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
43 46
47#endif // RGBLIGHT_ENABLE
44 48
45#ifdef AUDIO_ENABLE 49#ifdef AUDIO_ENABLE
46#define C6_AUDIO 50#define C6_AUDIO
47#endif 51#endif
48 52
53#undef LOCKING_SUPPORT_ENABLE
54#undef LOCKING_RESYNC_ENABLE
49 55
50#endif 56#endif
diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c
index 4b41d4977..c29bae6ce 100644
--- a/keyboards/viterbi/keymaps/drashna/keymap.c
+++ b/keyboards/viterbi/keymaps/drashna/keymap.c
@@ -1,6 +1,4 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2#include "action_layer.h"
3#include "eeconfig.h"
4#include "drashna.h" 2#include "drashna.h"
5 3
6extern keymap_config_t keymap_config; 4extern keymap_config_t keymap_config;
@@ -21,67 +19,84 @@ extern keymap_config_t keymap_config;
21#define MEDIA TG(_MEDIA) 19#define MEDIA TG(_MEDIA)
22#define COVECUBE TG(_COVECUBE) 20#define COVECUBE TG(_COVECUBE)
23 21
22#ifdef FAUXCLICKY_ENABLE
23float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2); // (_D4, 0.25);
24float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125);
25float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 2); // (_C4, 0.25);
26#define AUD_ON FC_ON
27#define AUD_OFF FC_OFF
28#else
29#define AUD_ON AU_ON
30#define AUD_OFF AU_OFF
31#endif
32
24enum more_custom_keycodes { 33enum more_custom_keycodes {
25 KC_KP_00 = NEW_SAFE_RANGE 34 KC_P00 = NEW_SAFE_RANGE
26}; 35};
27 36
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 38
30 [_NUMLOCK] = KEYMAP( 39 [_NUMLOCK] = KEYMAP(
31 LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 40 LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
32 MEDIA, KC_CALC, COVECUBE, KC_P7, KC_P8, KC_P9, KC_PAST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 41 MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
33 KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 42 KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
34 KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 43 KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
35 KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_KP_00,KC_PDOT, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 44 KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
36 ), 45 ),
37 46
38 [_DIABLO] = KEYMAP( 47 [_DIABLO] = KEYMAP(
39 KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 48 KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
40 KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 49 KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
41 KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 50 KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
42 KC_LCTL, TD(TD_D3_1), TD(TD_D3_2), TD(TD_D3_3), TD(TD_D3_4), KC_Z, KC_DIABLO_CLEAR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 51 KC_LCTL, KC_D3_3, KC_D3_3, KC_D3_3, KC_D3_3, KC_Z, KC_DIABLO_CLEAR, 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 \ 52 KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
44 ), 53 ),
45 54
46 [_GAMEPAD] = KEYMAP( // Game pad layout designed primarily for Overwatch 55 [_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, \ 56 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, \ 57 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, \ 58 KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
50 KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 59 KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
51 KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 60 KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
52 ), 61 ),
53 62
54 [_MACROS] = KEYMAP( 63 [_MACROS] = KEYMAP(
55 LMACRO, XXXXXXX, GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 64 LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 65 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
57 KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 66 KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
58 KC_GLHF, KC_GOODGAME, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 67 KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
59 KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 68 KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
60 ), 69 ),
61 70
62 [_COVECUBE] = KEYMAP( 71 [_COVECUBE] = KEYMAP(
63 COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
64 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 72 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
73 XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
65 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 74 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
66 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 75 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
67 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 76 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
68 ), 77 ),
69 78
70 [_MEDIA] = KEYMAP( 79 [_MEDIA] = KEYMAP(
71 KC_RESET,KC_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 80 KC_MAKE, KC_RESET,XXXXXXX, AUD_ON, AUD_OFF, XXXXXXX, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
72 MEDIA, XXXXXXX, RGB_SAI, RGB_VAI, RGB_M_P, RGB_M_B, RGB_M_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 81 MEDIA, XXXXXXX, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
73 RGB_TOG, RGB_MOD, RGB_SAD, RGB_VAD, RGB_M_SW,RGB_M_SN,RGB_M_K, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 82 RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
74 KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, RGB_M_K, RGB_M_X, RGB_M_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 83 KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
75 KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 84 KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
76 ) 85 )
77 86
78 87
79}; 88};
80 89
90void matrix_init_keymap(void) {
91 DDRD &= ~(1<<5);
92 PORTD &= ~(1<<5);
81 93
94 DDRB &= ~(1<<0);
95 PORTB &= ~(1<<0);
96}
82bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { 97bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
83 switch (keycode) { 98 switch (keycode) {
84 case KC_KP_00: 99 case KC_P00:
85 if (record->event.pressed) { 100 if (record->event.pressed) {
86 register_code(KC_KP_0); 101 register_code(KC_KP_0);
87 unregister_code(KC_KP_0); 102 unregister_code(KC_KP_0);
diff --git a/keyboards/viterbi/keymaps/drashna/rules.mk b/keyboards/viterbi/keymaps/drashna/rules.mk
index 34b190370..9af36434c 100644
--- a/keyboards/viterbi/keymaps/drashna/rules.mk
+++ b/keyboards/viterbi/keymaps/drashna/rules.mk
@@ -5,8 +5,3 @@ RGBLIGHT_ENABLE = yes
5MOUSEKEY_ENABLE = no 5MOUSEKEY_ENABLE = no
6NKRO_ENABLE = yes 6NKRO_ENABLE = yes
7 7
8EXTRAFLAGS = -flto
9
10ifndef QUANTUM_DIR
11 include ../../../../Makefile
12endif
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index 95fb793a7..2ac0257b5 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#include "drashna.h" 18#include "drashna.h"
19#include "quantum.h"
20#include "action.h"
21#include "version.h" 19#include "version.h"
22 20
23#if (__has_include("secrets.h")) 21#if (__has_include("secrets.h"))
@@ -450,8 +448,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
450 ":dfu" 448 ":dfu"
451#elif defined(BOOTLOADER_HALFKAY) 449#elif defined(BOOTLOADER_HALFKAY)
452 ":teensy" 450 ":teensy"
453#elif defined(BOOTLOADER_CATERINA) 451//#elif defined(BOOTLOADER_CATERINA)
454 ":avrdude" 452// ":avrdude"
455#endif 453#endif
456#ifdef RGBLIGHT_ENABLE 454#ifdef RGBLIGHT_ENABLE
457 " RGBLIGHT_ENABLE=yes" 455 " RGBLIGHT_ENABLE=yes"
@@ -572,6 +570,7 @@ uint32_t layer_state_set_user(uint32_t state) {
572 case _COVECUBE: 570 case _COVECUBE:
573 rgblight_set_green; 571 rgblight_set_green;
574 rgblight_mode(2); 572 rgblight_mode(2);
573 break;
575 default: 574 default:
576 if (default_layer & (1UL << _COLEMAK)) { 575 if (default_layer & (1UL << _COLEMAK)) {
577 rgblight_set_magenta; 576 rgblight_set_magenta;
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index 0b9347f1d..2475c99d4 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -45,17 +45,27 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
45#define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) 45#define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
46#define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) 46#define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI))
47 47
48#ifdef RGBLIGHT_ENABLE 48#ifndef RGBLIGHT_ANIMATIONS // add "EXTRA_FLADS=-DDRASHNA_SETRGB" to enable this ... but don't
49#define rgblight_set_blue rgblight_setrgb (0x00, 0x00, 0xFF);
50#define rgblight_set_red rgblight_setrgb (0xFF, 0x00, 0x00);
51#define rgblight_set_green rgblight_setrgb (0x00, 0xFF, 0x00);
52#define rgblight_set_orange rgblight_setrgb (0xFF, 0x80, 0x00);
53#define rgblight_set_teal rgblight_setrgb (0x00, 0xFF, 0xFF);
54#define rgblight_set_magenta rgblight_setrgb (0xFF, 0x00, 0xFF);
55#define rgblight_set_yellow rgblight_setrgb (0xFF, 0xFF, 0x00);
56#define rgblight_set_purple rgblight_setrgb (0x7A, 0x00, 0xFF);
57#define rgblight_set_white rgblight_setrgb (0xFF, 0xFF, 0xFF);
58#else
49#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF); 59#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
50#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF); 60#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
51#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF); 61#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
52#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF); 62#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
53#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF); 63#define rgblight_set_teal rgblight_sethsv (0xB4, 0xFF, 0xFF);
54#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); 64#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
55#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF); 65#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
56#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); 66#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
57#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF); 67#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF);
58#endif 68#endif // DRASHNA_SETRGB
59 69
60extern bool is_overwatch; 70extern bool is_overwatch;
61extern bool rgb_layer_change; 71extern bool rgb_layer_change;
@@ -103,6 +113,17 @@ enum {
103}; 113};
104#endif 114#endif
105 115
116#ifdef TAP_DANCE_ENABLE
117#define KC_D3_1 TD(TD_D3_1)
118#define KC_D3_2 TD(TD_D3_2)
119#define KC_D3_3 TD(TD_D3_3)
120#define KC_D3_4 TD(TD_D3_4)
121#else
122#define KC_D3_1 KC_1
123#define KC_D3_2 KC_2
124#define KC_D3_3 KC_3
125#define KC_D3_4 KC_4
126#endif
106 127
107#define QMK_KEYS_PER_SCAN 8 128#define QMK_KEYS_PER_SCAN 8
108 129
@@ -110,4 +131,6 @@ enum {
110#define RGBLIGHT_SLEEP 131#define RGBLIGHT_SLEEP
111#endif 132#endif
112 133
134#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
135
113#endif 136#endif
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
index 0523be2a6..e77948ea9 100644
--- a/users/drashna/readme.md
+++ b/users/drashna/readme.md
@@ -4,19 +4,26 @@ Overview
4This is my personal userspace file. Most of my code exists here, as it's heavily shared. 4This is my personal userspace file. Most of my code exists here, as it's heavily shared.
5 5
6 6
7Custom handlers 7Custom userspace handlers
8--------------- 8-------------------------
9
10Specifically QMK works by using customized handlers for everything. This allows for multiple levels of customization.
11
12`matrix_scan` calls `matrix_scan_quantum`, which alls `matrix_scan_kb`, which calls `matrix_scan_user`.
13`process_record` calls a bunch of stuff, but eventually calls `process_record_kb` which calls `process_record_user`
14The same goes for `matrix_init`, `layer_state_set`, `led_set`, and a few other functions.
9 15
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. 16All (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 17
12This allows for keyboard specific configuration while maintaining the ability to customize the board. 18This allows for keyboard specific configuration while maintaining the ability to customize the board.
13 19
14My Ergodox EZ Keymap is a good example of this, as it uses the LEDs as modifier indicators. 20My [Ergodox EZ Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/drashna/keymap.c#L399) is a good example of this, as it uses the LEDs as modifier indicators.
21
15 22
16Custom Keycodes 23Custom Keycodes
17--------------- 24---------------
18 25
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. 26Keycodes 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 27
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. 28A 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 29
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index 6ce1ff5ba..ab2ab607d 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -1,3 +1,3 @@
1 1
2SRC += drashna.c 2SRC += drashna.c
3EXTRAFLAGS = -flto 3EXTRAFLAGS += -flto