]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Update to drashna files (#2587)
authorDrashna Jaelre <drashna@live.com>
Sun, 25 Mar 2018 20:01:15 +0000 (13:01 -0700)
committerGitHub <noreply@github.com>
Sun, 25 Mar 2018 20:01:15 +0000 (13:01 -0700)
* Add Colemak Mod-DH vars

* Add Norman Layot vars

* Set Shift Indicator to include CAPS Lock as well

* Change MEH to GUI

* Add Enter to Macro layer

* Switch raise and lower layers to make more sense (to me)

* Replace unused quote on Ergodox

* Add One Shot defines

* Dim indicator LEDs

* Add short codes for KC_SECRET

* Fix typos

* Update OLKB code in userspace

* Add global userspace config.h

* add compile fix

* Automatically include  from userspace

* update readme

* Re-add QMK Scan loop

* Add EEPROM reset code to all keymaps

* Shorten fauxclick sound

* Use layouts instead of keymap, when possible

* Add OSM detection to ergodox

* Convert Viterbi to LAYOUT macro

* Clean up game macros

* Because I accidently removed the C6 AUDIO define from my viterbi... Whoops

* Minor formatting

* Fix Woodpad because it's still there

* Move Ergodox keymap into layouts folder

* Add build date to version macro

* Remove PREVENT_STUCK_MODIFIERS from config

20 files changed:
keyboards/ergodox_ez/keymaps/drashna/README.md [deleted file]
keyboards/ergodox_ez/keymaps/drashna/config.h [deleted file]
keyboards/ergodox_ez/keymaps/drashna/keymap.c [deleted file]
keyboards/ergodox_ez/keymaps/drashna/rules.mk [deleted file]
keyboards/handwired/woodpad/keymaps/drashna/config.h
keyboards/handwired/woodpad/keymaps/drashna/keymap.c
keyboards/orthodox/keymaps/drashna/config.h
keyboards/orthodox/keymaps/drashna/keymap.c
keyboards/viterbi/keymaps/drashna/config.h
keyboards/viterbi/keymaps/drashna/keymap.c
keyboards/viterbi/keymaps/drashna/rules.mk
layouts/community/ergodox/drashna/README.md [new file with mode: 0644]
layouts/community/ergodox/drashna/config.h [new file with mode: 0644]
layouts/community/ergodox/drashna/keymap.c [new file with mode: 0644]
layouts/community/ergodox/drashna/rules.mk [new file with mode: 0644]
users/drashna/config.h [new file with mode: 0644]
users/drashna/drashna.c
users/drashna/drashna.h
users/drashna/readme.md
users/drashna/rules.mk

diff --git a/keyboards/ergodox_ez/keymaps/drashna/README.md b/keyboards/ergodox_ez/keymaps/drashna/README.md
deleted file mode 100644 (file)
index e77defc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Overview
-========
-
-This is my personal Ergodox EZ configuration, and my daily driver.
-
-Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
-
-How to build 
-------------
-make ergodox_ez:drashna:teensy
-
-Layers
-------
-* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
-* SYMB: F keys across the top, symbols on the left and numpad on the right.
-* GAMEPAD: This is the QWERTY layout shifted to the right for FPS type games. Destiny and Overwatch are the primary games for this.
-* 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.
-* MOUSE: mouse navigation
-
-All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
-
-Ergodox Specific Code
----------------------
-
-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/config.h b/keyboards/ergodox_ez/keymaps/drashna/config.h
deleted file mode 100644 (file)
index 71c7de4..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include QMK_KEYBOARD_CONFIG_H
-
-
-#ifdef RGBLIGHT_ENABLE
-#undef RGBLIGHT_SAT_STEP 
-#define RGBLIGHT_SAT_STEP 12
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7
-#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7
-#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
-#define RGBLIGHT_SLEEP
-#endif // RGBLIGHT_ENABLE
-
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 175
-#undef PERMISSIVE_HOLD
-#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.)
-#define ONESHOT_TAP_TOGGLE 2
-
-#undef PRODUCT
-#define PRODUCT         DrashnaDox - Hacked ErgoDox EZ Shine
-
-#endif
diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
deleted file mode 100644 (file)
index 1b30196..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
-This is the keymap for the keyboard
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-#include QMK_KEYBOARD_H
-#include "drashna.h"
-
-
-
-//enum more_custom_keycodes {
-//    KC_P00 = NEW_SAFE_RANGE
-//};
-
-
-//define layer change stuff for underglow indicator
-bool skip_leds = false;
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- * 
- * 
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   = +  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  | TG(4)|           | TG(4)| 6 ^  | 7 &  |  8 * | 9 (  |  0 ) |  - _   |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |   TAB  |   Q  |   W  |   E  |   R  |   T  | TG(3)|           |TG(3) |   Y  |   U  |   I  |   O  |   P  |  \ |   |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |  Bksp  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |  ' "   |
- * |--------+------+------+------+------+------| TG(2)|           | TG(2)|------+------+------+------+------+--------|
- * | Shift  |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |  , < |  . > |  ? / | Shift  |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   | `/SYM|  ' " | LGUI |  [ { | ] }  |                                       | LEFT | DOWN |  UP  |RIGHT | SYMB |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,--------------.       ,--------------.
- *                                        |Alt/Ap|  Win  |       | Alt  |Ctl/Esc|
- *                                 ,------|------|-------|       |------+-------+------.
- *                                 |      |      | Home  |       | PgUp |       |      |
- *                                 | Space| Bksp |-------|       |------|  DEL  |Enter |
- *                                 |      |      | End   |       | PgDn |       |      |
- *                                 `---------------------'       `---------------------'
- */
-  [_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
-        // left hand                                                                       // right hand
-             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_MINS,
-             KC_TAB,  _________________QWERTY_L1_________________, TG(_DIABLO),         TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS,
-           TG(_MODS), _________________QWERTY_L2_________________,                                   _________________QWERTY_R2_________________, GUI_T(KC_QUOT),
-             KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF,
-    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
-                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
-                                                                   KC_HOME,                 KC_PGUP,
-                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
-
-                                    
-    ),
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * | Del    |   Q  |   W  |   F  |   P  |   G  |  L1  |           |  L1  |   J  |   L  |   U  |   Y  |   ;  |   \    |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * | BkSp   |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |O / L2|   '    |
- * |--------+------+------+------+------+------| OVER |           | Meh  |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |   ,  |   .  |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
- *                                 ,------|------|------|       |------+--------+------.
- *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
- *                                 |      |ace   | End  |       | PgDn |        |      |
- *                                 `--------------------'       `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper(  
-        // left hand                                                                       // right hand
-             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_MINS,
-             KC_TAB,  _________________COLEMAK_L1________________, TG(_DIABLO),         TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS,
-           TG(_MODS), _________________COLEMAK_L2________________,                                   _________________COLEMAK_R2________________, GUI_T(KC_QUOT),
-             KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF,
-    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
-                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
-                                                                   KC_HOME,                 KC_PGUP,
-                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
-    ),
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   \    |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * | Del    |   '  |   ,  |   .  |   P  |   Y  |  L1  |           |  L1  |   F  |   G  |   C  |   R  |   L  |   /    |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * | BkSp   |   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   H  |   T  |   N  |S / L2|   -    |
- * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
- * | LShift |:/Ctrl|   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |Z/Ctrl| RShift |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
- *                                 ,------|------|------|       |------+--------+------.
- *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
- *                                 |      |ace   | End  |       | PgDn |        |      |
- *                                 `--------------------'       `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[_DVORAK] = LAYOUT_ergodox_pretty_wrapper(  
-        // left hand        // right hand
-             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_BSLS,
-             KC_TAB,  _________________DVORAK_L1_________________, TG(_DIABLO),         TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH,
-           TG(_MODS), _________________DVORAK_L2_________________,                                   _________________DVORAK_R2_________________, GUI_T(KC_MINS),
-             KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF,
-    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
-                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
-                                                                   KC_HOME,                 KC_PGUP,
-                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
-    ),
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * | Del    |   Q  |   D  |   R  |   W  |   B  |  L1  |           |  L1  |   J  |   F  |   U  |   P  |   ;  |   \    |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * | BkSp   |   A  |   S  |   H  |   T  |   D  |------|           |------|   Y  |   N  |   E  |   O  |   I  |   '    |
- * |--------+------+------+------+------+------| OVER |           | Meh  |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl|   X  |   M  |   C  |   V  |      |           |      |   K  |   L  |   ,  |   .  |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
- *                                 ,------|------|------|       |------+--------+------.
- *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
- *                                 |      |ace   | End  |       | PgDn |        |      |
- *                                 `--------------------'       `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper(  
-        // left hand
-             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
-             KC_TAB,  _________________WORKMAN_L1________________, TG(_DIABLO),         TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS,
-           TG(_MODS), _________________WORKMAN_L2________________,                                   _________________WORKMAN_R2________________, GUI_T(KC_QUOT),
-             KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF,
-    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
-                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
-                                                                   KC_HOME,                 KC_PGUP,
-                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
-    ),
-
-  [_MODS] = LAYOUT_ergodox_pretty(
-             _______, _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______, _______,
-             _______, _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______, _______,
-             _______, _______, _______, _______, _______, _______,                                   _______, _______, _______, _______, _______, _______,
-             KC_LSFT, _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______, KC_RSFT,
-             _______, _______, _______, _______, _______,                                                     _______, _______, _______, _______, _______,
-                                                          _______, _______,                 _______, _______,
-                                                                   _______,                 _______,
-                                                 _______, _______, _______,                 _______, _______, _______
-            ),
-
-    /* Keymap 3: Symbol Layer
-*
-* ,--------------------------------------------------.           ,--------------------------------------------------.
-* |   ESC  |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  | F10  |   F11  |
-* |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
-* | VERSION|   !  |   @  |  {   |   }  |  |   |      |           |      |  +   |   7  |   8  |   9  |  *   |   F12  |
-* |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
-* |  MAKE  |   #  |   $  |  (   |   )  |  `   |------|           |------|  -   |   4  |   5  |   6  |  /   | PrtSc  |
-* |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
-* |  RESET |   %  |   ^  |  [   |   ]  |  ~   |      |           |      | NUM  |   1  |   2  |   3  |  =   |  PAUSE |
-* `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
-*   |  LT0 |   &  |   *  |  :   |   ;  |                                       |      |   0  | NUM. | ENT  |  ENT |
-*   `----------------------------------'                                       `----------------------------------'
-*                                        ,-------------.       ,-------------.
-*                                        | RGBM | RED  |       | OFF  | SOLID|
-*                                 ,------|------|------|       |------+------+------.
-*                                 |      |      | GREEN|       |      |      |      |
-*                                 | RGB  | RGB  |------|       |------| NUM0 | NUME |
-*                                 | DARK |BRITE | BLUE |       |      |      |      |
-*                                 `--------------------'       `--------------------'
-*/
-  [_SYMB] = LAYOUT_ergodox_pretty(
-             EPRM,    KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_QWERTY,             KC_QWERTY, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,
-            KC_RESET, KC_EXLM, KC_AT,   KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN,            KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12,
-             KC_MAKE, KC_HASH, KC_DLR,  KC_LPRN, KC_RPRN, KC_GRAVE,                                  KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN,
-             VRSN,    KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_COLEMAK,           KC_COLEMAK, KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE,
-             KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN,                                                     KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS,
-                                                          RGB_SMOD, KC_RGB_T,               KC_TRNS, KC_TRNS,
-                                                                    RGB_HUI,                KC_TRNS,
-                                                 RGB_M_R, RGB_M_SW, RGB_HUD,                KC_PDOT, KC_KP_0, KC_PENT
-            ),
-
-/* Keymap 4: Customized Overwatch Layout
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   ESC  |      |      |      |      |      |      |           |      |  F9  | F10  | F11  |  F12 |      |        |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |   F1   |  K   |  Q   |  W   |  E   |  R   |  T   |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |   TAB  |  G   |  A   |  S   |  D   |  F   |------|           |------|      |      |      |      |      |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |  LCTR  | LSHFT|  Z   |  X   |  C   |  V   |      |           |      |   N  |  M   |      |      |      |        |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |   J  |  U   |  I   |  Y   |  T   |                                       |      |      |      |      |      |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        |  O   |  P   |       |      |      |
- *                                 ,------|------|------|       |------+------+------.
- *                                 |      |      | LGUI |       |      |      |      |
- *                                 |  V   | SPACE|------        |------|      | Enter|
- *                                 |      |      |  H   |       |      |      |      |
- *                                 `--------------------'       `--------------------'
- */
-  [_GAMEPAD] = LAYOUT_ergodox_pretty(
-             KC_ESC,  KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV),      KC_TRNS, KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NO,   KC_NO,
-             KC_F1,   KC_K,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                    KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_TAB,  KC_G,    KC_A,    KC_S,    KC_D,    KC_F,                                      KC_I,    KC_O,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_LCTL, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_TRNS,            TG(_GAMEPAD), KC_N,    KC_M,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_G,    KC_U,    KC_I,    KC_Y,    KC_T,                                                        KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_NO,
-                                                          KC_O,    KC_P,                    KC_HYPR, MAGIC_TOGGLE_NKRO,
-                                                                   KC_LGUI,                 KC_NO,
-                                                 KC_V,    KC_SPC,  KC_H,                    KC_PGDN, KC_DEL,  KC_ENTER
-            ),
-
-/* Keymap 3:
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   ESC  |  V   |  D   | ALT  |      |      |      |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |   TAB  |  S   |  I   |  F   |  M   |  T   |      |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |    Q   |  1   |  2   |  3   |  4   |  G   |------|           |------|      |      |      |      |      |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * | NUMLOCK| NUM1 | NUM2 | NUM3 | NUM4 |  Z   |      |           |      |      |      |      |      |      |        |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   | LCTL | MAC1 | MAC2 | MAC3 | MAC4 |                                       |      |      |      |      |      |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        |   L  |  J   |       |      |      |
- *                                 ,------|------|------|       |------+------+------.
- *                                 |      |      |  G   |       |      |      |      |
- *                                 | SPACE|  Q   |------        |------|      |      |
- *                                 | SHIFT| ALT  | 0MAC |       |      |      |      |
- *                                 `--------------------'       `--------------------'
- */
-  [_DIABLO] = LAYOUT_ergodox_pretty(
-             KC_ESC,  KC_V,    KC_D,    KC_LALT, KC_NO,   KC_NO,   KC_NO,                   KC_TRNS, KC_F9,   KC_F10,   KC_F11,  KC_F12,  KC_NO,   KC_NO,
-             KC_TAB,  KC_S,    KC_I,    KC_F,    KC_M,    KC_T,    KC_TRNS,                 KC_TRNS, KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_Q,    KC_1,    KC_2,    KC_3,    KC_4,    KC_G,                                      KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z,    KC_NO,                   KC_NO,   KC_N,    KC_M,     KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                                                       KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
-                                                             KC_L,    KC_J,                 KC_NO,   KC_NO,
-                                                                      KC_F,                 KC_NO,
-                          SFT_T(KC_SPACE),  ALT_T(KC_Q),   KC_DIABLO_CLEAR,                 KC_PGDN, KC_DEL,  KC_ENT
-            ),
-
-/* Keymap 4: Media and mouse keys
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |      | MsUp |      |      |      |      |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |MsLeft|MsDown|MsRght|      |      |------|           |------|      |      | Acc0 | Acc1 | Acc2 |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        | Acc0 | Acc1 | Acc2 |      |      |      |           |      |      | Mute |VolDn |VolUp |      |        |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |      |      |      |      |      |                                       | Play | Stop |      |      |      |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        |      |      |       |      |      |
- *                                 ,------|------|------|       |------+------+------.
- *                                 |      |      | MWUp |       |      |      |      |
- *                                 | Lclk | Rclk |------|       |------| MBn4 | MBn5 |
- *                                 |      |      | MWDn |       | Mclk |      |      |
- *                                 `--------------------'       `--------------------'
- */
-  [_MOUS] = LAYOUT_ergodox_pretty(
-             KC_NO,   KC_SECRET_1,KC_SECRET_2,KC_SECRET_3,KC_SECRET_4,KC_SECRET_5,KC_TRNS,  KC_TRNS, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_NO,   KC_NO,   KC_MS_U, KC_NO,   KC_NO,   KC_NO,   KC_TRNS,                 KC_TRNS, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
-             KC_NO,   KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,   KC_NO,                                     KC_NO,   KC_ACL0, KC_ACL1, KC_ACL2, KC_NO,   KC_NO,
-             KC_NO,   KC_ACL0, KC_ACL1, KC_ACL2, KC_NO,   KC_NO,   KC_TRNS,                 KC_TRNS, KC_NO,   KC_MUTE, KC_VOLD, KC_VOLU, KC_NO,   KC_NO,
-             KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                                                       KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
-                                                          KC_NO,   KC_NO,                   KC_NO,   KC_NO,
-                                                                   KC_WH_U,                 KC_NO,
-                                                 KC_BTN1, KC_BTN2, KC_WH_D,                 KC_BTN3, KC_BTN4, KC_BTN5
-            ),
-
-};
-
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
-
-  //switch (keycode) {
-  //  case KC_P00:
-  //    if (!record->event.pressed) {
-  //      register_code(KC_KP_0);
-  //      unregister_code(KC_KP_0);
-  //      register_code(KC_KP_0);
-  //      unregister_code(KC_KP_0);
-  //    }
-  //    return false;
-  //    break;
-  //}
-  return true;
-}
-
-
-
-void matrix_init_keymap(void) { // Runs boot tasks for keyboard
-};
-
-
-void matrix_scan_keymap(void) {  // runs frequently to update info
-  uint8_t modifiders = get_mods();
-
-  if (!skip_leds) {
-    ergodox_board_led_off();
-    ergodox_right_led_1_off();
-    ergodox_right_led_2_off();
-    ergodox_right_led_3_off();
-
-    // Since we're not using the LEDs here for layer indication anymore,
-    // then lets use them for modifier indicators.  Shame we don't have 4...
-    // Also, no "else", since we want to know each, independantly. 
-    if (modifiders & MODS_SHIFT_MASK) {
-      ergodox_right_led_2_on();
-    }
-    if (modifiders & MODS_CTRL_MASK) {
-      ergodox_right_led_1_on();
-    }
-    if (modifiders & MODS_ALT_MASK) {
-      ergodox_right_led_3_on();
-    }
-
-  }
-
-};
-
diff --git a/keyboards/ergodox_ez/keymaps/drashna/rules.mk b/keyboards/ergodox_ez/keymaps/drashna/rules.mk
deleted file mode 100644 (file)
index 12f100d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-TAP_DANCE_ENABLE  = yes
-SLEEP_LED_ENABLE  = no  # Breathing sleep LED during USB suspend
-COMMAND_ENABLE    = yes  # Commands for debug and configuration
-RGBLIGHT_ENABLE   = yes
-CONSOLE_ENABLE    = no
-BOOTMAGIC_ENABLE  = yes
-
index c83a1ac3794030203f248a130a7c2e5db6bf4b48..c4f28034c87514ba743c850b8ab7994d61ef0b13 100644 (file)
@@ -19,7 +19,7 @@
 
 #include QMK_KEYBOARD_CONFIG_H
 
