Skip to content

Commit

Permalink
Merge branch 'master' into zeal60
Browse files Browse the repository at this point in the history
  • Loading branch information
Wilba6582 authored and Wilba6582 committed Jan 9, 2017
2 parents 36b4cc1 + 176b93d commit f21a091
Show file tree
Hide file tree
Showing 15 changed files with 762 additions and 35 deletions.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
136 changes: 121 additions & 15 deletions keyboards/atreus/keymaps/replicaJunction/keymap.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* Keyboard: Atreus
* Keymap: replicaJunction
* Version: 0.3
* Version: 0.4
*
* 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. I now
Expand Down Expand Up @@ -42,51 +42,157 @@
#define KX_PAST LCTL(KC_V)
#define KX_UNDO LCTL(KC_Z)

#define _USER 0 // User macro

; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/*
* Colemak-ModDH
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | F | P | B | | J | L | U | Y | ; |
* +------+------+------+------+------| +------+------+------+------+------|
* | A | R | S | T | G | | M | N | E | I | O |
* +------+------+------+------+------| +------+------+------+------+------|
* |Z Shft| X | C | D | V | ,------. ,------. | K | H | , | . |/ Shft|
* +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
* | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_CO] = KEYMAP(
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
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
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
),

/*
* QWERTY
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | E | R | T | | Y | U | I | O | P |
* +------+------+------+------+------| +------+------+------+------+------|
* | A | S | D | F | G | | H | J | K | L | ; |
* +------+------+------+------+------| +------+------+------+------+------|
* |Z Shft| X | C | V | B | ,------. ,------. | N | M | , | . |/ Shft|
* +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
* | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_QW] = KEYMAP( /* Qwerty */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
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
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
),

/*
* Extend
*
* Ctrl+` is a keyboard shortcut for the program ConEmu, which brings up a dropdown console window.
*
* Also note that some dual-role keys are overridden here with their modifiers
*
* ,----------------------------------. ,----------------------------------.
* | | | | |Ctrl `| | PgUp | Home | Up | End | Del |
* +------+------+------+------+------| +------+------+------+------+------|
* | Gui | Shift| Alt | Ctrl | | | PgDn | Left | Down | Right| Bksp |
* +------+------+------+------+------| +------+------+------+------+------|
* | Shift| Cut | Copy | | Paste| ,------. ,------. | | ^Tab | Tab | |Insert|
* +------+------+------+------+------| | Del | | Enter| +------+------+------+------+------|
* | | | | | | | | | | | Space|XXXXXX| | |PrntSc|
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_EX] = KEYMAP( /* Extend */
KC_CAPS, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
_______, KC_LGUI, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
_______, KX_CUT, KX_COPY, _______, KX_PAST, _______, KC_TAB, KCX_LST, _______, KC_INSERT,
_______, _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, KC_PSCR
_______, _______, _______, _______, LCTL(KC_GRV), KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
KC_LSFT, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, KC_TAB, _______, KC_INS,
_______, _______, _______, _______, _______, KC_DEL, KC_ENT, KC_SPC, _______, _______, _______, KC_PSCR
),

/*
* Numbers and symbols
*
* ,----------------------------------. ,----------------------------------.
* | ! | @ | { | } | & | | / | 7 | 8 | 9 | * |
* +------+------+------+------+------| +------+------+------+------+------|
* | # | $ | ( | ) | ~ | | | | 4 | 5 | 6 | - |
* +------+------+------+------+------| +------+------+------+------+------|
* | % | ^ | [ | ] | ` | ,------. ,------. | \ | 1 | 2 | 3 | + |
* +------+------+------+------+------| | | | | +------+------+------+------+------|
* | | _GA | | | | | | | | |XXXXXX| 0 | . | = | |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_NU] = KEYMAP( /* Numbers and symbols */
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS,
_______, TG(_GA), _______, MO(_FN), _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______
_______, TG(_GA), _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______
),

