Modified Atreus extend and Ergodox.

Atreus: Removed home row Shift. It's under the thumb anyway. Also replaced dual modifier keys with macro keys (cut, copy, paste, undo).

Ergodox: Made Colemak the default layer instead of Dvorak. Also began the process of bringing it in line with the Atreus layout I've been working on.
master
Joshua T 2016-07-26 01:44:57 -05:00
parent 15ee180f0e
commit 876a6bdd4c
5 changed files with 152 additions and 180 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -1,10 +1,10 @@
/* /*
* Keyboard: Atreus * Keyboard: Atreus
* Keymap: replicaJunction * Keymap: replicaJunction
* Version: 0.1 * Version: 0.3
* *
* This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez. * This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez.
* The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox, and I now * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox. I now
* have both keyboards, so I've designed these layouts in an effort to make switching between the * have both keyboards, so I've designed these layouts in an effort to make switching between the
* two as easy as possible. * two as easy as possible.
* *
@ -37,6 +37,13 @@
#define KCX_CS LCTL(KC_LSFT) #define KCX_CS LCTL(KC_LSFT)
#define KCX_CSA LCTL(LSFT(KC_LALT)) #define KCX_CSA LCTL(LSFT(KC_LALT))
#define KCX_LST LSFT(KC_TAB) #define KCX_LST LSFT(KC_TAB)
#define KX_COPY LCTL(KC_C)
#define KX_CUT LCTL(KC_X)
#define KX_PAST LCTL(KC_V)
#define KX_UNDO LCTL(KC_Z)
// Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers
#define PREVENT_STUCK_MODIFIERS
; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements. ; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
@ -57,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_EX] = KEYMAP( /* Extend */ [_EX] = KEYMAP( /* Extend */
_______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______, KC_LGUI, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
KC_HYPR, KCX_CSA, KCX_CA, KCX_CS, _______, _______, KCX_LST, _______, KC_TAB, _______, KX_UNDO, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, _______, KC_TAB, _______,
_______, _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, KC_PSCR _______, _______, _______, _______, KC_LSFT, _______, _______, KC_SPC, _______, _______, _______, KC_PSCR
), ),
[_NU] = KEYMAP( /* Numbers and symbols */ [_NU] = KEYMAP( /* Numbers and symbols */

View File

@ -24,9 +24,11 @@ There is still one blank key on this layout. I haven't decided what to use it fo
This layout is designed primarily for keyboard navigation. Arrow keys are easily accessible under the right hand (a welcome change from the original Atreus layout, which places them under the left hand), along with Home/End and PgUp/PgDn. This layout is designed primarily for keyboard navigation. Arrow keys are easily accessible under the right hand (a welcome change from the original Atreus layout, which places them under the left hand), along with Home/End and PgUp/PgDn.
Modifiers are also placed under the home row of the left hand. One of the single keyboard actions I use most is Shift+Ctrl+Left/Right to select a whole word; this layer makes those keypresses simple by adding the Ctrl and Shift keys in easy-to-reach locations. In fact, I liked this idea so much that I added double modifiers in the row beneath it, so I can now press Ctrl+Shift with a single key instead of pressing both keys individually. Using this layer takes some practice to remember which modifiers are under which fingers, but it makes for much less awkward hand motions when using modifiers on a regular basis. Modifiers are also placed under the home row of the left hand. One of the single keyboard actions I use most is Shift+Ctrl+Left/Right to select a whole word; this layer makes those keypresses simple by adding the Ctrl and Shift keys in easy-to-reach locations.
The Space key exists to prevent going from this layer directly into the Number layer. For the common Ctrl shortcuts, I also added some hotkeys to this layer over the letter keys they are associated with. This gives the Extend key some extra utility by letting it "feel" like a Ctrl key in some cases.
The Space key exists to prevent going from this layer directly into the Number layer. Similarly, the Shift key on the left thumb helps make sure that the Backspace function doesn't fire (the other role of this key on the base layout).
## Number and Symbol Layer ## ## Number and Symbol Layer ##

View File

@ -5,7 +5,7 @@
/* /*
* Keyboard: Ergodox * Keyboard: Ergodox
* Keymap: replicaJunction * Keymap: replicaJunction
* Version: 1.0 * Version: 1.1
* *
* This keymap is designed to complement my Atreus keyboard layout, found in keyboards/atreus. * This keymap is designed to complement my Atreus keyboard layout, found in keyboards/atreus.
* The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox, and I now * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox, and I now
@ -16,62 +16,64 @@
* here: https://colemakmods.github.io/mod-dh/ * here: https://colemakmods.github.io/mod-dh/
*/ */
#define BASE 0 // default layer #define _CO 0 // Colemak
#define CODH 1 // Colemak #define _DV 1 // Dvorak
#define QWRT 2 // QWERTY layer #define _QW 2 // QWERTY
#define SYMB 3 // symbols #define _ME 3 // media keys
#define MDIA 4 // media keys #define _NU 4 // numpad
#define UTIL 5 // keyboard utilities #define _EX 5 // extend
#define NUMP 6 // numpad #define _GA 6 // mouse overlay for gaming
#define GAME 7 // mouse overlay for gaming
#define _______ KC_TRNS // Simple alias that just makes the keymaps a bit easier to look at #define _______ KC_TRNS // Simple alias that just makes the keymaps a bit easier to look at
// Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers
#define PREVENT_STUCK_MODIFIERS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* /*
* Keymap: Colemak-ModDH * Keymap: Colemak-ModDH
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Esc | | ~SYMB| 6 | 7 | 8 | 9 | 0 | ' | * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | \ | Q | W | F | P | B | Home | | BkSp | J | L | U | Y | ; | = | * | \ | Q | W | F | P | B | Home | | BkSp | J | L | U | Y | ; | - |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | - | * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | ' |
* |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------| * |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------|
* | LShft | Z | X | C | D | V | | | | K | H | , | , | / | RShft | * | LShft | Z | X | C | D | V | | | | K | H | , | , | / | RShft |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LGui | [ | ] |CtlShf| SYMB | | Left | Up | Down | Right| \ | * | LGui | [ | ] |CtlShf| | | _EX | - | ' | Right| \ |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | LCtrl| LAlt | | MDIA | RAlt | * | LCtrl| LAlt | | Left | Right|
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | Ctl/ | Alt/ | Home | | PgUp | | SYMB/| * | Ctl/ | Alt/ | Home | | Up | | _NU/ |
* | BkSp | Del |------| |------| Enter| Space| * | BkSp | Del |------| |------| Enter| Space|
* | | | NUMP | | PgDn | | | * | | | _NU | | Down | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[CODH] = KEYMAP( [_CO] = KEYMAP(
// left hand // left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_BSLS,KC_Q, KC_W, KC_F, KC_P, KC_B, KC_HOME, KC_BSLS,KC_Q, KC_W, KC_F, KC_P, KC_B, KC_HOME,
KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G,
KC_LSFT,KC_Z, KC_X, KC_C, KC_D, KC_V, ALL_T(KC_NO), KC_LSFT,KC_Z, KC_X, KC_C, KC_D, KC_V, ALL_T(KC_NO),
KC_LGUI,KC_LBRC,KC_RBRC, LCTL(KC_LSFT), MO(SYMB), KC_LGUI,KC_LBRC,KC_RBRC, LCTL(KC_LSFT), MO(_NU),
KC_LCTL, KC_LALT, KC_LCTL, KC_LALT,
KC_HOME, KC_HOME,
CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(NUMP), CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(_NU),
// right hand // right hand
TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_QUOT, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_BSPC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,KC_EQL, KC_BSPC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,KC_MINS,
KC_M, KC_N, KC_E, KC_I, KC_O, KC_MINS, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_BSLS, KC_K, KC_H, KC_DOT, KC_COMM,KC_SLSH,KC_RSFT, KC_BSLS, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,
KC_LEFT,KC_UP, KC_DOWN,KC_RGHT,KC_BSLS, MO(_EX),KC_MINS,KC_QUOT,KC_RGHT,KC_BSLS,
MO(MDIA), KC_RALT, KC_LEFT, KC_RGHT,
KC_PGUP, KC_UP,
KC_PGDN, KC_ENT, LT(SYMB,KC_SPC) KC_DOWN, KC_ENT, LT(_NU,KC_SPC)
), ),
/* /*
@ -81,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* Backspace in the center. * Backspace in the center.
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Esc | | ~SYMB| 6 | 7 | 8 | 9 | 0 | / | * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | / |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | \ | ' | , | . | P | Y | Home | | BkSp | F | G | C | R | L | = | * | \ | ' | , | . | P | Y | Home | | BkSp | F | G | C | R | L | = |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@ -89,39 +91,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------| * |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------|
* | LShft | ; | Q | J | K | X | | | | B | M | W | V | Z | RShft | * | LShft | ; | Q | J | K | X | | | | B | M | W | V | Z | RShft |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LGui | [ | ] |CtlShf| SYMB | | Left | Up | Down | Right| \ | * | LGui | [ | ] |CtlShf| _NU | | Left | Up | Down | Right| \ |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | LCtrl| LAlt | | MDIA | RAlt | * | LCtrl| LAlt | | _ME | RAlt |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | Ctl/ | Alt/ | Home | | PgUp | | SYMB/| * | Ctl/ | Alt/ | Home | | PgUp | | _NU/ |
* | BkSp | Del |------| |------| Enter| Space| * | BkSp | Del |------| |------| Enter| Space|
* | | | NUMP | | PgDn | | | * | | | _NU | | PgDn | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
// BASE // _DV
[BASE] = KEYMAP( [_DV] = KEYMAP(
// left hand // left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_BSLS,KC_QUOT,KC_COMM, KC_DOT, KC_P, KC_Y, KC_HOME, KC_BSLS,KC_QUOT,KC_COMM, KC_DOT, KC_P, KC_Y, KC_HOME,
KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), KC_LSFT,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
KC_LGUI,KC_LBRC,KC_RBRC, LCTL(KC_LSFT), MO(SYMB), KC_LGUI,KC_LBRC,KC_RBRC, LCTL(KC_LSFT), MO(_NU),
KC_LCTL, KC_LALT, KC_LCTL, KC_LALT,
KC_HOME, KC_HOME,
CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(NUMP), CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(_NU),
// right hand // right hand
TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_EQL, KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_EQL,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_BSLS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_BSLS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
KC_LEFT,KC_UP, KC_DOWN,KC_RGHT,KC_BSLS, KC_LEFT,KC_UP, KC_DOWN,KC_RGHT,KC_BSLS,
MO(MDIA), KC_RALT, MO(_ME), KC_RALT,
KC_PGUP, KC_PGUP,
KC_PGDN, KC_ENT, LT(SYMB,KC_SPC) KC_PGDN, KC_ENT, LT(_NU,KC_SPC)
), ),
/* /*
@ -133,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* and repositioning the arrow keys at the bottom right corner. * and repositioning the arrow keys at the bottom right corner.
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Esc | |~SYMB | 6 | 7 | 8 | 9 | 0 | - | * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | LShift | Q | W | E | R | T | +L1 | | BkSp | Y | U | I | O | P | ] | * | LShift | Q | W | E | R | T | +L1 | | BkSp | Y | U | I | O | P | ] |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@ -141,156 +143,112 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| FN2 | | ~L1 |------+------+------+------+------+--------| * |--------+------+------+------+------+------| FN2 | | ~L1 |------+------+------+------+------+--------|
* | LShft | Z | X | C | V | B | | | | N | M | , | . | Up | RShft | * | LShft | Z | X | C | V | B | | | | N | M | , | . | Up | RShft |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LCtrl| ` | \ |CtlShf| SYMB | | SYMB | / | Left | Down | Right| * | LCtrl| ` | \ |CtlShf| _NU | | _NU | / | Left | Down | Right|
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | LCtrl| LAlt | | MDIA | ~GAME| * | LCtrl| LAlt | | _ME | ~_GA|
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | Home | | PgUp | | SYMB/ * | | | Home | | PgUp | | _NU/ |
* | Space| LAlt |------| |------| Enter| Space| * | Space| LAlt |------| |------| Enter| Space|
* | | | End | | PgDn | | | * | | | End | | PgDn | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[QWRT] = KEYMAP( // Layer1: QWERTY [_QW] = KEYMAP( // Layer1: QWERTY
// left hand // left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_LSFT,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, KC_LSFT,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
KC_LCTL,KC_GRV, KC_SLSH,LCTL(KC_LSFT), MO(SYMB), KC_LCTL,KC_GRV, KC_SLSH,LCTL(KC_LSFT), MO(_NU),
KC_LCTL,KC_LALT, KC_LCTL,KC_LALT,
KC_HOME, KC_HOME,
KC_SPC, KC_LALT, KC_END, KC_SPC, KC_LALT, KC_END,
// right hand // right hand
TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC,
KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_MINS, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_MINS,
KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_UP ,KC_RSFT, KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_UP ,KC_RSFT,
MO(SYMB),KC_UP, KC_LEFT,KC_DOWN,KC_RGHT, MO(_NU),KC_UP, KC_LEFT,KC_DOWN,KC_RGHT,
MO(MDIA),TG(GAME), MO(_ME),TG(_GA),
KC_PGUP, KC_PGUP,
KC_PGDN,KC_ENT,LT(SYMB,KC_SPC) KC_PGDN,KC_ENT,LT(_NU,KC_SPC)
), ),
/* /*
* Keymap: Symbol / navigation Layer * Keymap: Numbers and symbols
* *
* Inspired by Atreus. * Note that the number keys here are actually numpad keystrokes. This often doesn't matter, but it may be relevant in a few cases.
* Note the two keys on the left thumb cluster. These change the "default" layer between key layouts. * That's why the Num Lock key exists on this layer - just in case.
* The RESET button also resets the Teensy, but note bug #164. *
* This layer also contains the layout switches.
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | Up | { | } | | | | | Home | Up | End | | F12 | * | | ! | @ | { | } | & | | | | / | 7 | 8 | 9 | * | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | / | | | \ | $ |------| |------| | Left | Down | Right| | | * | | # | $ | ( | ) | ` |------| |------| | | 4 | 5 | 6 | - | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | [ | ] | ( | ) | & | | | | | PgUp | | PgDn | | | * | | % | ^ | [ | ] | ~ | | | | \ | 1 | 2 | 3 | + | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | SYMB | | | | | | | * | RESET|QWERTY|Dvorak|Colemk| | | 0 | . | = | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* |Dvorak|QWERTY| | | RESET| * |NumLck| | | | |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | |Colemk| | | | | * | | | | | | | |
* | | |------| |------| | SYMB | * | | |------| |------| | |
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
// SYMBOLS [_NU] = KEYMAP(
[SYMB] = KEYMAP(
// left hand // left hand
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
_______,KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR,_______, _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______,
_______,KC_HASH,KC_SLSH,KC_PIPE,KC_BSLS,KC_DLR, _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
_______,KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR,_______, _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______,
_______,_______,_______,_______,_______, RESET, DF(_QW), DF(_DV), DF(_CO), _______,
DF(BASE),DF(QWRT), KC_NLCK,_______,
DF(CODH), _______,
_______,_______,_______, _______,_______,_______,
// right hand // right hand
_______,KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______,_______,KC_HOME,KC_UP, KC_END, _______,KC_F12, _______, KC_SLSH, KC_P7, KC_P8, KC_P9, KC_PAST, _______,
_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PMNS, _______,
_______,_______,KC_PGUP,_______,KC_PGDN,_______,_______, _______, KC_BSLS, KC_P1, KC_P2, KC_P3, KC_PPLS, _______,
_______,_______,_______,_______,_______, KC_P0, KC_PDOT, KC_EQL, _______, _______,
_______, RESET, _______, _______,
_______, _______,
_______, _______, _______ _______, _______, _______
), ),
/* Keymap: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_MS_U, _______, _______, _______,
_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_BTN1, KC_BTN2,
_______, _______,
_______,
_______, _______, _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_MPLY,
_______, _______, _______, KC_MPRV, KC_MNXT, _______, _______,
KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
_______, _______,
_______,
_______, _______, KC_WBAK
),
/* /*
* Keymap: Number pad. * Keymap: Extend
*
* Note that the number keys here are actually numpad keystrokes. This often doesn't matter, but it may be relevant in a few cases.
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | | * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | 7 | 8 | 9 | * | | * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | 4 | 5 | 6 | + | | * | | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | 1 | 2 | 3 | / | | * | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | 0 | . | 0 | = | | * | | | | | | | | | | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | | * | | | | | |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | | | | | | * | | | | | | | |
* | | |------| |------| | Enter| * | | |------| |------| | |
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[NUMP] = KEYMAP( [_EX] = KEYMAP(
// left hand // left hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -303,14 +261,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______,_______,_______, _______,_______,_______,
// right hand // right hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______,KC_UP, KC_P7, KC_P8, KC_P9, KC_PAST,KC_F12, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, _______, _______,
KC_DOWN,KC_P4, KC_P5, KC_P6, KC_PPLS,_______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______,KC_AMPR,KC_P1, KC_P2, KC_P3, KC_PSLS,_______, _______, _______, _______, _______, _______, _______, _______,
KC_P0, KC_PDOT,KC_P0, KC_EQL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, KC_PENT _______, _______, _______
), ),
/* /*
@ -330,14 +287,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |MClick| | | | | * | | | | | | |MClick| | | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | ~GAME| * | | | | | ~_GA|
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | | | | | | * | | | | | | | |
* | | |------| |------|RClick|LClick| * | | |------| |------|RClick|LClick|
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[GAME] = KEYMAP( [_GA] = KEYMAP(
// left hand // left hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -362,7 +319,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
const uint16_t PROGMEM fn_actions[] = { const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) [1] = ACTION_LAYER_TAP_TOGGLE(_NU) // FN1 - Momentary Layer 1 (Numbers and symbols)
}; };
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@ -388,22 +345,23 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state); // uint8_t layer = biton32(layer_state);
ergodox_board_led_off(); ergodox_board_led_off();
ergodox_right_led_1_off(); ergodox_right_led_1_off();
ergodox_right_led_2_off(); ergodox_right_led_2_off();
ergodox_right_led_3_off(); ergodox_right_led_3_off();
switch (layer) {
case BASE: switch (layer_state) {
case _CO:
ergodox_right_led_1_on(); ergodox_right_led_1_on();
break; break;
case QWRT: case _QW:
ergodox_right_led_2_on(); ergodox_right_led_2_on();
case SYMB: case _NU:
ergodox_right_led_3_on(); ergodox_right_led_3_on();
break; break;
case GAME: case _GA:
ergodox_right_led_1_on(); ergodox_right_led_1_on();
ergodox_right_led_2_on(); ergodox_right_led_2_on();
default: default:

View File

@ -0,0 +1,5 @@
# replicaJunction - Ergodox (EZ) Layout
I designed this layout, along with my complimentary Atreus layout, to address the challenge of having an Ergodox as my primary home keyboard and an Atreus as my primary work board. I wanted a layout that provided symbols in comfortable locations on both keyboards - but didn't require me to learn two separate sets of symbols for the two keyboards.
I had originally used several keys as dual-role keys, where a tap would send a keypress and a long press and hold would trigger a different layer. However, after several months of experimenting with those ideas, I've begun moving away from that design due to performance. It's very hard to strike a balance between the time it takes to press a key normally while typing and the "delay" in the typing motion needed to trigger the alternate layer. I was frequently getting strange characters and artifacts because I pressed the function key + the symbol key too quickly, and the layer never shifted.