-#ifdef TAP_DANCE_ENABLE
+#if (defined(TAP_DANCE_ENABLE) && !defined(TAPPING_TERM))
 #define TAPPING_TERM 200
 #endif // TAP_DANCE_ENABLE
 
index 51b90913cbf4addfa031287d69ed1550b41a5e85..fd1ff005351fdb773b13a3081df6ff26642933dd 100644 (file)
 // Fillers to make layering more clear
 #define _______ KC_TRNS
 #define XXXXXXX KC_NO
-#ifdef TAP_DANCE_ENABLE
-#define KC_D3_1 TD(TD_D3_1)
-#define KC_D3_2 TD(TD_D3_2)
-#define KC_D3_3 TD(TD_D3_3)
-#define KC_D3_4 TD(TD_D3_4)
-#else
-#define KC_D3_1 KC_1
-#define KC_D3_2 KC_2
-#define KC_D3_3 KC_3
-#define KC_D3_4 KC_4
-#endif
-
-
-//define layer change stuff for underglow indicator
-bool skip_leds = false;
+
+
+
 
 
 
index dd8439a44bf44a5dd323bf3f4dbcb63018e194c5..f8a850394239c46873cf5282579672b1cb029a94 100644 (file)
@@ -35,15 +35,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 // #define MASTER_RIGHT
 #define EE_HANDS
 
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 150
-#undef PERMISSIVE_HOLD
-#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.)
-#define ONESHOT_TAP_TOGGLE 2
-
-
 
 /* key combination for command */
 #ifdef IS_COMMAND