/*
* Functions
*
* ,----------------------------------. ,----------------------------------.
* | Caps | F9 | F10 | F11 | F12 | | _USER|Whl Up| MUp |Whl Dn| |
* +------+------+------+------+------| +------+------+------+------+------|
* | | F5 | F6 | F7 | F8 | | Vol ^| MLeft| MDown|MRight| |
* +------+------+------+------+------| +------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | ,------. ,------. | Vol v| | | | |
* +------+------+------+------+------| | | |RClick| +------+------+------+------+------|
* | | | |XXXXXX| | | | | | |LClick|MClick| _CO | _GA | RESET|
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_FN] = KEYMAP( /* Functions */
KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_F7, KC_F8, KC_F9, KC_F10,
KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, _______, KC_F4, KC_F5, KC_F6, KC_F11,
_______, KC_VOLU, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12,
_______, _______, _______, _______, KC_MSTP, _______, _______, _______, KC_NO, DF(_CO), DF(_QW), RESET
KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, M(_USER),KC_WH_U, KC_MS_U, KC_WH_D, _______,
_______, KC_F5, KC_F6, KC_F7, KC_F8, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_R, _______,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_VOLD, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN3, DF(_CO), DF(_QW), RESET
),

/*
* Gaming
*
* ,----------------------------------. ,----------------------------------.
* | | | | | | | |Whl Up| MUp |Whl Dn| |
* +------+------+------+------+------| +------+------+------+------+------|
* | | | | | | | | MLeft| MDown|MRight| |
* +------+------+------+------+------| +------+------+------+------+------|
* | Z | | | | | ,------. ,------. | | | | | |
* +------+------+------+------+------| | Bksp | |RClick| +------+------+------+------+------|
* | | _GA | | Shift| Space| | | | | |LClick|MClick| | | |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_GA] = KEYMAP( /* Gaming */
_______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______,
_______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
KC_Z, _______, _______, _______, _______, KC_BTN3, _______, KC_MS_D, _______, _______,
_______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, _______, _______, _______, _______
KC_Z, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______,
_______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, KC_BTN3, _______, _______, _______
)};

/*
* Template
*
* ,----------------------------------. ,----------------------------------.
* | | | | | | | | | | | |
* +------+------+------+------+------| +------+------+------+------+------|
* | | | | | | | | | | | |
* +------+------+------+------+------| +------+------+------+------+------|
* | | | | | | ,------. ,------. | | | | | |
* +------+------+------+------+------| | | | | +------+------+------+------+------|
* | | | | | | | | | | | | | | | |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/

const uint16_t PROGMEM fn_actions[] = {

};
Expand All @@ -95,7 +201,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
case _USER:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
Expand Down
16 changes: 10 additions & 6 deletions keyboards/atreus/keymaps/replicaJunction/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ I won't claim that this layout is perfect for everyone. It does make several sig

## Base Layer ##

![Atreus base layout](atreus-replica-base-colemakdh.png)
![Atreus base layout](atreus-replica-base.png)

The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/).

Note 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.
The 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.

The secondary Alt on the left bottom row exists to provide a single-hand Alt+Tab shortcut, which would take two rows otherwise.
Occasionally, 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).

In 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.

## Extend Layer ##

Expand All @@ -42,9 +44,11 @@ This layer also provides plenty of symbol shortcuts. Most of these can be access

![Atreus function layer](atreus-replica-function.png)

Function 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.
Function 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.

On 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).

The 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.
Finally, 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.

## Gaming Layer ##

Expand All @@ -54,4 +58,4 @@ This is a small layer developed to allow some simple gameplay without a mouse. T

The 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.

I 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.
I 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.
2 changes: 1 addition & 1 deletion keyboards/ergodox/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@
#endif


#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
63 changes: 63 additions & 0 deletions keyboards/ergodox/keymaps/replicaJunction/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
Config file - Ergodox QMK with replicaJunction layout
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/>.
*/

#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
#define KEYBOARDS_ERGODOX_CONFIG_H_

#define MOUSEKEY_DELAY 100
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 3
#define MOUSEKEY_TIME_TO_MAX 10

#define TAPPING_TOGGLE 1

/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST

// MS the button needs to be held before a tap becomes a hold (default: 200)
#define TAPPING_TERM 200

#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.)

// I don't have any locking keys, so I don't need these features


/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */

//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
//#define LOCKING_RESYNC_ENABLE

/* Prevent modifiers from sticking when switching layers */
/* Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers */
#define PREVENT_STUCK_MODIFIERS

/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
)

#ifdef SUBPROJECT_ez
#include "ez/config.h"
#endif
#ifdef SUBPROJECT_infinity
#include "infinity/config.h"
#endif


#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
Loading

0 comments on commit f21a091

Please sign in to comment.