diff options
| -rw-r--r-- | keyboards/ergodox_ez/keymaps/drashna/README.md | 25 | ||||
| -rw-r--r-- | keyboards/ergodox_ez/keymaps/drashna/keymap.c | 24 | ||||
| -rw-r--r-- | keyboards/handwired/woodpad/keymaps/drashna/README.md | 25 | ||||
| -rw-r--r-- | keyboards/orthodox/keymaps/drashna/README.md | 26 | ||||
| -rw-r--r-- | keyboards/viterbi/keymaps/drashna/keymap.c | 4 | ||||
| -rw-r--r-- | users/drashna/drashna.c | 17 | ||||
| -rw-r--r-- | users/drashna/drashna.h | 11 | ||||
| -rw-r--r-- | users/drashna/readme.md | 106 | ||||
| -rw-r--r-- | users/drashna/sensitive.h | 8 |
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 @@ | |||
| 1 | Overview | ||
| 2 | ======== | ||
| 3 | |||
| 4 | This is my personal Ergodox EZ configuration, and my daily driver. | ||
| 5 | |||
| 6 | Most of the code resides in my userspace, rather than here, as I have multiple keyboards. | ||
| 7 | |||
| 8 | How to build | ||
| 9 | ------------ | ||
| 10 | make ergodox_ez:drashna:teensy | ||
| 11 | |||
| 12 | Layers | ||
| 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 | |||
| 20 | All layers have RGB specific indicators, so you can see what layer you're on by the underglow. | ||
| 21 | |||
| 22 | Ergodox Specific Code | ||
| 23 | --------------------- | ||
| 24 | |||
| 25 | Aside 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 @@ | |||
| 1 | Overview | ||
| 2 | ======== | ||
| 3 | |||
| 4 | This is my personal Numpad (Woodpad) configuration, and my daily driver. | ||
| 5 | |||
| 6 | Most of the code resides in my userspace, rather than here, as I have multiple keyboards. | ||
| 7 | |||
| 8 | How to build | ||
| 9 | ------------ | ||
| 10 | make handwired/woodpad:drashna:avrdude | ||
| 11 | |||
| 12 | Layers | ||
| 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 | |||
| 20 | All layers have RGB specific indicators, so you can see what layer you're on by the underglow. | ||
| 21 | |||
| 22 | Woodpad Specific Code | ||
| 23 | --------------------- | ||
| 24 | |||
| 25 | Aside 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 @@ | |||
| 1 | Overview | ||
| 2 | ======== | ||
| 3 | |||
| 4 | This is my personal Orthodox configuration, and my daily driver. | ||
| 5 | |||
| 6 | Most of the code resides in my userspace, rather than here, as I have multiple keyboards. | ||
| 7 | |||
| 8 | How to build | ||
| 9 | ------------ | ||
| 10 | make orthodox/rev1:drashna:teensy | ||
| 11 | |||
| 12 | Layers | ||
| 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 | |||
| 19 | All layers have RGB specific indicators, so you can see what layer you're on by the underglow. | ||
| 20 | |||
| 21 | Orthodox Specific Code | ||
| 22 | ---------------------- | ||
| 23 | |||
| 24 | Left side is designed to have RGB underglow and Faux Clicking enabled, while the right has Audio enabled. | ||
| 25 | |||
| 26 | The 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 | ||
| 26 | PROGMEM 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 | ||
| 60 | extern bool is_overwatch; | 60 | extern bool is_overwatch; |
| 61 | extern bool rgb_layer_change; | 61 | extern bool rgb_layer_change; |
| 62 | 62 | ||
| 63 | enum userrpace_custom_keycodes { | 63 | enum 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 @@ | |||
| 1 | Copyright 2017 Christopher Courtney <drashna@live.com> @drashna | 1 | Overview |
| 2 | ======== | ||
| 2 | 3 | ||
| 3 | This program is free software: you can redistribute it and/or modify | 4 | This is my personal userspace file. Most of my code exists here, as it's heavily shared. |
| 4 | it under the terms of the GNU General Public License as published by | ||
| 5 | the Free Software Foundation, either version 2 of the License, or | ||
| 6 | (at your option) any later version. | ||
| 7 | 5 | ||
| 8 | This program is distributed in the hope that it will be useful, | ||
| 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | GNU General Public License for more details. | ||
| 12 | 6 | ||
| 13 | You should have received a copy of the GNU General Public License | 7 | Custom handlers |
| 14 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 8 | --------------- |
| 9 | |||
| 10 | All (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 | |||
| 12 | This allows for keyboard specific configuration while maintaining the ability to customize the board. | ||
| 13 | |||
| 14 | My Ergodox EZ Keymap is a good example of this, as it uses the LEDs as modifier indicators. | ||
| 15 | |||
| 16 | Custom Keycodes | ||
| 17 | --------------- | ||
| 18 | |||
| 19 | Keycods 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 | |||
| 21 | A 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 | |||
| 23 | Included 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 | |||
| 25 | This also includes a modified RESET keycode as well, that sets the underglow to red. | ||
| 26 | |||
| 27 | Layer Indication | ||
| 28 | ---------------- | ||
| 29 | |||
| 30 | This 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 | |||
| 32 | Since this is done via userspace, it is the same between all systems. | ||
| 33 | |||
| 34 | Additionally, 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 | |||
| 36 | Also. I use `rgblight_sethsv` since it works with animation modes (that support it). | ||
| 37 | |||
| 38 | |||
| 39 | Diablo Layer | ||
| 40 | ------------ | ||
| 41 | |||
| 42 | This layer has some special handling. | ||
| 43 | |||
| 44 | When Tap Dances are enabled, this layer has the ability to "spam" keypresses. | ||
| 45 | |||
| 46 | For 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 | |||
| 48 | Tappind once disables this, and switching layers temporarily disables this, until you switch back to the layer. | ||
| 49 | |||
| 50 | For 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 | |||
| 52 | Secret Macros | ||
| 53 | ------------- | ||
| 54 | |||
| 55 | With help from gitter and Colinta, this adds the ability to add hidden strings to be used for macros. | ||
| 56 | |||
| 57 | I 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 | |||
| 59 | If 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 | |||
| 72 | Then you can create this file and add your macro strings to it: | ||
| 73 | |||
| 74 | ###### secrets.h | ||
| 75 | ``` | ||
| 76 | PROGMEM const char secret[][64] = { | ||
| 77 | "secret1", | ||
| 78 | "secret2", | ||
| 79 | "secret3", | ||
| 80 | "secret4", | ||
| 81 | "secret5" | ||
| 82 | }; | ||
| 83 | ``` | ||
| 84 | |||
| 85 | Replacing the strings with the codes that you need. | ||
| 86 | |||
| 87 | |||
| 88 | These 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 | |||
| 98 | And 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 @@ | |||
| 1 | const char secret[][64] = { | ||
| 2 | "test1", | ||
| 3 | "test2", | ||
| 4 | "test3", | ||
| 5 | "test4", | ||
| 6 | "test5" | ||
| 7 | }; | ||
| 8 | |||