@@ -64,12 +55,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1
-#define RGBLIGHT_SLEEP
 #endif // RGBLIGHT_ENABLE
 
 #ifdef AUDIO_ENABLE
 #define C6_AUDIO
-#define STARTUP_SONG SONG(IMPERIAL_MARCH)
 #define NO_MUSIC_MODE
 #endif
 
@@ -79,4 +68,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #elif KEYBOARD_orthodox_rev3
 #define PRODUCT         Drashna Hacked Orthodox Rev.3
 #endif
+
 #endif
index c0a3486891426e3e60150d3b3642e47b03280760..a70da63bb68b8ea8ad4e4859728b7a0d4bc4ada5 100644 (file)
@@ -32,6 +32,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define _______ KC_TRNS
 #define XXXXXXX KC_NO
 
+#define MG_NKRO MAGIC_TOGGLE_NKRO
+
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 [_QWERTY] = KEYMAP_wrapper(\
@@ -63,21 +65,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 
 [_LOWER] = KEYMAP(\
-  KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                               KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
-  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F11,  KC_F12,          _______, KC_RCTL,          XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
-  _______, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______, _______, _______,         _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT,  KC_END,  _______ \
-),
-
-[_RAISE] = KEYMAP(\
   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                                                                  KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \
   KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F11,  KC_F12,          _______, _______,          XXXXXXX, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, \
   _______, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______, _______, _______,         _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT,  KC_PGDN, _______ \
 ),
 
+[_RAISE] = KEYMAP(\
+  KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                               KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
+  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F11,  KC_F12,          _______, KC_RCTL,          XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
+  _______, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______, _______, _______,         _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT,  KC_END,  _______ \
+),
+
 [_ADJUST] = KEYMAP(\
-  KC_MAKE,KC_RESET, _______, _______, _______, _______,                                                               _______, _______, _______, _______, _______, _______,  \
+  KC_MAKE,KC_RESET, EPRM,    _______, _______, _______,                                                               _______, _______, _______, _______, _______, _______,  \
   RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON,  AUD_OFF, AG_NORM,          _______, _______,         _______, _______,          AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), \
-  KC_RGB_T,RGB_HUD, MU_ON,   MU_OFF,  MU_TOG,  MU_MOD,  _______, _______, _______,         _______, _______, _______, MAGIC_TOGGLE_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY  \
+  KC_RGB_T,RGB_HUD, MU_ON,   MU_OFF,  MU_TOG,  MU_MOD,  _______, _______, _______,         _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY  \
 )
 
 
index 02786cfc7d226b716aa1b4c5223874225eb27d56..cc87e813d1457e714c56277b62d6b6e799d1b07d 100644 (file)
@@ -31,31 +31,21 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1
-#define RGBLIGHT_SLEEP
 #define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 300
 #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
-
 #endif // RGBLIGHT_ENABLE
 
-#define TAPPING_TOGGLE  1
-
-#ifdef AUDIO_ENABLE
-#define C6_AUDIO
-#define STARTUP_SONG SONG(IMPERIAL_MARCH)
-#define GOODBYE_SONG  SONG(SONIC_RING)
-#endif
 
 #undef LOCKING_SUPPORT_ENABLE
 #undef LOCKING_RESYNC_ENABLE
 
 #ifndef NO_DEBUG
 #define NO_DEBUG
