summaryrefslogtreecommitdiffstats
path: root/keyboards/ergodox_infinity
diff options
context:
space:
mode:
authorRob Hilgefort <rjhilgefort@gmail.com>2021-01-12 18:56:18 -0700
committerGitHub <noreply@github.com>2021-01-12 17:56:18 -0800
commitb297f1ce8dfbaf4b45b54db918d779c4da291106 (patch)
tree933c05c22f1546992f7a6a5cd8285d66d7487763 /keyboards/ergodox_infinity
parentc81e07fef5938a30ebf87b7e2beb99f8c135c59c (diff)
[Keymap] rjhilgefort's Ergodox Infinity (#11345)
* initial commit- copy of default * beginnings of ergodox layout conversion * from scratch 2020 RJH ergodox layout! * remove extra line in keymap * only shift to layers, led work * Fleshed out readme * tweak alt placement * updated readme * PR feedback, updated default layer * Update keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/ergodox_infinity')
-rw-r--r--keyboards/ergodox_infinity/keymaps/default/keymap.c20
-rw-r--r--keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c381
-rw-r--r--keyboards/ergodox_infinity/keymaps/rjhilgefort/readme.md175
3 files changed, 564 insertions, 12 deletions
diff --git a/keyboards/ergodox_infinity/keymaps/default/keymap.c b/keyboards/ergodox_infinity/keymaps/default/keymap.c
index 2fc5344011..cd9b476bbd 100644
--- a/keyboards/ergodox_infinity/keymaps/default/keymap.c
+++ b/keyboards/ergodox_infinity/keymaps/default/keymap.c
@@ -1,13 +1,15 @@
#include QMK_KEYBOARD_H
#include "version.h"
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
+enum custom_layers {
+ BASE, // default layer
+ SYMB, // symbols
+ MDIA, // media keys
+};
+
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, // can always be here
- EPRM,
VRSN,
RGB_SLD
};
@@ -67,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | EPRM | | | | | | | . | 0 | = | |
+ * |EEP_RST| | | | | | | . | 0 | = | |
* `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* |Animat| | |Toggle|Solid |
@@ -84,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ EEP_RST,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
RGB_MOD,KC_TRNS,
KC_TRNS,
RGB_VAD,RGB_VAI,KC_TRNS,
@@ -144,12 +146,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
- case EPRM:
- if (record->event.pressed) {
- eeconfig_init();
- }
- return false;
- break;
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
diff --git a/keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c b/keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c
new file mode 100644
index 0000000000..31d218ebfb
--- /dev/null
+++ b/keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c
@@ -0,0 +1,381 @@
+/**
+ * Copyright 2021 Rob Hilgefort <@rjhilgefort>
+ *
+ * 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 "version.h"
+
+
+enum custom_layers {
+ BASEMAC, // Base Mac Layer
+ BASELNX, // Base Linux Layer
+ SYMB, // Symbols Layer
+ MANMAC, // Media Numbers Mac Layer
+ MANLNX, // Media Numbers Linux Layer
+ EXA, // Extra Layer
+};
+
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ VRSN,
+};
+
+#define ALT_ESC ALT_T(KC_ESC)
+#define CTL_ESC CTL_T(KC_ESC)
+#define GUI_ESC GUI_T(KC_ESC)
+#define HYPER LGUI(LSFT(KC_LALT))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Keymap 0: Base (Mac)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Bksp |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Ct/Esc | A | S | D | F | G |------| |------| H | J | K | L |Ctrl/;| ' |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Shift | Z | X | C | V | B | | | | N | M | , | . |Ctrl//| Enter |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | |Shift | Tab | ↑ L3 |Alt/Ec| | ↑ L2 |Hyper | ' |Enter | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | | | | | |
+ * ,------+------+------| |------+--------+------.
+ * | | | | | | | |
+ * | LGui | Bksp |------| |------| Bksp | Spc |
+ * | | | | | | | |
+ * `--------------------' `----------------------'
+ */
+[BASEMAC] = LAYOUT_ergodox(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______,
+ CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______,
+ _______, KC_LSFT, KC_TAB, MO(MANMAC), ALT_ESC,
+ _______, _______,
+ _______,
+ KC_LGUI, KC_BSPC, _______,
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_H, KC_J, KC_K, KC_L, CTL_T(KC_SCLN), KC_QUOT,
+ _______, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_ENTER,
+ MO(SYMB), HYPER, KC_QUOT, KC_ENTER, _______,
+ _______, _______,
+ _______,
+ _______, KC_BSPC, KC_SPC
+),
+
+/* Keymap 1: Base (Linux)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Bksp |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Ct/Esc | A | S | D | F | G |------| |------| H | J | K | L |Ctrl/;| ' |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Shift | Z | X | C | V | B | | | | N | M | , | . |Ctrl//| Enter |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | |Shift | Tab | ↑ L4 |Gui/Ec| | ↑ L2 | Hyper| ' |Enter | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | | | | | |
+ * ,------+------+------| |------+--------+------.
+ * | | | | | | | |
+ * | Ctrl | Bksp |------| |------| Bksp | Spc |
+ * | | | | | | | |
+ * `--------------------' `----------------------'
+ */
+[BASELNX] = LAYOUT_ergodox(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______,
+ ALT_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______,
+ _______, KC_LSFT, KC_TAB, MO(MANLNX), GUI_ESC,
+ _______, _______,
+ _______,
+ KC_LCTRL, KC_BSPC, _______,
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_H, KC_J, KC_K, KC_L, CTL_T(KC_SCLN), KC_QUOT,
+ _______, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_ENTER,
+ MO(SYMB), HYPER, KC_QUOT, KC_ENTER, _______,
+ _______, _______,
+ _______,
+ _______, KC_BSPC, KC_SPC
+),
+
+/* Keymap 2: Symbol Layer
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | \ | / | [ | ] | ~ | | | | | | = | + | - | _ | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | { | } | ( | ) | ` |------| |------| ← | ↓ | ↑ | → | | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | ↑ L5 | | | TRNS | | | | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------+------+------| |------+------+------.
+ * | | | | | | | |
+ * | | Del |------| |------| Del | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[SYMB] = LAYOUT_ergodox(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, _______,
+ _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
+ _______, _______, _______, MO(EXA), _______,
+ _______, _______,
+ _______,
+ _______, KC_DEL, _______,
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
+ _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ KC_TRNS, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, KC_DEL, _______
+),
+
+/* Keymap 3: Media & Numbers (MAC)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | |Scrn -| Vol+ |Scrn +| | | | | | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | |VolMut|Trak ←|Ply/Ps|Trak →| |------| |------| | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | Vol- | | | | | | | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | TRNS | | | ↑ L5 | 0 | . | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------+------+------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | 0 |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[MANMAC] = LAYOUT_ergodox(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_BRMD, KC_VOLU, KC_BRMU, _______, _______,
+ _______, KC_MUTE, KC_MRWD, KC_MPLY, KC_MFFD, _______,
+ _______, _______, _______, KC_VOLD, _______, _______, _______,
+ _______, _______, _______, KC_TRNS, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______,
+ _______, KC_4, KC_5, KC_6, KC_PLUS, _______,
+ _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______,
+ MO(EXA), KC_0, KC_DOT, KC_EQL, _______,
+ _______, _______,
+ _______,
+ _______, _______, KC_0
+),
+
+/* Keymap 4: Media & Numbers (Linux)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | |Scrn -| Vol+ |Scrn +| | | | | | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | |VolMut|Trak ←|Ply/Ps|Trak →| |------| |------| | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | Vol- | | | | | | | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | TRNS | | | ↑ L5 | 0 | . | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------+------+------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | 0 |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[MANLNX] = LAYOUT_ergodox(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_BRID, KC_VOLU, KC_BRIU, _______, _______,
+ _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______,
+ _______, _______, _______, KC_VOLD, _______, _______, _______,
+ _______, _______, _______, KC_TRNS, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______,
+ _______, KC_4, KC_5, KC_6, KC_PLUS, _______,
+ _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______,
+ MO(EXA), KC_0, KC_DOT, KC_EQL, _______,
+ _______, _______,
+ _______,
+ _______, _______, KC_0
+),
+
+/* Keymap 5: Extra
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | → L0 | → L1 | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| Home | PGDN | PGUP | End | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | TRNS | | | TRNS | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------+------+ |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[EXA] = LAYOUT_ergodox(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, DF(BASEMAC), DF(BASELNX), _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_TRNS, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ KC_TRNS, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+),
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // dynamically generate these.
+ case VRSN:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ break;
+ case 4:
+ ergodox_right_led_3_on();
+ break;
+ case 5:
+ ergodox_right_led_1_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
+
+/*
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------+------+ |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+/*
+ * [EXTRA] = LAYOUT_ergodox(
+ * // left hand
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______,
+ * _______, _______,
+ * _______,
+ * _______, _______, _______,
+ * // right hand
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______, _______, _______,
+ * _______, _______, _______, _______, _______,
+ * _______, _______,
+ * _______,
+ * _______, _______, _______
+ * ),
+ */
diff --git a/keyboards/ergodox_infinity/keymaps/rjhilgefort/readme.md b/keyboards/ergodox_infinity/keymaps/rjhilgefort/readme.md
new file mode 100644
index 0000000000..bb141b99dc
--- /dev/null
+++ b/keyboards/ergodox_infinity/keymaps/rjhilgefort/readme.md
@@ -0,0 +1,175 @@
+# [🐦 @rjhilgefort](https://twitter.com/rjhilgefort)'s Ergodox Infinity Layout
+
+The layout is heavily inspired by my [Atreus 2](https://atreus.technomancy.us/2) and the layout I use for it. Hence, I basically treat my Ergodox Infinity like it's a 40% keyboard and have even taken off the caps of the keys that I don't make use of to further emphasize this. This allows for easy interop between my office setup (Ergodox) and my laptop setup (Atreus 2).
+
+![](https://imgur.com/rJnSjLq.jpg)
+![](https://imgur.com/8aSSGP1.jpg)
+
+## Features
+
+Here's some highlights/features of the layout.
+
+- Inspired by 40% keyboards, doesn't use keys that don't exist on those boards.
+- Ergonomic symbols layer.
+- Media and Numpad layer.
+- Planck-like extra tri-layer when holding the other two layers.
+- Planck conformability- leaves gutter keys for familiarity if coming from there.
+- Supports Mac and Linux as 1st class citizens giving each a dedicated base layer and a media layer for each that matches media keys for each OS. The Linux default layer focuses on `Ctrl` instead of `Super` and vice versa for Mac. (When you set Linux as your base layer, the Linux media layer is what you shift into. Same for the Mac layer when that's the base)
+
+## Layers
+
+#### Keymap 0: Base (Mac)
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Bksp |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| Ct/Esc | A | S | D | F | G |------| |------| H | J | K | L |Ctrl/;| ' |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| Shift | Z | X | C | V | B | | | | N | M | , | . |Ctrl//| Enter |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | |Shift | Tab | ↑ L3 |Alt/Ec| | ↑ L2 |Hyper | ' |Enter | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,---------------.
+ | | | | | |
+ ,------+------+------| |------+--------+------.
+ | | | | | | | |
+ | LGui | Bksp |------| |------| Bkspc | Spc |
+ | | | | | | | |
+ `--------------------' `----------------------'
+```
+
+#### Keymap 1: Base (Linux)
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Bksp |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| Ct/Esc | A | S | D | F | G |------| |------| H | J | K | L |Ctrl/;| ' |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| Shift | Z | X | C | V | B | | | LAlt | N | M | , | . |Ctrl//| Enter |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | |Shift | Tab | ↑ L4 |Gui/Ec| | ↑ L2 |Hyper | ' |Enter | |
+ `-----------------------------------' `----------------------------------'
+ ,-------------. ,---------------.
+ | | | | | |
+ ,------+------+------| |------+--------+------.
+ | | | | | | | |
+ | Ctrl | Bksp |------| |------| Bkspc | Spc |
+ | | | | | | | |
+ `--------------------' `----------------------'
+```
+
+#### Keymap 2: Symbol Layer
+
+```
+,---------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+| | \ | / | [ | ] | ~ | | | | | | = | + | - | _ | |
+|---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | { | } | ( | ) | ` |------| |------| ← | ↓ | ↑ | → | | |
+|---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | |
+`---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | ↑ L5 | | | TRNS | | | | |
+ `-----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------+------+------| |------+------+------.
+ | | | | | | | |
+ | | Del |------| |------| Del | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+#### Keymap 3: Media & Numbers (MAC)
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| | |Scrn -| Vol+ |Scrn +| | | | | | 7 | 8 | 9 | * | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| |VolMut|Trak ←|Ply/Ps|Trak →| |------| |------| | 4 | 5 | 6 | + | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | | | Vol- | | | | | | | 1 | 2 | 3 | \ | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | TRNS | | | ↑ L5 | | . | = | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------+------+------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | 0 |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+#### Keymap 4: Media & Numbers (Linux)
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| | |Scrn -| Vol+ |Scrn +| | | | | | 7 | 8 | 9 | * | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| |VolMut|Trak ←|Ply/Ps|Trak →| |------| |------| | 4 | 5 | 6 | + | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | | | Vol- | | | | | | | 1 | 2 | 3 | \ | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | TRNS | | | ↑ L5 | | . | = | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------+------+------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | 0 |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+#### Keymap 5: Extra
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| | → L0 | → L1 | | | | | | | | | | | | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | | | | | |------| |------| Home | PGDN | PGUP | End | | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | | | | | | | | | | | | | | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | TRNS | | | TRNS | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------+------+ |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## TODO
+
+1. Get the LEDs to work: https://www.reddit.com/r/ergodox/comments/80hgxj/infinity_lcd_configuration_in_qmk/duxklzh/
+
+## Building And Flashing
+
+See the default building and flashing documentation for the Ergodox Infinity, I don't do anything beyond that.
+
+## FAQs
+
+> What's the case you have for your Ergodox Infinity?
+
+It's a case made by Datamancer and I got it [on Drop.com as a group buy](https://drop.com/buy/datamancer-infinity-ergodox-hardwood-case).
+
+> Why don't you just use the other keys?
+
+I bounce between my Ergodox, Atreus 2, CorneKBD, and a couple of Planck keyboards. If I start using keys on my Ergo that I can't on my 40% boards, then my layouts start to diverge and muscle memory is diminished. I like to constrain my bigger boards to my smaller for continuity.