aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-01-08 21:10:42 -0500
committerGitHub <noreply@github.com>2017-01-08 21:10:42 -0500
commitd8b445b03bcc7787ca975cbd0a14c1c31f12ca11 (patch)
tree6b1c12ee6e54192c7abb09d6dc141c484e3f7324
parente7df488a92da56cf160ac64c8cc7302ab717e145 (diff)
parentcfb45027bb08ac271d43ac087952b8da71309a00 (diff)
downloadqmk_firmware-d8b445b03bcc7787ca975cbd0a14c1c31f12ca11.tar.gz
qmk_firmware-d8b445b03bcc7787ca975cbd0a14c1c31f12ca11.zip
Merge pull request #990 from replicaJunction/master
Update replicaJunction keymap
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-base-colemakdh.pngbin76319 -> 0 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.pngbin0 -> 75363 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.pngbin91555 -> 92445 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.pngbin92516 -> 91749 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.pngbin72509 -> 72856 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.pngbin73171 -> 74690 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/keymap.c136
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/readme.md16
-rw-r--r--keyboards/ergodox/config.h2
-rw-r--r--keyboards/ergodox/keymaps/replicaJunction/config.h63
-rw-r--r--keyboards/ergodox/keymaps/replicaJunction/keymap.c336
-rw-r--r--keyboards/ergodox/keymaps/replicaJunction/readme.md5
12 files changed, 536 insertions, 22 deletions
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base-colemakdh.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base-colemakdh.png
deleted file mode 100644
index 4640f9f52..000000000
--- a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base-colemakdh.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png
new file mode 100644
index 000000000..1d5bd78db
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png
index 08c2e6140..cf4db3e2c 100644
--- a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png
index 34ad03dec..30e5621e4 100644
--- a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png
index 14ae35b54..95f8be5e0 100644
--- a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png
index 6598acb27..3c445f90c 100644
--- a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/keymap.c b/keyboards/atreus/keymaps/replicaJunction/keymap.c
index 52d3677fa..d39a184d4 100644
--- a/keyboards/atreus/keymaps/replicaJunction/keymap.c
+++ b/keyboards/atreus/keymaps/replicaJunction/keymap.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Keyboard: Atreus 2 * Keyboard: Atreus
3 * Keymap: replicaJunction 3 * Keymap: replicaJunction
4 * Version: 0.3 4 * Version: 0.4
5 * 5 *
6 * This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez. 6 * This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez.
7 * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox. I now 7 * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox. I now
@@ -42,51 +42,157 @@
42#define KX_PAST LCTL(KC_V) 42#define KX_PAST LCTL(KC_V)
43#define KX_UNDO LCTL(KC_Z) 43#define KX_UNDO LCTL(KC_Z)
44 44
45#define _USER 0 // User macro
46
45; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements. 47; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
46 48
47const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50
51/*
52 * Colemak-ModDH
53 *
54 * ,----------------------------------. ,----------------------------------.
55 * | Q | W | F | P | B | | J | L | U | Y | ; |
56 * +------+------+------+------+------| +------+------+------+------+------|
57 * | A | R | S | T | G | | M | N | E | I | O |
58 * +------+------+------+------+------| +------+------+------+------+------|
59 * |Z Shft| X | C | D | V | ,------. ,------. | K | H | , | . |/ Shft|
60 * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
61 * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
62 * `----------------------------------' `------' `------' `----------------------------------'
63 *
64 */
48[_CO] = KEYMAP( 65[_CO] = KEYMAP(
49 KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, 66 KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
50 KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, 67 KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
51 SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH), 68 SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
52 KC_ESC, KC_LGUI, KC_TAB, KC_LALT, KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL 69 KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
53), 70),
54 71
72/*
73 * QWERTY
74 *
75 * ,----------------------------------. ,----------------------------------.
76 * | Q | W | E | R | T | | Y | U | I | O | P |
77 * +------+------+------+------+------| +------+------+------+------+------|
78 * | A | S | D | F | G | | H | J | K | L | ; |
79 * +------+------+------+------+------| +------+------+------+------+------|
80 * |Z Shft| X | C | V | B | ,------. ,------. | N | M | , | . |/ Shft|
81 * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
82 * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
83 * `----------------------------------' `------' `------' `----------------------------------'
84 *
85 */
55[_QW] = KEYMAP( /* Qwerty */ 86[_QW] = KEYMAP( /* Qwerty */
56 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 87 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
57 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 88 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
58 SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), 89 SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
59 KC_ESC, KC_LGUI, KC_TAB, KC_LALT, KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL 90 KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
60), 91),
61 92
93/*
94 * Extend
95 *
96 * Ctrl+` is a keyboard shortcut for the program ConEmu, which brings up a dropdown console window.
97 *
98 * Also note that some dual-role keys are overridden here with their modifiers
99 *
100 * ,----------------------------------. ,----------------------------------.
101 * | | | | |Ctrl `| | PgUp | Home | Up | End | Del |
102 * +------+------+------+------+------| +------+------+------+------+------|
103 * | Gui | Shift| Alt | Ctrl | | | PgDn | Left | Down | Right| Bksp |
104 * +------+------+------+------+------| +------+------+------+------+------|
105 * | Shift| Cut | Copy | | Paste| ,------. ,------. | | ^Tab | Tab | |Insert|
106 * +------+------+------+------+------| | Del | | Enter| +------+------+------+------+------|
107 * | | | | | | | | | | | Space|XXXXXX| | |PrntSc|
108 * `----------------------------------' `------' `------' `----------------------------------'
109 *
110 */
62[_EX] = KEYMAP( /* Extend */ 111[_EX] = KEYMAP( /* Extend */
63 KC_CAPS, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, 112 _______, _______, _______, _______, LCTL(KC_GRV), KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
64 _______, KC_LGUI, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, 113 KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
65 _______, KX_CUT, KX_COPY, _______, KX_PAST, _______, KC_TAB, KCX_LST, _______, KC_INSERT, 114 KC_LSFT, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, KC_TAB, _______, KC_INS,
66 _______, _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, KC_PSCR 115 _______, _______, _______, _______, _______, KC_DEL, KC_ENT, KC_SPC, _______, _______, _______, KC_PSCR
67), 116),
68 117
118/*
119 * Numbers and symbols
120 *
121 * ,----------------------------------. ,----------------------------------.
122 * | ! | @ | { | } | & | | / | 7 | 8 | 9 | * |
123 * +------+------+------+------+------| +------+------+------+------+------|
124 * | # | $ | ( | ) | ~ | | | | 4 | 5 | 6 | - |
125 * +------+------+------+------+------| +------+------+------+------+------|
126 * | % | ^ | [ | ] | ` | ,------. ,------. | \ | 1 | 2 | 3 | + |
127 * +------+------+------+------+------| | | | | +------+------+------+------+------|
128 * | | _GA | | | | | | | | |XXXXXX| 0 | . | = | |
129 * `----------------------------------' `------' `------' `----------------------------------'
130 *
131 */
69[_NU] = KEYMAP( /* Numbers and symbols */ 132[_NU] = KEYMAP( /* Numbers and symbols */
70 KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, 133 KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
71 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS, 134 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS,
72 KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS, 135 KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS,
73 _______, TG(_GA), _______, MO(_FN), _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______ 136 _______, TG(_GA), _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______
74), 137),
75 138
139/*
140 * Functions
141 *
142 * ,----------------------------------. ,----------------------------------.
143 * | Caps | F9 | F10 | F11 | F12 | | _USER|Whl Up| MUp |Whl Dn| |
144 * +------+------+------+------+------| +------+------+------+------+------|
145 * | | F5 | F6 | F7 | F8 | | Vol ^| MLeft| MDown|MRight| |
146 * +------+------+------+------+------| +------+------+------+------+------|
147 * | | F1 | F2 | F3 | F4 | ,------. ,------. | Vol v| | | | |
148 * +------+------+------+------+------| | | |RClick| +------+------+------+------+------|
149 * | | | |XXXXXX| | | | | | |LClick|MClick| _CO | _GA | RESET|
150 * `----------------------------------' `------' `------' `----------------------------------'
151 *
152 */
76[_FN] = KEYMAP( /* Functions */ 153[_FN] = KEYMAP( /* Functions */
77 KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_F7, KC_F8, KC_F9, KC_F10, 154 KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, M(_USER),KC_WH_U, KC_MS_U, KC_WH_D, _______,
78 KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, _______, KC_F4, KC_F5, KC_F6, KC_F11, 155 _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_R, _______,
79 _______, KC_VOLU, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, 156 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_VOLD, _______, _______, _______, _______,
80 _______, _______, _______, _______, KC_MSTP, _______, _______, _______, KC_NO, DF(_CO), DF(_QW), RESET 157 _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN3, DF(_CO), DF(_QW), RESET
81), 158),
82 159
160/*
161 * Gaming
162 *
163 * ,----------------------------------. ,----------------------------------.
164 * | | | | | | | |Whl Up| MUp |Whl Dn| |
165 * +------+------+------+------+------| +------+------+------+------+------|
166 * | | | | | | | | MLeft| MDown|MRight| |
167 * +------+------+------+------+------| +------+------+------+------+------|
168 * | Z | | | | | ,------. ,------. | | | | | |
169 * +------+------+------+------+------| | Bksp | |RClick| +------+------+------+------+------|
170 * | | _GA | | Shift| Space| | | | | |LClick|MClick| | | |
171 * `----------------------------------' `------' `------' `----------------------------------'
172 *
173 */
83[_GA] = KEYMAP( /* Gaming */ 174[_GA] = KEYMAP( /* Gaming */
84 _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, 175 _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______,
85 _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, 176 _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
86 KC_Z, _______, _______, _______, _______, KC_BTN3, _______, KC_MS_D, _______, _______, 177 KC_Z, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______,
87 _______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, _______, _______, _______, _______ 178 _______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, KC_BTN3, _______, _______, _______
88)}; 179)};
89 180
181/*
182 * Template
183 *
184 * ,----------------------------------. ,----------------------------------.
185 * | | | | | | | | | | | |
186 * +------+------+------+------+------| +------+------+------+------+------|
187 * | | | | | | | | | | | |
188 * +------+------+------+------+------| +------+------+------+------+------|
189 * | | | | | | ,------. ,------. | | | | | |
190 * +------+------+------+------+------| | | | | +------+------+------+------+------|
191 * | | | | | | | | | | | | | | | |
192 * `----------------------------------' `------' `------' `----------------------------------'
193 *
194 */
195
90const uint16_t PROGMEM fn_actions[] = { 196const uint16_t PROGMEM fn_actions[] = {
91 197
92}; 198};
@@ -95,7 +201,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
95{ 201{
96 // MACRODOWN only works in this function 202 // MACRODOWN only works in this function
97 switch(id) { 203 switch(id) {
98 case 0: 204 case _USER:
99 if (record->event.pressed) { 205 if (record->event.pressed) {
100 register_code(KC_RSFT); 206 register_code(KC_RSFT);
101 } else { 207 } else {
diff --git a/keyboards/atreus/keymaps/replicaJunction/readme.md b/keyboards/atreus/keymaps/replicaJunction/readme.md
index 21af48e8f..6ac3cb00a 100644
--- a/keyboards/atreus/keymaps/replicaJunction/readme.md
+++ b/keyboards/atreus/keymaps/replicaJunction/readme.md
@@ -10,13 +10,15 @@ I won't claim that this layout is perfect for everyone. It does make several sig
10 10
11## Base Layer ## 11## Base Layer ##
12 12
13![Atreus base layout](atreus-replica-base-colemakdh.png) 13![Atreus base layout](atreus-replica-base.png)
14 14
15The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/). 15The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/).
16 16
17Note that there are four dual-purpose keys: Shift (Backspace), Ctrl (Delete), Alt (Enter), and Space (Number layer). In QMK, these dual-role keys can be made to hold their primary key by double-tapping the key and holding on the second tap. For example, if I wanted to insert a long string of Spaces, I would tap the Space key, then tap it again and hold. A single press and hold would trigger the secondary function of the key instead. 17The primary mechanism for the Shift keys in this keyboard are the dual-role Z and slash keys. Pressing the key sends the keystroke, while holding the key sends a shift. This is a design choice taken from the xyverz layout, and one I find much more intuitive than a thumb shift. In addition, the pinky doesn't need to stretch as far to reach these keys as it does to reach a standard Shift key.
18 18
19The secondary Alt on the left bottom row exists to provide a single-hand Alt+Tab shortcut, which would take two rows otherwise. 19Occasionally, when typing the letter Z, I'll hold the key down a fraction of a second too long, and the keyboard will shift instead. If you're not a confident typist, this dual-role Shift key layout is probably not a good solution. In that case, I'd suggest moving Shift onto the Backspace key (press for Backspace, hold for Shift).
20
21In addition to the Shift keys, there are three dual-purpose keys: Ctrl (Delete), Alt (Enter), and Space (Number layer). In QMK, these dual-role keys can be made to hold their primary key with a tap and hold. For example, if I wanted to insert a long string of Spaces, I would tap the Space key, then tap it again and hold. A single press and hold would trigger the secondary function of the key instead.
20 22
21## Extend Layer ## 23## Extend Layer ##
22 24
@@ -42,9 +44,11 @@ This layer also provides plenty of symbol shortcuts. Most of these can be access
42 44
43![Atreus function layer](atreus-replica-function.png) 45![Atreus function layer](atreus-replica-function.png)
44 46
45Function keys (F1-F12) are on this layer, as well as some more generic "functions" such as media keys. I've also set up a mirror image of the arrows from the Extend layer in case I need to use these with my left hand, but I don't do this very often. 47Function keys (F1-F12) are on this layer. Their layout in groups of four comes from Jeremy's Atreus layout in this repository. I'd been using 1-9 in a numpad layout, then adding 10-12 on the side...I suppose it took seeing someone else do it this way for me to realize how much more sense it makes.
48
49On the right side are mouse keys - cursor left/right/up/down, and scroll up/down. Volume keys are also here, though really only because there was room for them (I'm not entirely happy with their positions).
46 50
47The reset key is on this layer, as well as a toggle from Colemak to QWERTY and back. The QWERTY layer is not currently documented, but it is functionally identical to the base layer except for letter positions. 51Finally, the reset key is on this layer, as well as toggles from Colemak to QWERTY and back. The QWERTY layer is not currently documented, but it is functionally identical to the base layer except for letter positions.
48 52
49## Gaming Layer ## 53## Gaming Layer ##
50 54
@@ -54,4 +58,4 @@ This is a small layer developed to allow some simple gameplay without a mouse. T
54 58
55The keys on the left hand bring Space into the left thumb's reach, as well as overriding the dual-role Shift with its standard function (Z in both QWERTY and in Colemak). This allows easy Shift presses without blocking the Z key, commonly used in games. 59The keys on the left hand bring Space into the left thumb's reach, as well as overriding the dual-role Shift with its standard function (Z in both QWERTY and in Colemak). This allows easy Shift presses without blocking the Z key, commonly used in games.
56 60
57I would probably not consider this a hard-core gaming keyboard, and this layout does have the huge problem of blocking access to the number keys, but for more casual games, it plays quite well. I've used it quite a bit on Minecraft, for example, and I'm quite pleased with it. \ No newline at end of file 61I would probably not consider the Atreus a hard-core gaming keyboard in the first place, and this layout does have the huge problem of blocking access to the number keys, but for more casual games, it plays quite well. I've used it quite a bit on Minecraft, for example, and I'm quite pleased with it. \ No newline at end of file
diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h
index 994a8c643..361859832 100644
--- a/keyboards/ergodox/config.h
+++ b/keyboards/ergodox/config.h
@@ -34,4 +34,4 @@
34#endif 34#endif
35 35
36 36
37#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ 37#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/replicaJunction/config.h b/keyboards/ergodox/keymaps/replicaJunction/config.h
new file mode 100644
index 000000000..d32b46e4e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/replicaJunction/config.h
@@ -0,0 +1,63 @@
1/*
2Config file - Ergodox QMK with replicaJunction layout
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
19#define KEYBOARDS_ERGODOX_CONFIG_H_
20
21#define MOUSEKEY_DELAY 100
22#define MOUSEKEY_INTERVAL 20
23#define MOUSEKEY_MAX_SPEED 3
24#define MOUSEKEY_TIME_TO_MAX 10
25
26#define TAPPING_TOGGLE 1
27
28/* define if matrix has ghost */
29//#define MATRIX_HAS_GHOST
30
31// MS the button needs to be held before a tap becomes a hold (default: 200)
32#define TAPPING_TERM 200
33
34#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.)
35
36// I don't have any locking keys, so I don't need these features
37
38
39/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
40
41//#define LOCKING_SUPPORT_ENABLE
42/* Locking resynchronize hack */
43//#define LOCKING_RESYNC_ENABLE
44
45/* Prevent modifiers from sticking when switching layers */
46/* Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers */
47#define PREVENT_STUCK_MODIFIERS
48
49/* key combination for command */
50#define IS_COMMAND() ( \
51 keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
52 keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
53)
54
55#ifdef SUBPROJECT_ez
56 #include "ez/config.h"
57#endif
58#ifdef SUBPROJECT_infinity
59 #include "infinity/config.h"
60#endif
61
62
63#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
diff --git a/keyboards/ergodox/keymaps/replicaJunction/keymap.c b/keyboards/ergodox/keymaps/replicaJunction/keymap.c
new file mode 100644
index 000000000..c9213553c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/replicaJunction/keymap.c
@@ -0,0 +1,336 @@
1/*
2 * Keyboard: Ergodox
3 * Keymap: replicaJunction
4 * Version: 1.2
5 *
6 * This keymap is designed to complement my Atreus keyboard layout, found in keyboards/atreus.
7 * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox, and I now
8 * have both keyboards, so I've designed these layouts in an effort to make switching between the
9 * two as easy as possible.
10 *
11 * I've also tried to make use of the extra keys on the Ergodox in as logical of a manner as possible,
12 * adding to the layers in the Atreus config without disturbing what's there already. This allows for
13 * things like F11-F20, the Application (Menu) key, and better media key placement.
14 *
15 * The default key layout in this keymap is Colemak-ModDH. Information on that layout can be found
16 * here: https://colemakmods.github.io/mod-dh/
17 */
18
19#include "ergodox.h"
20#include "debug.h"
21#include "action_layer.h"
22
23#define _CO 0 // Colemak
24#define _QW 1 // QWERTY
25#define _ME 2 // media keys
26#define _NU 3 // numpad
27#define _EX 4 // extend
28#define _GA 5 // mouse overlay for gaming
29
30// Some quick aliases, just to make it look pretty
31#define _______ KC_TRNS
32#define KCX_CGR LCTL(KC_GRV)
33#define KX_STAB LSFT(KC_TAB)
34#define KX_COPY LCTL(KC_C)
35#define KX_CUT LCTL(KC_X)
36#define KX_PAST LCTL(KC_V)
37#define KX_UNDO LCTL(KC_Z)
38
39; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
40
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 /*
43 * Keymap: Colemak-ModDH
44 *
45 * ,--------------------------------------------------. ,--------------------------------------------------.
46 * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | = |
47 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
48 * | LCtrl | Q | W | F | P | B | Home | | BkSp | J | L | U | Y | ; | - |
49 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
50 * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | ' |
51 * |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------|
52 * | LShft | Z | X | C | D | V | | | | K | H | , | , | / | RShft |
53 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
54 * | LGui | [ | ] |CtlShf| LAlt | | _EX | - | ' | = | \ |
55 * `----------------------------------' `----------------------------------'
56 * ,-------------. ,-------------.
57 * | LCtrl| ~GA | | Left | Right|
58 * ,------|------|------| |------+------+------.
59 * |LCtrl/| LAlt/| Home | | Up | Alt/| _NU/ |
60 * | BkSp | Del |------| |------| Enter| Space|
61 * | | | _NU | | Down | | |
62 * `--------------------' `--------------------'
63 */
64[_CO] = KEYMAP(
65 // left hand
66 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
67 KC_LCTL,KC_Q, KC_W, KC_F, KC_P, KC_B, KC_HOME,
68 KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G,
69 KC_LSFT,KC_Z, KC_X, KC_C, KC_D, KC_V, ALL_T(KC_NO),
70 KC_LGUI,KC_LBRC,KC_RBRC, LCTL(KC_LSFT), KC_LALT,
71
72 KC_LCTL, TG(_GA),
73 KC_HOME,
74 CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(_NU),
75 // right hand
76 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
77 KC_BSPC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,KC_MINS,
78 KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
79 KC_BSLS, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,
80 MO(_EX),KC_MINS,KC_QUOT,KC_EQL, KC_BSLS,
81
82 KC_LEFT, KC_RGHT,
83 KC_UP,
84 KC_DOWN, ALT_T(KC_ENT), LT(_NU,KC_SPC)
85 ),
86
87 /*
88 * Keymap: QWERTY layout.
89 *
90 * This is optimized for gaming, not typing, so there aren't as many macros
91 * as the Dvorak layer. Some of the keys have also been moved to "game-
92 * like" locations, such as making the spacebar available to the left thumb,
93 * and repositioning the arrow keys at the bottom right corner.
94 *
95 * ,--------------------------------------------------. ,--------------------------------------------------.
96 * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | = |
97 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
98 * | LCtrl | Q | W | E | R | T | Home | | BkSp | Y | U | I | O | P | - |
99 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
100 * | Tab | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
101 * |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------|
102 * | LShft | Z | X | C | V | B | | | | N | M | , | . | / | RShft |
103 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
104 * | LGui | ` | \ |CtlShf| _NU | | _EX | - | ' | = | \ |
105 * `----------------------------------' `----------------------------------'
106 * ,-------------. ,-------------.
107 * | LCtrl| ~GA | | Left | Right|
108 * ,------|------|------| |------+------+------.
109 * |LCtrl/| LAlt/| Home | | Up | Alt/| _NU/ |
110 * | BkSp | Del |------| |------| Enter| Space|
111 * | | | _NU | | Down | | |
112 * `--------------------' `--------------------'
113 */
114[_QW] = KEYMAP( // Layer1: QWERTY
115 // left hand
116 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
117 KC_LCTL,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
118 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
119 KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
120 KC_LGUI,KC_GRV, KC_SLSH,LCTL(KC_LSFT), MO(_NU),
121
122 KC_LCTL,TG(_GA),
123 KC_HOME,
124 CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(_NU),
125 // right hand
126 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
127 KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
128 KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,
129 KC_BSLS, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,
130 MO(_EX),KC_MINS,KC_QUOT,KC_EQL, KC_BSLS,
131
132 KC_LEFT, KC_RGHT,
133 KC_UP,
134 KC_DOWN, ALT_T(KC_ENT), LT(_NU,KC_SPC)
135 ),
136
137 /*
138 * Keymap: Numbers and symbols
139 *
140 * Note that the number keys here are actually numpad keystrokes. This often doesn't matter, but it may be relevant in a few cases.
141 * That's why the Num Lock key exists on this layer - just in case.
142 *
143 * This layer also contains the layout switches.
144 *
145 * ,--------------------------------------------------. ,--------------------------------------------------.
146 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
147 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
148 * | | ! | @ | { | } | & | | | | / | 7 | 8 | 9 | * | |
149 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
150 * | | # | $ | ( | ) | ~ |------| |------| | | 4 | 5 | 6 | - | |
151 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
152 * | | % | ^ | [ | ] | ` | | | | \ | 1 | 2 | 3 | + | |
153 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
154 * | |QWERTY|Colemk| | | | 0 | . | = | | |
155 * `----------------------------------' `----------------------------------'
156 * ,-------------. ,-------------.
157 * |NumLck| RESET| | | |
158 * ,------|------|------| |------+------+------.
159 * | | | | | | | |
160 * | | |------| |------| | |
161 * | | | | | | | |
162 * `--------------------' `--------------------'
163 */
164[_NU] = KEYMAP(
165 // left hand
166 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
167 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______,
168 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD,
169 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______,
170 _______, DF(_QW), DF(_CO), _______, _______,
171
172 KC_NLCK,RESET,
173 _______,
174 _______,_______,_______,
175 // right hand
176 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
177 _______, KC_SLSH, KC_P7, KC_P8, KC_P9, KC_PAST, _______,
178 KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PMNS, _______,
179 _______, KC_BSLS, KC_P1, KC_P2, KC_P3, KC_PPLS, _______,
180 KC_P0, KC_PDOT, KC_EQL, _______, _______,
181
182 _______, _______,
183 _______,
184 _______, _______, _______
185 ),
186
187 /*
188 * Keymap: Extend
189 *
190 * ,--------------------------------------------------. ,--------------------------------------------------.
191 * | | F11 | F12 | F13 | F14 | F15 | Mute | | | F16 | F17 | F18 | F19 | F20 | |
192 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
193 * | | | | | | Ctrl`| Vol | | | PgUp | Home | Up | End | Del | |
194 * |--------+------+------+------+------+------| Up | | |------+------+------+------+------+--------|
195 * | | | Gui | Alt | Ctrl | |------| |------| PgDn | Left | Down | Right| BkSp | Menu |
196 * |--------+------+------+------+------+------| Vol | | |------+------+------+------+------+--------|
197 * | | Undo | Cut | Copy | | Paste| Down | | | | ^Tab | Tab | |Insert| PrntScr|
198 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
199 * | | | | | | | | | | | |
200 * `----------------------------------' `----------------------------------'
201 * ,-------------. ,-------------.
202 * | | | | | |
203 * ,------|------|------| |------+------+------.
204 * | | | | | | | |
205 * | | |------| |------| | |
206 * | | | | | | | |
207 * `--------------------' `--------------------'
208 *
209 * Ctrl+` is a keyboard shortcut for the program ConEmu, which provides a Quake-style drop-down command prompt.
210 *
211 */
212[_EX] = KEYMAP(
213 // left hand
214 _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_MUTE,
215 _______, _______, _______, _______, _______, KCX_CGR, KC_VOLU,
216 _______, _______, KC_LGUI, KC_LALT, KC_LCTL, _______,
217 _______, KX_UNDO, KX_CUT, KX_COPY, _______, KX_PAST, KC_VOLD,
218 _______, _______, _______, _______, _______,
219
220 _______,_______,
221 _______,
222 _______,_______,_______,
223 // right hand
224 _______, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______,
225 _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______,
226 KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU,
227 _______, _______, KX_STAB, KC_TAB, _______, KC_INS, KC_PSCR,
228 _______, _______, _______, _______, _______,
229 _______, _______,
230 _______,
231 _______, _______, _______
232 ),
233
234 /*
235 * Keymap: Gaming
236 *
237 * Provides a mouse overlay for the right hand, and also moves some "gamer friendly" keys to the left, such as space.
238 * This layer also removes a lot of dual-role keys, as when gaming, it's nicer not to need to keep track of those.
239 *
240 * ,--------------------------------------------------. ,--------------------------------------------------.
241 * | | | | | | | | | | | | | | | |
242 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
243 * | | | | | | | | | | |WhlUp | MsUp |WhlDn | | |
244 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
245 * | | | | | | |------| |------| |MsLeft|MsDown|MsRght| | |
246 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
247 * | | | | | | | | | | | | | | | |
248 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
249 * | LCtrl| | | | | | | | | | |
250 * `----------------------------------' `----------------------------------'
251 * ,-------------. ,-------------.
252 * | | ~_GA | | |MClick|
253 * ,------|------|------| |------+------+------.
254 * | | | | | | | |
255 * | Space| |------| |------|RClick|LClick|
256 * | | | | | | | |
257 * `--------------------' `--------------------'
258 */
259[_GA] = KEYMAP(
260 // left hand
261 _______, _______, _______, _______, _______, _______, _______,
262 _______, _______, _______, _______, _______, _______, _______,
263 _______, _______, _______, _______, _______, _______,
264 _______, _______, _______, _______, _______, _______, _______,
265 KC_LCTL, _______, _______, _______, _______,
266
267 _______,_______,
268 _______,
269 KC_SPC, _______,_______,
270
271 // right hand
272 _______, _______, _______, _______, _______, _______, _______,
273 _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______,
274 _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
275 _______, _______, _______, _______, _______, _______, _______,
276 _______, _______, _______, _______, _______,
277 _______, KC_BTN3,
278 _______,
279 _______, KC_BTN2, KC_BTN1
280 ),
281};
282
283const uint16_t PROGMEM fn_actions[] = {
284 [1] = ACTION_LAYER_TAP_TOGGLE(_NU) // FN1 - Momentary Layer 1 (Numbers and symbols)
285};
286
287const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
288{
289 // MACRODOWN only works in this function
290 switch(id) {
291 case 0:
292 if (record->event.pressed) {
293 register_code(KC_RSFT);
294 } else {
295 unregister_code(KC_RSFT);
296 }
297 break;
298 }
299 return MACRO_NONE;
300};
301
302// Runs just one time when the keyboard initializes.
303void matrix_init_user(void) {
304
305};
306
307// Runs constantly in the background, in a loop.
308void matrix_scan_user(void) {
309
310 uint8_t layer = biton32(layer_state);
311 // uint8_t default_layer = biton32(layer_state);
312
313 ergodox_board_led_off();
314 ergodox_right_led_1_off();
315 ergodox_right_led_2_off();
316 ergodox_right_led_3_off();
317
318 switch (layer) {
319 case _CO:
320 ergodox_right_led_1_on();
321 break;
322 case _QW:
323 ergodox_right_led_2_on();
324 break;
325 case _NU:
326 ergodox_right_led_3_on();
327 break;
328 case _GA:
329 ergodox_right_led_1_on();
330 ergodox_right_led_2_on();
331 default:
332 // none
333 break;
334 }
335
336};
diff --git a/keyboards/ergodox/keymaps/replicaJunction/readme.md b/keyboards/ergodox/keymaps/replicaJunction/readme.md
new file mode 100644
index 000000000..8c4c03353
--- /dev/null
+++ b/keyboards/ergodox/keymaps/replicaJunction/readme.md
@@ -0,0 +1,5 @@
1# replicaJunction - Ergodox (EZ) Layout
2
3I 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.
4
5I 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. \ No newline at end of file