-#endif // NO_DEBUG
-
-/* disable print */
+#endif // !NO_DEBUG
 #ifndef NO_PRINT
 #define NO_PRINT
-#endif // NO_PRINT
+#endif // !NO_PRINT
+
 /* disable action features */
 //#define NO_ACTION_LAYER
 //#define NO_ACTION_TAPPING
@@ -67,8 +57,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define PRODUCT   Drashnas Viterbi Macro Pad
 
 #define USE_I2C
+
+#ifdef AUDIO_ENABLE
+#define C6_AUDIO
 #define NO_MUSIC_MODE
-#define half_KEYMAP( \
+#endif
+
+#define LAYOUT_ortho_5x7( \
     L00, L01, L02, L03, L04, L05, L06, \
     L10, L11, L12, L13, L14, L15, L16, \
     L20, L21, L22, L23, L24, L25, L26, \
@@ -82,4 +77,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
         L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
         L40, L41, L42, L43, L44, L45, L46, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \
     )
+
 #endif
index 585695243625d440d9c4c988e5626612839d3071..cff6ebf69819e1eeb37cf501f9dba3fd594afb48 100644 (file)
@@ -26,7 +26,7 @@ extern keymap_config_t keymap_config;
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
-  [_NUMLOCK] = half_KEYMAP(
+  [_NUMLOCK] = LAYOUT_ortho_5x7(
       LMACRO,  DIABLO,  GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, \
       MEDIA,   KC_CALC, COVECUBE,KC_P7,   KC_P8,   KC_P9,   KC_PAST, \
       KC_HOME, KC_DEL,  KC_PGUP, KC_P4,   KC_P5,   KC_P6,   KC_PMNS, \
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_LEFT, KC_DOWN, KC_RGHT, KC_P0,   KC_PDOT, KC_COLN, KC_PENT \
   ),
 
-  [_DIABLO] = half_KEYMAP(
+  [_DIABLO] = LAYOUT_ortho_5x7(
       KC_ESC,  DIABLO,  KC_V,    KC_D,    XXXXXXX, XXXXXXX, KC_L, \
       KC_TAB,  KC_S,    KC_F,    KC_I,    KC_M,    KC_T,    KC_J, \
       KC_Q,    KC_1,    KC_2,    KC_3,    KC_4,    KC_G,    KC_F, \
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_LALT, KC_F4,   KC_F5,   KC_F8,   KC_F9,   KC_F10,  SFT_T(KC_SPACE) \
   ),
 
-  [_GAMEPAD] = half_KEYMAP(  // Game pad layout designed primarily for Overwatch
+  [_GAMEPAD] = LAYOUT_ortho_5x7(  // Game pad layout designed primarily for Overwatch
       LMACRO,  KC_ESC,  GAMEPAD, KC_1,    KC_2,    KC_3,    KC_4, \
       MEDIA,   KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T, \
       KC_Z,    KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G, \
@@ -50,15 +50,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_F1,   KC_U,    KC_I,    KC_Y,    KC_V,    KC_SPC,  KC_V \
   ),
 
-  [_MACROS] = half_KEYMAP(
+  [_MACROS] = LAYOUT_ortho_5x7(
       LMACRO,      KC_OVERWATCH,GAMEPAD,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
       KC_C9,       XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
       KC_SYMM,     KC_TORB,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
       KC_GLHF,     KC_GOODGAME, KC_GGEZ,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
-      KC_SALT,     KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM,      XXXXXXX,     XXXXXXX \
+      KC_SALT,     KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM,      XXXXXXX,     KC_PENT \
   ),
 
-  [_COVECUBE] = half_KEYMAP(
+  [_COVECUBE] = LAYOUT_ortho_5x7(
       XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
       XXXXXXX,     XXXXXXX,     COVECUBE,    XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
       XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX, \
@@ -66,9 +66,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX \
   ),
 
-  [_MEDIA] = half_KEYMAP(
+  [_MEDIA] = LAYOUT_ortho_5x7(
       KC_MAKE, KC_RESET,MU_TOG,  AUD_ON,  AUD_OFF, KC_FXCL, RGB_SAD, \
-      MEDIA,   XXXXXXX, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, \
+      MEDIA,   EPRM,    KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, \
       RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, \
       KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, \
       KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI \
index 83c37115cae42134fcfdf26045dff9df7320dec7..4dc6bbdac7afcab0cc53d4a068d97d63e2ead767 100644 (file)
@@ -9,3 +9,4 @@ AUDIO_ENABLE      = yes
 NKRO_ENABLE       = yes
 
 CUSTOM_MATRIX = no
+LAYOUTS = ortho_5x7
diff --git a/layouts/community/ergodox/drashna/README.md b/layouts/community/ergodox/drashna/README.md
new file mode 100644 (file)
index 0000000..e77defc
--- /dev/null
@@ -0,0 +1,25 @@
+Overview
+========
+
+This is my personal Ergodox EZ configuration, and my daily driver.
+
+Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
+
+How to build 
+------------
+make ergodox_ez:drashna:teensy
+
+Layers
+------
+* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
+* SYMB: F keys across the top, symbols on the left and numpad on the right.
+* GAMEPAD: This is the QWERTY layout shifted to the right for FPS type games. Destiny and Overwatch are the primary games for this.
+* 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.
+* MOUSE: mouse navigation
+
+All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
+
+Ergodox Specific Code
+---------------------
+
+Aside from my userspace code, this includes LED indications for Shift (Green LED), Ctrl (Red LED), and Alt (Blue LED).
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h
new file mode 100644 (file)
index 0000000..27124db
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include QMK_KEYBOARD_CONFIG_H
+
+#ifdef RGBLIGHT_ENABLE
+#undef RGBLIGHT_SAT_STEP 
+#define RGBLIGHT_SAT_STEP 12
+#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7
+#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7
+#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
+#endif // RGBLIGHT_ENABLE
+
+
+#undef PRODUCT
+#define PRODUCT         DrashnaDox - Hacked ErgoDox EZ Shine
+
+#endif
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
new file mode 100644 (file)
index 0000000..6801f4f
--- /dev/null
@@ -0,0 +1,365 @@
+/*
+This is the keymap for the keyboard
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+#include "drashna.h"
+
+
+
+//enum more_custom_keycodes {
+//    KC_P00 = NEW_SAFE_RANGE
+//};
+
+
+//define layer change stuff for underglow indicator
+bool skip_leds = false;
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   = +  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  | TG(4)|           | TG(4)| 6 ^  | 7 &  |  8 * | 9 (  |  0 ) |  - _   |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   TAB  |   Q  |   W  |   E  |   R  |   T  | TG(3)|           |TG(3) |   Y  |   U  |   I  |   O  |   P  |  \ |   |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |  Bksp  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |  ' "   |
+ * |--------+------+------+------+------+------| TG(2)|           | TG(2)|------+------+------+------+------+--------|
+ * | Shift  |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |  , < |  . > |  ? / | Shift  |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | `/SYM|  ' " | LGUI |  [ { | ] }  |                                       | LEFT | DOWN |  UP  |RIGHT | SYMB |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,--------------.       ,--------------.
+ *                                        |Alt/Ap|  Win  |       | Alt  |Ctl/Esc|
+ *                                 ,------|------|-------|       |------+-------+------.
+ *                                 |      |      | Home  |       | PgUp |       |      |
+ *                                 | Space| Bksp |-------|       |------|  DEL  |Enter |
+ *                                 |      |      | End   |       | PgDn |       |      |
+ *                                 `---------------------'       `---------------------'
+ */
+  [_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
+        // left hand                                                                       // right hand
+             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_MINS,
+             KC_TAB,  _________________QWERTY_L1_________________, TG(_DIABLO),         TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS,
+           TG(_MODS), _________________QWERTY_L2_________________,                                   _________________QWERTY_R2_________________, GUI_T(KC_QUOT),
+             KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF,
+    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
+                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
+                                                                   KC_HOME,                 KC_PGUP,
+                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
+
+
+    ),
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Del    |   Q  |   W  |   F  |   P  |   G  |  L1  |           |  L1  |   J  |   L  |   U  |   Y  |   ;  |   \    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | BkSp   |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |O / L2|   '    |
+ * |--------+------+------+------+------+------| OVER |           | Meh  |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |   ,  |   .  |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
+ *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper(
+        // left hand                                                                       // right hand
+             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_MINS,
+             KC_TAB,  _________________COLEMAK_L1________________, TG(_DIABLO),         TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS,
+           TG(_MODS), _________________COLEMAK_L2________________,                                   _________________COLEMAK_R2________________, GUI_T(KC_QUOT),
+             KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF,
+    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
+                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
+                                                                   KC_HOME,                 KC_PGUP,
+                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
+    ),
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   \    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Del    |   '  |   ,  |   .  |   P  |   Y  |  L1  |           |  L1  |   F  |   G  |   C  |   R  |   L  |   /    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | BkSp   |   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   H  |   T  |   N  |S / L2|   -    |
+ * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
+ * | LShift |:/Ctrl|   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |Z/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
+ *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[_DVORAK] = LAYOUT_ergodox_pretty_wrapper(
+        // left hand        // right hand
+             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_BSLS,
+             KC_TAB,  _________________DVORAK_L1_________________, TG(_DIABLO),         TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH,
+           TG(_MODS), _________________DVORAK_L2_________________,                                   _________________DVORAK_R2_________________, GUI_T(KC_MINS),
+             KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF,
+    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
+                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
+                                                                   KC_HOME,                 KC_PGUP,
+                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
+    ),
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Del    |   Q  |   D  |   R  |   W  |   B  |  L1  |           |  L1  |   J  |   F  |   U  |   P  |   ;  |   \    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | BkSp   |   A  |   S  |   H  |   T  |   D  |------|           |------|   Y  |   N  |   E  |   O  |   I  |   '    |
+ * |--------+------+------+------+------+------| OVER |           | Meh  |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl|   X  |   M  |   C  |   V  |      |           |      |   K  |   L  |   ,  |   .  |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
+ *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper(
+        // left hand
+             KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    OSL(_MOUS),           OSL(_MOUS), KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
+             KC_TAB,  _________________WORKMAN_L1________________, TG(_DIABLO),         TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS,
+           TG(_MODS), _________________WORKMAN_L2________________,                                   _________________WORKMAN_R2________________, GUI_T(KC_QUOT),
+             KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD),       TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF,
+    LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,                                   ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
+                                                    ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE),
+                                                                   KC_HOME,                 KC_PGUP,
+                                                 KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
+    ),
+
+  [_MODS] = LAYOUT_ergodox_pretty(
+             _______, _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______, _______,
+             _______, _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______, _______,
+             _______, _______, _______, _______, _______, _______,                                   _______, _______, _______, _______, _______, _______,
+             KC_LSFT, _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______, KC_RSFT,
+             _______, _______, _______, _______, _______,                                                     _______, _______, _______, _______, _______,
+                                                          _______, _______,                 _______, _______,
+                                                                   _______,                 _______,
+                                                 _______, _______, _______,                 _______, _______, _______
+            ),
+
+    /* Keymap 3: Symbol Layer
+*
+* ,--------------------------------------------------.           ,--------------------------------------------------.
+* |   ESC  |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  | F10  |   F11  |
+* |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+* | VERSION|   !  |   @  |  {   |   }  |  |   |      |           |      |  +   |   7  |   8  |   9  |  *   |   F12  |
+* |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+* |  MAKE  |   #  |   $  |  (   |   )  |  `   |------|           |------|  -   |   4  |   5  |   6  |  /   | PrtSc  |
+* |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+* |  RESET |   %  |   ^  |  [   |   ]  |  ~   |      |           |      | NUM  |   1  |   2  |   3  |  =   |  PAUSE |
+* `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+*   |  LT0 |   &  |   *  |  :   |   ;  |                                       |      |   0  | NUM. | ENT  |  ENT |
+*   `----------------------------------'                                       `----------------------------------'
+*                                        ,-------------.       ,-------------.
+*                                        | RGBM | RED  |       | OFF  | SOLID|
+*                                 ,------|------|------|       |------+------+------.
+*                                 |      |      | GREEN|       |      |      |      |
+*                                 | RGB  | RGB  |------|       |------| NUM0 | NUME |
+*                                 | DARK |BRITE | BLUE |       |      |      |      |
+*                                 `--------------------'       `--------------------'
+*/
+  [_SYMB] = LAYOUT_ergodox_pretty(
+             EPRM,    KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_QWERTY,             KC_QWERTY, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,
+            KC_RESET, KC_EXLM, KC_AT,   KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN,            KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12,
+             KC_MAKE, KC_HASH, KC_DLR,  KC_LPRN, KC_RPRN, KC_GRAVE,                                  KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN,
+             VRSN,    KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_COLEMAK,           KC_COLEMAK, KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE,
+             KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN,                                                     KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS,
+                                                          RGB_SMOD, KC_RGB_T,               KC_TRNS, KC_TRNS,
+                                                                    RGB_HUI,                KC_TRNS,
+                                                 RGB_M_R, RGB_M_SW, RGB_HUD,                KC_PDOT, KC_KP_0, KC_PENT
+            ),
+
+/* Keymap 4: Customized Overwatch Layout
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   ESC  |      |      |      |      |      |      |           |      |  F9  | F10  | F11  |  F12 |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   F1   |  K   |  Q   |  W   |  E   |  R   |  T   |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |   TAB  |  G   |  A   |  S   |  D   |  F   |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |  LCTR  | LSHFT|  Z   |  X   |  C   |  V   |      |           |      |   N  |  M   |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |   J  |  U   |  I   |  Y   |  T   |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |  O   |  P   |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      | LGUI |       |      |      |      |
+ *                                 |  V   | SPACE|------        |------|      | Enter|
+ *                                 |      |      |  H   |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+  [_GAMEPAD] = LAYOUT_ergodox_pretty(
+             KC_ESC,  KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV),      KC_TRNS, KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NO,   KC_NO,
+             KC_F1,   KC_K,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                    KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_TAB,  KC_G,    KC_A,    KC_S,    KC_D,    KC_F,                                      KC_I,    KC_O,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_LCTL, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_TRNS,            TG(_GAMEPAD), KC_N,    KC_M,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_G,    KC_U,    KC_I,    KC_Y,    KC_T,                                                        KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_NO,
+                                                          KC_O,    KC_P,                    KC_HYPR, MAGIC_TOGGLE_NKRO,
+                                                                   KC_LGUI,                 KC_NO,
+                                                 KC_V,    KC_SPC,  KC_H,                    KC_PGDN, KC_DEL,  KC_ENTER
+            ),
+
+/* Keymap 3:
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   ESC  |  V   |  D   | ALT  |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   TAB  |  S   |  I   |  F   |  M   |  T   |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |    Q   |  1   |  2   |  3   |  4   |  G   |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | NUMLOCK| NUM1 | NUM2 | NUM3 | NUM4 |  Z   |      |           |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | LCTL | MAC1 | MAC2 | MAC3 | MAC4 |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |   L  |  J   |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |  G   |       |      |      |      |
+ *                                 | SPACE|  Q   |------        |------|      |      |
+ *                                 | SHIFT| ALT  | 0MAC |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+  [_DIABLO] = LAYOUT_ergodox_pretty(
+             KC_ESC,  KC_V,    KC_D,    KC_LALT, KC_NO,   KC_NO,   KC_NO,                   KC_TRNS, KC_F9,   KC_F10,   KC_F11,  KC_F12,  KC_NO,   KC_NO,
+             KC_TAB,  KC_S,    KC_I,    KC_F,    KC_M,    KC_T,    KC_TRNS,                 KC_TRNS, KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_Q,    KC_1,    KC_2,    KC_3,    KC_4,    KC_G,                                      KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z,    KC_NO,                   KC_NO,   KC_N,    KC_M,     KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                                                       KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,
+                                                             KC_L,    KC_J,                 KC_NO,   KC_NO,
+                                                                      KC_F,                 KC_NO,
+                          SFT_T(KC_SPACE),  ALT_T(KC_Q),   KC_DIABLO_CLEAR,                 KC_PGDN, KC_DEL,  KC_ENT
+            ),
+
+/* Keymap 4: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      | MsUp |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |MsLeft|MsDown|MsRght|      |      |------|           |------|      |      | Acc0 | Acc1 | Acc2 |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        | Acc0 | Acc1 | Acc2 |      |      |      |           |      |      | Mute |VolDn |VolUp |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       | Play | Stop |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      | MWUp |       |      |      |      |
+ *                                 | Lclk | Rclk |------|       |------| MBn4 | MBn5 |
+ *                                 |      |      | MWDn |       | Mclk |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+  [_MOUS] = LAYOUT_ergodox_pretty(
+             KC_NO,   KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS,                 KC_TRNS, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_NO,   KC_NO,   KC_MS_U, KC_NO,   KC_NO,   KC_NO,   KC_TRNS,                 KC_TRNS, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+             KC_NO,   KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,   KC_NO,                                     KC_NO,   KC_ACL0, KC_ACL1, KC_ACL2, KC_NO,   KC_NO,
+             KC_NO,   KC_ACL0, KC_ACL1, KC_ACL2, KC_NO,   KC_NO,   KC_TRNS,                 KC_TRNS, KC_NO,   KC_MUTE, KC_VOLD, KC_VOLU, KC_NO,   KC_NO,
+             KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                                                       KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+                                                          KC_NO,   KC_NO,                   KC_NO,   KC_NO,
+                                                                   KC_WH_U,                 KC_NO,
+                                                 KC_BTN1, KC_BTN2, KC_WH_D,                 KC_BTN3, KC_BTN4, KC_BTN5
+            ),
+
+};
+
+
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+
+  //switch (keycode) {
+  //  case KC_P00:
+  //    if (!record->event.pressed) {
+  //      register_code(KC_KP_0);
+  //      unregister_code(KC_KP_0);
+  //      register_code(KC_KP_0);
+  //      unregister_code(KC_KP_0);
+  //    }
+  //    return false;
+  //    break;
+  //}
+  return true;
+}
+
+
+
+void matrix_init_keymap(void) { // Runs boot tasks for keyboard
+};
+
+
+void matrix_scan_keymap(void) {  // runs frequently to update info
+  uint8_t modifiders = get_mods();
+  uint8_t led_usb_state = host_keyboard_leds();
+  uint8_t one_shot = get_oneshot_mods();
+
+  if (!skip_leds) {
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+
+    // Since we're not using the LEDs here for layer indication anymore,
+    // then lets use them for modifier indicators.  Shame we don't have 4...
+    // Also, no "else", since we want to know each, independently.
+    if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
+      ergodox_right_led_2_on();
+      ergodox_right_led_2_set( 10 );
+    }
+    if (modifiders & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) {
+      ergodox_right_led_1_on();
+      ergodox_right_led_1_set( 10 );
+    }
+    if (modifiders & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
+      ergodox_right_led_3_on();
+      ergodox_right_led_3_set( 10 );
+    }
+
+  }
+
+};
+
diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk
new file mode 100644 (file)
index 0000000..12f100d
--- /dev/null
@@ -0,0 +1,7 @@
+TAP_DANCE_ENABLE  = yes
+SLEEP_LED_ENABLE  = no  # Breathing sleep LED during USB suspend
+COMMAND_ENABLE    = yes  # Commands for debug and configuration
+RGBLIGHT_ENABLE   = yes
+CONSOLE_ENABLE    = no
+BOOTMAGIC_ENABLE  = yes
+
diff --git a/users/drashna/config.h b/users/drashna/config.h
new file mode 100644 (file)
index 0000000..f33721d
--- /dev/null
@@ -0,0 +1,61 @@
+#ifndef USERSPACE_CONFIG_H
+#define USERSPACE_CONFIG_H
+
+
+#ifdef AUDIO_ENABLE
+#define STARTUP_SONG SONG(IMPERIAL_MARCH)
+#define GOODBYE_SONG  SONG(SONIC_RING)
+#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+                                  SONG(COLEMAK_SOUND), \
+                                  SONG(DVORAK_SOUND), \
+                                  SONG(PLOVER_SOUND) \
+                                }
+#endif
+
+#ifdef RGBLIGHT_ENABLE
+#define RGBLIGHT_SLEEP
+#endif // RGBLIGHT_ENABLE
+
+
+
+#ifndef ONESHOT_TAP_TOGGLE
+#define ONESHOT_TAP_TOGGLE 2
+#endif // !ONESHOT_TAP_TOGGLE
+
+#ifndef ONESHOT_TIMEOUT
+#define ONESHOT_TIMEOUT 3000
+#endif// !ONESHOT_TIMEOUT
+
+#ifndef QMK_KEYS_PER_SCAN
+#define QMK_KEYS_PER_SCAN 4
+#endif // !QMK_KEYS_PER_SCAN
+
+
+
+// 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.)
+#define IGNORE_MOD_TAP_INTERRUPT
+#undef PERMISSIVE_HOLD
+#undef PREVENT_STUCK_MODIFIERS
+
+#ifndef TAPPING_TOGGLE
+#define TAPPING_TOGGLE  1
+#endif
+
+#ifdef TAPPING_TERM
+#undef TAPPING_TERM
+#endif
+#define TAPPING_TERM 150
+
+
+// Disable action_get_macro and fn_actions, since we don't use these
+// and it saves on space in the firmware.
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+
+
+#endif // !USERSPACE_CONFIG_H
+
index 678570958b6eb858f9829ba5de17566d77ac41b1..09b3891dd7b2ee76d262b3bc28421e2964f079ac 100644 (file)
@@ -22,7 +22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "secrets.h"
 #else
 // `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware
-// And I'm not familar enough to know which is better or why...
+// And I'm not familiar enough to know which is better or why...
 PROGMEM const char secret[][64] = {
   "test1",
   "test2",
@@ -32,20 +32,13 @@ PROGMEM const char secret[][64] = {
 };
 #endif
 
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2]       = SONG(QWERTY_SOUND);
-float tone_dvorak[][2]       = SONG(DVORAK_SOUND);
-float tone_colemak[][2]      = SONG(COLEMAK_SOUND);
-float tone_workman[][2]      = SONG(PLOVER_SOUND);
-float tone_hackstartup[][2]  = SONG(ONE_UP_SOUND);
-#endif
 
 #ifdef FAUXCLICKY_ENABLE
 float fauxclicky_pressed_note[2]  = MUSICAL_NOTE(_A6, 2);  // (_D4, 0.25);
 float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125);
 #else
-float fauxclicky_pressed[][2]             = SONG(E__NOTE(_A6)); // change to your tastes
-float fauxclicky_released[][2]             = SONG(E__NOTE(_A6)); // change to your tastes
+float fauxclicky_pressed[][2]             = SONG(S__NOTE(_A6)); // change to your tastes
+float fauxclicky_released[][2]             = SONG(S__NOTE(_A6)); // change to your tastes
 #endif
 
 bool faux_click_enabled = false;
@@ -191,7 +184,7 @@ void matrix_init_user(void) {
 #endif
   matrix_init_keymap();
 }
-// No global matrix scan code, so just run keymap's matix
+// No global matrix scan code, so just run keymap's matrix
 // scan function
 void matrix_scan_user(void) {
 #ifdef TAP_DANCE_ENABLE  // Run Diablo 3 macro checking code.
@@ -202,17 +195,20 @@ void matrix_scan_user(void) {
 
 // This block is for all of the gaming macros, as they were all doing
 // the same thing, but with differring text sent.
-void send_game_macro(const char *str) {
-  clear_keyboard();
-  register_code(is_overwatch ? KC_BSPC : KC_ENTER);
-  unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
-  wait_ms(50);
-  send_string(str);
-  register_code(KC_ENTER);
-  unregister_code(KC_ENTER);
+bool send_game_macro(const char *str, keyrecord_t *record, bool override) {
+  if (!record->event.pressed || override) {
+    clear_keyboard();
+    register_code(is_overwatch ? KC_BSPC : KC_ENTER);
+    unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
+    wait_ms(50);
+    send_string(str);
+    register_code(KC_ENTER);
+    unregister_code(KC_ENTER);
+  }
+  if (override) wait_ms(3000);
+  return false;
 }
 
-
 // Sent the default layer
 void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
@@ -221,7 +217,7 @@ void persistent_default_layer_set(uint16_t default_layer) {
 
 
 // Defines actions tor my global custom keycodes. Defined in drashna.h file
-// Then runs the _keymap's recod handier if not processed here
+// Then runs the _keymap's record handier if not processed here
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
 // If console is enabled, it will print the matrix position and status of each key pressed
@@ -230,7 +226,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 #endif //CONSOLE_ENABLE
 
 // Run custom faux click code, but only if faux clicky is enabled
-#ifdef AUDIO_ENABLE 
+#ifdef AUDIO_ENABLE
   if ( (faux_click_enabled && keycode != KC_FXCL) || (!faux_click_enabled && keycode == KC_FXCL) ) {
     if (record->event.pressed) {
       PLAY_SONG(fauxclicky_pressed);
@@ -245,37 +241,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {
   case KC_QWERTY:
     if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
-      PLAY_SONG(tone_qwerty);
-#endif //AUDIO_ENABLE
-      persistent_default_layer_set(1UL << _QWERTY);
+      set_single_persistent_default_layer(_QWERTY);
     }
     return false;
     break;
   case KC_COLEMAK:
     if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
-      PLAY_SONG(tone_colemak);
-#endif //AUDIO_ENABLE
-      persistent_default_layer_set(1UL << _COLEMAK);
+      set_single_persistent_default_layer(_COLEMAK);
     }
     return false;
     break;
   case KC_DVORAK:
     if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
-      PLAY_SONG(tone_dvorak);
-#endif //AUDIO_ENABLE
-      persistent_default_layer_set(1UL << _DVORAK);
+      set_single_persistent_default_layer(_DVORAK);
     }
     return false;
     break;
   case KC_WORKMAN:
     if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
-      PLAY_SONG(tone_workman);
-#endif //AUDIO_ENABLE
-      persistent_default_layer_set(1UL << _WORKMAN);
+      set_single_persistent_default_layer(_WORKMAN);
     }
     return false;
     break;
@@ -328,7 +312,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     }
     return false;
     break;
-  case KC_RESET: // Custom RESET code that setr RGBLights to RED
+
+
+  case KC_RESET: // Custom RESET code that sets RGBLights to RED
     if (!record->event.pressed) {
 #ifdef RGBLIGHT_ENABLE
       rgblight_enable();
@@ -339,6 +325,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     }
     return false;
     break;
+
+
   case EPRM: // Resets EEPROM
     if (record->event.pressed) {
       eeconfig_init();
@@ -347,11 +335,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     break;
   case VRSN: // Prints firmware version
     if (record->event.pressed) {
-      SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+      SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
     }
     return false;
     break;
-  case KC_SECRET_1 ... KC_SECRET_5: // Custom 
+
+
+  case KC_SECRET_1 ... KC_SECRET_5: // Secrets!  Externally defined strings, not stored in repo
     if (!record->event.pressed) {
       clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
       send_string_P(secret[keycode - KC_SECRET_1]);
@@ -364,61 +354,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 // Only enables for the viterbi, basically,
 // to save on firmware space, since it's limited.
 #if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez))
-
-
   case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros
     if (record->event.pressed) { is_overwatch = !is_overwatch; }
 #ifdef RGBLIGHT_ENABLE
     is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
 #endif //RGBLIGHT_ENABLE
-    return false;
-    break;
-
-  case KC_SALT:
-    if (!record->event.pressed) { send_game_macro("Salt, salt, salt..."); }
     return false; break;
+  case KC_SALT:
+    return send_game_macro("Salt, salt, salt...", record, false);
   case KC_MORESALT:
-    if (!record->event.pressed) { send_game_macro("Please sir, can I have some more salt?!"); }
-    return false; break;
+    return  send_game_macro("Please sir, can I have some more salt?!", record, false);
   case KC_SALTHARD:
-    if (!record->event.pressed) { send_game_macro("Your salt only makes me harder, and even more aggressive!"); }
-    return false; break;
+    return send_game_macro("Your salt only makes me harder, and even more aggressive!", record, false);
   case KC_GOODGAME:
-    if (!record->event.pressed) { send_game_macro("Good game, everyone!"); }
-    return false; break;
+    return send_game_macro("Good game, everyone!", record, false);
   case KC_GLHF:
-    if (!record->event.pressed) { send_game_macro("Good luck, have fun!!!"); }
-    return false; break;
+    return send_game_macro("Good luck, have fun!!!", record, false);
   case KC_SYMM:
-    if (!record->event.pressed) { send_game_macro("Left click to win!"); }
-    return false; break;
+    return send_game_macro("Left click to win!", record, false);
   case KC_JUSTGAME:
-    if (!record->event.pressed) { send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); }
-    return false; break;
+    return send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.", record, false);
   case KC_TORB:
-    if (!record->event.pressed) { send_game_macro("That was positively riveting!"); }
-    return false; break;
+    return send_game_macro("That was positively riveting!", record, false);
   case KC_AIM:
-    if (!record->event.pressed) {
-      send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!");
-      wait_ms(3000);
-      send_game_macro("Wait! That aim is TOO good!  You're clearly using an aim hack! CHEATER!");
-    }
-    return false; break;
+    send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!", record, true);
+    return send_game_macro("Wait! That aim is TOO good!  You're clearly using an aim hack! CHEATER!", record, false);
   case KC_C9:
-    if (!record->event.pressed) { send_game_macro("OMG!!!  C9!!!"); }
-    return false; break;
+    return send_game_macro("OMG!!!  C9!!!", record, false);
   case KC_GGEZ:
-    if (!record->event.pressed) { send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!"); }
-    return false; break;
+    return send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!", record, false);
 #endif // !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez))
 
 
 #ifdef TAP_DANCE_ENABLE
-  case KC_DIABLO_CLEAR:  // reset all Diable timers, disabling them
+  case KC_DIABLO_CLEAR:  // reset all Diablo timers, disabling them
     if (record->event.pressed) {
       uint8_t dtime;
-
       for (dtime = 0; dtime < 4; dtime++) {
         diablo_key_time[dtime] = diablo_times[0];
       }
@@ -437,14 +408,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     if (record->event.pressed) {
       rgb_layer_change = !rgb_layer_change;
       if (rgb_layer_change) {
-        layer_state_set(layer_state); // This is needed to immediately set the layer color (looks beetter)
+        layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
       }
     }
 #endif // RGBLIGHT_ENABLE
     return false; break;
 #ifdef RGBLIGHT_ENABLE
   case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
-    if (record->event.pressed) { //This disrables layer indication, as it's assumed that if you're changing this ... you want that disabled
+    if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
       rgb_layer_change = false;
     }
     return true; break;
@@ -534,7 +505,7 @@ uint32_t layer_state_set_user(uint32_t state) {
 
 // Any custom LED code goes here.
 // So far, I only have keyboard specific code,
-// So nothing goes here. 
+// So nothing goes here.
 void led_set_user(uint8_t usb_led) {
   led_set_keymap(usb_led);
 }
index 8a022cd14bd091ac3ddf33bda79c958437cb3b63..0df9abb46829b3e6772a5d5bb4e2bdbab0d5207e 100644 (file)
@@ -17,10 +17,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef USERSPACE
 #define USERSPACE
-
 #include "quantum.h"
 
-// Define layer names 
+// Define layer names
 #define _QWERTY 0
 #define _NUMLOCK 0
 #define _COLEMAK 1
@@ -118,6 +117,12 @@ enum userspace_custom_keycodes {
   NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
 };
 
+#define KC_SEC1 KC_SECRET_1
+#define KC_SEC2 KC_SECRET_2
+#define KC_SEC3 KC_SECRET_3
+#define KC_SEC4 KC_SECRET_4
+#define KC_SEC5 KC_SECRET_5
+
 #ifdef TAP_DANCE_ENABLE
 enum {
   TD_D3_1 = 0,
@@ -129,8 +134,8 @@ enum {
 
 
 // Custom Keycodes for Diablo 3 layer
-// But since TD() doesn't work when tapdance is disabled
-// We use custom codes here, so we can substituet the right stuff
+// But since TD() doesn't work when tap dance is disabled
+// We use custom codes here, so we can substitute the right stuff
 #ifdef TAP_DANCE_ENABLE
 #define KC_D3_1 TD(TD_D3_1)
 #define KC_D3_2 TD(TD_D3_2)
@@ -146,26 +151,10 @@ enum {
 // OSM keycodes, to keep things clean and easy to change
 #define KC_MLSF OSM(MOD_LSFT)
 #define KC_MRSF OSM(MOD_RSFT)
-#define ONESHOT_TIMEOUT 3000
-
-#define QMK_KEYS_PER_SCAN 8
 
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_SLEEP
-#endif // RGBLIGHT_ENABLE
 
-// 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.)
-#define IGNORE_MOD_TAP_INTERRUPT
 
-// Disable action_get_macro and fn_actions, since we don't use these
-// and it saves on space in the firmware.
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-// If we're still using the official Faux Clicky feature, substituet codes
+// If we're still using the official Faux Clicky feature, substitute codes
 // so that we don't have any unused/blank keys.
 #ifdef FAUXCLICKY_ENABLE
 #define AUD_ON  FC_ON
@@ -177,23 +166,27 @@ enum {
 
 
 
-// Since our quirky block definitions are basically a list of comma separated 
-// arguments, we need a wrapper in order for these definitions to be 
+// Since our quirky block definitions are basically a list of comma separated
+// arguments, we need a wrapper in order for these definitions to be
 // expanded before being used as arguments to the LAYOUT_xxx macro.
+#if (!defined(LAYOUT) && defined(KEYMAP))
+#define LAYOUT KEYMAP
+#endif
+
 #define LAYOUT_ergodox_wrapper(...)   LAYOUT_ergodox(__VA_ARGS__)
 #define LAYOUT_ergodox_pretty_wrapper(...)   LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define KEYMAP_wrapper(...)           KEYMAP(__VA_ARGS__)
+#define KEYMAP_wrapper(...)           LAYOUT(__VA_ARGS__)
 
 
 // Blocks for each of the four major keyboard layouts
 // Organized so we can quickly adapt and modify all of them
 // at once, rather than for each keyboard, one at a time.
-// And this allows wor much cleaner blocks in the keymaps.
+// And this allows for much cleaner blocks in the keymaps.
 // For instance Tap/Hold for Control on all of the layouts
 
 // NOTE: These are all the same length.  If you do a search/replace
 //       then you need to add/remove underscores to keep the
-//       lengths consistent. 
+//       lengths consistent.
 
 #define _________________QWERTY_L1_________________        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T
 #define _________________QWERTY_L2_________________        KC_A,    KC_S,    KC_D,    KC_F,    KC_G
@@ -212,6 +205,14 @@ enum {
 #define _________________COLEMAK_R2________________       KC_H,    KC_N,    KC_E,    KC_I,    KC_O
 #define _________________COLEMAK_R3________________       KC_K,    KC_M,    KC_COMM, KC_DOT,  CTL_T(KC_SLASH)
 
+#define ______________COLEMAK_MOD_DH_L1____________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_B
+#define ______________COLEMAK_MOD_DH_L2____________       KC_A,    KC_R,    KC_S,    KC_T,    KC_G
+#define ______________COLEMAK_MOD_DH_L3____________ CTL_T(KC_Z),   KC_X,    KC_C,    KC_D,    KC_V
+
+#define ______________COLEMAK_MOD_DH_R1____________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN
+#define ______________COLEMAK_MOD_DH_R2____________       KC_K,    KC_N,    KC_E,    KC_I,    KC_O
+#define ______________COLEMAK_MOD_DH_R3____________       KC_M,    KC_H,    KC_COMM, KC_DOT,  CTL_T(KC_SLASH)
+
 
 #define _________________DVORAK_L1_________________        KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y
 #define _________________DVORAK_L2_________________        KC_A,    KC_O,    KC_E,   KC_U,     KC_I
@@ -231,12 +232,21 @@ enum {
 #define _________________WORKMAN_R3________________       KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z)
 
 
+#define _________________NORMAN_L1_________________       KC_Q,    KC_W,    KC_D,    KC_F,    KC_K
+#define _________________NORMAN_L2_________________       KC_A,    KC_S,    KC_E,    KC_T,    KC_G
+#define _________________NORMAN_L3_________________ CTL_T(KC_Z),   KC_X,    KC_C,    KC_V,    KC_B
+
+#define _________________NORMAN_R1_________________       KC_J,    KC_U,    KC_R,    KC_L,    KC_SCLN
+#define _________________NORMAN_R2_________________       KC_J,    KC_N,    KC_I,    KC_O,    KC_U
+#define _________________NORMAN_R3_________________       KC_P,    KC_M,    KC_COMM, KC_DOT,  CTL_T(KC_SLASH)
+
+
 
 // Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN),
 // this allows us to quickly modify the bottom row for all of the layouts
 // so we don't have to alter it 4 times and hope that we haven't missed
 // anything
-#define ___________ERGODOX_BOTTOM_LEFT_____________       KC_QUOT, KC_MEH,  KC_LBRC, KC_RBRC
+#define ___________ERGODOX_BOTTOM_LEFT_____________       KC_MEH,  KC_LGUI, KC_LBRC, KC_RBRC
 #define ___________ERGODOX_BOTTOM_RIGHT____________       KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 
 
index 92792fb97a8e2f0e25849d2a934246b44f82c00e..2229a3fe09f0f87594e5ce76e43afb11813a1990 100644 (file)
@@ -3,6 +3,33 @@ Overview
 
 This is my personal userspace file.  Most of my code exists here, as it's heavily shared. 
 
+Userspace Config.h
+------------------
+
+By default, the userspace feature doesn't include a `config.h` file the way that that keyboards, revisions, keymaps and layouts handle them.  This means that if you want global configurations via userspace, it's very difficult to implement.  
+
+The reason for using seperate files here is that the `drashna.h` file doesn't get called in such a way that will actually define QMK settings.  Additionally, attempting to add it to the `config.h` files has issues. Namely, the `drashna.h` file requires the `quantum.h` file... but including this to the `config.h` attemps to redefines a bunch of settings and breaks the firmare.  Removing the `quantum.h` include means that a number of data structures no longer get added, and the `SAFE_RANGE` value is no longer defined, as well.  So we need both a `config.h` for global config, and we need a seperate h file for local settings. 
+
+However, the `rules.mk` file is included when building the firmware.  So we can hijack that process to "manually" add a `config.h`. To do so, you would need to add the following to the `rules.mk` in your userspace:
+
+```
+ifneq ("$(wildcard users/$(KEYMAP)/config.h)","")
+    CONFIG_H += users/$(KEYMAP)/config.h
+endif
+```
+
+You can replace `$(KEYMAP)` with your name, but it's not necessary. This checks for the existence of `/users/<name>/config.h`, and if it exists, includes it like every other `config.h` file, allowing you to make global `config.h` settings. 
+
+As for the `config.h` file, you want to make sure that it has an "ifdef" in it to make sure it's only used once.  So you want something like this: 
+
+```
+#ifndef USERSPACE_CONFIG_H
+#define USERSPACE_CONFIG_H
+
+// put stuff here 
+
+#endif
+```
 
 Custom userspace handlers
 -------------------------
index ab2ab607d484b9ea3d51b65b78c7aa5b1fb368c2..6d9f0664ea0af44a9d50389f2e4ca8121b944cfa 100644 (file)
@@ -1,3 +1,7 @@
 
 SRC += drashna.c
 EXTRAFLAGS        += -flto
+
+ifneq ("$(wildcard users/$(KEYMAP)/config.h)","")
+    CONFIG_H += users/$(KEYMAP)/config.h
+endif