summaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'layouts')
-rw-r--r--layouts/community/60_ansi/stanrc85-ansi/keymap.c48
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c42
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/bcat/readme.md20
-rw-r--r--layouts/community/ergodox/333fred/keymap.c175
-rw-r--r--layouts/community/ergodox/drashna/config.h1
-rw-r--r--layouts/community/ergodox/drashna/keymap.c45
-rw-r--r--layouts/community/ergodox/drashna_glow/config.h2
-rw-r--r--layouts/community/ergodox/erez_experimental/config.h13
-rw-r--r--layouts/community/ergodox/erez_experimental/keymap.c217
-rw-r--r--layouts/community/ergodox/erez_experimental/readme.md55
-rw-r--r--layouts/community/ergodox/erez_experimental/rules.mk6
-rw-r--r--layouts/community/ergodox/manna-harbour_miryoku/keymap.c21
-rw-r--r--layouts/community/ergodox/nstickney/keymap.c231
-rw-r--r--layouts/community/ergodox/nstickney/rules.mk2
-rw-r--r--layouts/community/ergodox/osx_neo2/keymap.c694
-rw-r--r--layouts/community/ergodox/osx_neo2/layers.h9
-rw-r--r--layouts/community/ergodox/osx_neo2/readme.md219
-rw-r--r--layouts/community/ergodox/osx_neo2/visualizer.c47
-rw-r--r--layouts/community/ergodox/pvinis/Changelog.md7
-rw-r--r--layouts/community/ergodox/pvinis/Readme.md65
-rw-r--r--layouts/community/ergodox/pvinis/keymap.c475
-rw-r--r--layouts/community/ergodox/pvinis/rules.mk7
-rw-r--r--layouts/community/ortho_4x12/bredfield/config.h4
-rw-r--r--layouts/community/ortho_4x12/bredfield/keymap.c175
-rw-r--r--layouts/community/ortho_4x12/bredfield/readme.md105
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c37
-rw-r--r--layouts/community/ortho_4x12/jotix/config.h1
-rw-r--r--layouts/community/ortho_4x12/jotix/keymap.c241
-rw-r--r--layouts/community/ortho_4x12/jotix/readme.md2
-rw-r--r--layouts/community/ortho_4x12/jotix/rules.mk1
-rw-r--r--layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c17
-rw-r--r--layouts/community/ortho_4x12/mindsound/config.h5
-rw-r--r--layouts/community/ortho_5x12/333fred/keymap.c51
33 files changed, 1631 insertions, 1409 deletions
diff --git a/layouts/community/60_ansi/stanrc85-ansi/keymap.c b/layouts/community/60_ansi/stanrc85-ansi/keymap.c
index b6e851b153..f478398901 100644
--- a/layouts/community/60_ansi/stanrc85-ansi/keymap.c
+++ b/layouts/community/60_ansi/stanrc85-ansi/keymap.c
@@ -17,33 +17,33 @@
#include "stanrc85.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_ansi(
- TD_TESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, KC_RALT, TD_TWIN, MO(3), TD_TCTL),
+ [_QWERTY] = LAYOUT_60_ansi(
+ TD_TESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, KC_RALT, TD_TWIN, MO(_FN2_60), TD_TCTL),
- [1] = LAYOUT_60_ansi(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(2), MO(3), KC_RCTL),
+ [_DEFAULT] = LAYOUT_60_ansi(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1_60), MO(_FN2_60), KC_RCTL),
- [2] = LAYOUT_60_ansi(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, KC_INS,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
+ [_FN1_60] = LAYOUT_60_ansi(
+ KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
+ KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
+ _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______),
- [3] = LAYOUT_60_ansi(
- _______, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
- TG(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______)
+ [_FN2_60] = LAYOUT_60_ansi(
+ _______, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT))
};
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
new file mode 100644
index 0000000000..780c13c2f1
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
@@ -0,0 +1,42 @@
+#include QMK_KEYBOARD_H
+
+enum layer {
+ LAYER_DEFAULT,
+ LAYER_FUNCTION,
+ LAYER_ADJUST,
+};
+
+/* Switch to function layer when held. */
+#define LY_FUNC MO(LAYER_FUNCTION)
+
+/* Switch to adjust layer when held. */
+#define LY_ADJST MO(LAYER_ADJUST)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc */
+ [LAYER_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LY_FUNC,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LY_ADJST, KC_APP, KC_RCTL
+ ),
+
+ /* Function layer: http://www.keyboard-layout-editor.com/#/gists/c7a55e75285d474b6301140eaf53f915 */
+ [LAYER_FUNCTION] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______,
+ KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, _______, KC_MUTE, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c */
+ [LAYER_ADJUST] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+};
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
new file mode 100644
index 0000000000..79bff7406c
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
@@ -0,0 +1,20 @@
+# bcat's 60% ANSI split backspace/right-shift layout
+
+This is a hybrid of an HHKB layout and a standard ANSI bottom row. It's nice if
+you want to fill out a 60% case with no blockers, or just really want a 6.25U
+spacebar. The arrow and navigation keys match a standard HHKB layout (using the
+Fn key next to the right shift key), but the media keys are centered around the
+WASD cluster instead of the usual HHKB layout. Additionally, the redundant Fn
+key on the bottom row activates an adjust layer to control RGB underglow.
+
+## Default layer
+
+![Default layer layout](https://i.imgur.com/HM0115k.png)
+
+## Function layer
+
+![Function layer layout](https://i.imgur.com/8dr5ktH.png)
+
+## Adjust layer
+
+![Adjust layer layout](https://i.imgur.com/78PBNt6.png)
diff --git a/layouts/community/ergodox/333fred/keymap.c b/layouts/community/ergodox/333fred/keymap.c
index c649e88dca..1345927660 100644
--- a/layouts/community/ergodox/333fred/keymap.c
+++ b/layouts/community/ergodox/333fred/keymap.c
@@ -4,28 +4,6 @@
#include "version.h"
#include "333fred.h"
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- EPRM,
- VRSN,
-};
-
-enum custom_macros {
- // Windows macros
- DLEFT,
- DRIGHT,
- PSCREEN_APP,
- LSFT_TAB,
-
- // KeePass macros
- KEEPASS_OPEN,
- KEEPASS_TYPE,
-
- // Terminal Copy/Paste
- TERM_CP,
- TERM_PT
-};
-
// NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -85,26 +63,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
-[CODEFLOW] = LAYOUT_ergodox( // layer 1 : code
+[CODEFLOW] = LAYOUT_ergodox_pretty( // layer 1 : code
// left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right han
-
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_F7, KC_F8, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, KC_F7, KC_F8, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
),
/* Keymap 3: Symbol Layer
*
@@ -129,14 +97,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[SYMB] = LAYOUT_ergodox_pretty(
// left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_TRNS, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- M(PSCREEN_APP), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______,
+ _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, _______, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______,
+ _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, KC_EQL, _______,
+ _______, _______, _______, _______,
+ PSCREEN_APP, _______,
+ _______, _______, KC_PSCR, _______, _______, _______
),
/* Keymap 3: Media and mouse keys
*
@@ -160,14 +128,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `--------------------' `--------------------'
*/
[MDIA] = LAYOUT_ergodox_pretty(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_INC, BL_DEC, KC_VOLU, KC_TRNS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______,
+ BL_INC, BL_DEC, KC_VOLU, _______,
BL_TOGG, KC_VOLD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT
+ _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
),
/* Keymap 4: Movement
*
@@ -192,14 +160,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// MEDIA AND MOUSE
[VIM] = LAYOUT_ergodox_pretty(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, M(KEEPASS_OPEN), M(KEEPASS_TYPE), TERM_CP, TERM_PT, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V), KC_TRNS,
- KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, M(LSFT_TAB), KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_HOME, KC_END,
- KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
+ _______, _______, KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_HOME, KC_END,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
),
/* Keymap 1: Game Layer
*
@@ -226,14 +194,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[GAME] = LAYOUT_ergodox_pretty( // layer 1 : code
// left hand
- KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_ENT, _______, _______, KC_LOCK, KC_BSPC, _______, _______, _______, _______, _______,
KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V),
- KC_TRNS, KC_UP,
- KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS
+ _______, KC_UP,
+ KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, _______, _______
),
/* Keymap 1: Game Arrow Layer
*
@@ -260,71 +228,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[GAME_ARROW] = LAYOUT_ergodox_pretty( // layer 1 : code
// left hand
- KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_ENT, _______, _______, KC_LOCK, KC_BSPC, _______, _______, _______, _______, _______,
KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V),
- KC_TRNS, KC_UP,
- KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS
+ _______, KC_UP,
+ KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, _______, _______
)
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- // MACRODOWN only works in this function
- switch(id) {
- case DLEFT:
- if (record->event.pressed) { // Windows move desktop left
- return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END);
- }
- break;
- case DRIGHT:
- if (record->event.pressed) { // Windows move desktop right
- return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END);
- }
- break;
- case PSCREEN_APP:
- if (record->event.pressed) {
- return MACRO(D(LALT), T(PSCR), U(LALT), END);
- }
- break;
- case LSFT_TAB:
- if (record->event.pressed) {
- return MACRO(D(LSFT), T(TAB), U(LSFT), END);
- }
- case KEEPASS_OPEN:
- if (record->event.pressed) { // Keepass open application
- return MACRO(D(LCTL), D(LALT), T(K), U(LALT), U(LCTL), END);
- }
- break;
- case KEEPASS_TYPE:
- if (record->event.pressed) { // Keepass autotype
- return MACRO(D(LCTL), D(LALT), T(A), U(LALT), U(LCTL), END);
- }
- break;
- case TERM_CP:
- if (record->event.pressed) { // Terminal Copy
- return MACRO(D(LCTL), T(INSERT), U(LCTL), END);
- }
- break;
- case TERM_PT:
- if (record->event.pressed) { // Terminal Paste
- return MACRO(D(LSFT), T(INSERT), U(LSFT), END);
- }
- break;
- }
- return MACRO_NONE;
-};
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_record(keycode);
+ tap_dance_process_keycode(keycode);
return true;
}
// Runs constantly in the background, in a loop.
-void matrix_scan_user_keyboard(void) {
+void matrix_scan_user(void) {
ergodox_board_led_on();
ergodox_led_all_on();
}
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h
index 7feaf6f252..821710ed8e 100644
--- a/layouts/community/ergodox/drashna/config.h
+++ b/layouts/community/ergodox/drashna/config.h
@@ -13,3 +13,4 @@
#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine
#undef DEBOUNCE
+#define DEBOUNCE 15
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index 3cfce966be..74382f1752 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -24,10 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define UC(x) KC_NO
#endif
-#ifdef RGB_MATRIX_ENABLE
-extern bool g_suspend_state;
-extern rgb_config_t rgb_matrix_config;
-#endif
extern userspace_config_t userspace_config;
enum more_custom_keycodes {
@@ -403,15 +399,6 @@ void suspend_wakeup_init_keymap(void) {
rgb_matrix_set_suspend_state(false);
}
-extern led_config_t g_led_config;
-void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
- for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
- rgb_matrix_set_color( i, red, green, blue );
- }
- }
-}
-
void rgb_matrix_indicators_user(void) {
if ( userspace_config.rgb_layer_change &&
#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
@@ -425,9 +412,9 @@ void rgb_matrix_indicators_user(void) {
) {
switch (biton32(layer_state)) {
case _MODS:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _GAMEPAD:
- rgb_matrix_layer_helper(0xFF, 0x80, 0x00);
+ rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_MODIFIER);
rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q
rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W
rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E
@@ -437,37 +424,37 @@ void rgb_matrix_indicators_user(void) {
rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
- rgb_matrix_set_color(27, 0xFF, 0xFF, 0xFF); // 1
- rgb_matrix_set_color(26, 0x00, 0xFF, 0x00); // 2
+ rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1
+ rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2
rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3
break;
case _DIABLO:
- rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
case _RAISE:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _LOWER:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _ADJUST:
- rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
default:
switch (biton32(default_layer_state)) {
case _QWERTY:
- rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
+ rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
case _COLEMAK:
- rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
+ rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
case _DVORAK:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _WORKMAN:
- rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
+ rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
case _NORMAN:
- rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break;
+ rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
case _MALTRON:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _EUCALYN:
- rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break;
+ rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
case _CARPLAX:
- rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break;
+ rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
}
}
}
diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h
index 5eb1c6d0f3..e6c8223e91 100644
--- a/layouts/community/ergodox/drashna_glow/config.h
+++ b/layouts/community/ergodox/drashna_glow/config.h
@@ -18,7 +18,9 @@
# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# define DISABLE_RGB_MATRIX_DUAL_BEACON
# define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
diff --git a/layouts/community/ergodox/erez_experimental/config.h b/layouts/community/ergodox/erez_experimental/config.h
deleted file mode 100644
index 4b9c29c94e..0000000000
--- a/layouts/community/ergodox/erez_experimental/config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include QMK_KEYBOARD_CONFIG_H
-
-#define ONESHOT_TAP_TOGGLE 2
-#define ONESHOT_TIMEOUT 300
-
-#undef LEADER_TIMEOUT
-#define LEADER_TIMEOUT 300
-
-
-#endif
diff --git a/layouts/community/ergodox/erez_experimental/keymap.c b/layouts/community/ergodox/erez_experimental/keymap.c
deleted file mode 100644
index 1270188f97..0000000000
--- a/layouts/community/ergodox/erez_experimental/keymap.c
+++ /dev/null
@@ -1,217 +0,0 @@
-#include <keymap_extras/keymap_colemak.h>
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- RGB_FF00BB // always start with RGB_
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 |Ctrl- | | Ctrl+| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | S | D | F | G |------| |------| H | Alt/J| K | L |; / L2| LGui/' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * |LShift/(|Z/Ctrl| X | C | V | B | [ | | ] | N | M | , | . |//Ctrl|RShift/)|
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | -/L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Leader|------| |------| Tab/L1 |Enter |
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, LCTL(KC_MINS),
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_LEAD,KC_END,
- // right hand
- LCTL(KC_EQL), KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT),
- MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,LT(SYMB, KC_TAB), KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | |NxtTab|PrvTab| | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | |TOG |
- * ,------|------|------| |------+------+------.
- * |VAI |VAD |HUI | |SAI | |MOD |
- * | | |------| |------| | |
- * | | |HUD | |SAD | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- RGB_FF00BB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN),
- KC_TRNS,KC_TRNS,
- RGB_HUI,
- RGB_VAI,RGB_VAD,RGB_HUD,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
- KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, KC_TRNS,
- RGB_SAI,
- RGB_SAD, KC_TRNS, RGB_MOD
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- return MACRO_NONE;
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
-};
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // dynamically generate these.
- case RGB_FF00BB:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable();
- rgblight_mode(1);
- rgblight_setrgb(0xff,0x00,0xbb);
- #endif
- }
- return false;
- break;
- }
- return true;
-}
-
-LEADER_EXTERNS();
-
-// 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 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
- LEADER_DICTIONARY() {
- leading = false;
- leader_end();
-
- SEQ_ONE_KEY(KC_W) {
- register_code(KC_LALT);
- register_code(KC_F4);
- unregister_code(KC_F4);
- unregister_code(KC_LALT);
- }
- SEQ_ONE_KEY(KC_O) {
- register_code(KC_LCTL);
- register_code(KC_LSFT);
- register_code(KC_O);
- unregister_code(KC_O);
- unregister_code(KC_LSFT);
- unregister_code(KC_LCTL);
- }
- }
-}
-
diff --git a/layouts/community/ergodox/erez_experimental/readme.md b/layouts/community/ergodox/erez_experimental/readme.md
deleted file mode 100644
index f0738d9a70..0000000000
--- a/layouts/community/ergodox/erez_experimental/readme.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# Erez's experimental layout
-
-This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks.
-
-Changelog:
-
-## Nov 1, 2016:
-
-* Adds dedicated text zooming keys in inner corners
-
-## May 24, 2016:
-
-* Implements Leader key example
- * Leader, W sends Alt-F4
- * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp)
-
-## May 8, 2016:
-
-* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held
-* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on).
-* Tweaks media/nav layer
- * Removes mouse control, as I don't use it
- * Makes left home row keys PgUp, Home, End, PgDn
-
-## Apr 29, 2016:
-
-* Tweaks the Hyper and Meh key to send brackets when tapped
-* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky)
-
-## Apr 25, 2016:
-
-* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped
-
-## Feb 11, 2016:
-
-* Updated ASCII legend for thumb clusters
-* Made it so outer left-hand thumb key is L1 momentary toggle
-* Added % and @ to L1
-* Swapped positions for _ and - on L1
-
-## Feb 5, 2016:
-
-* A whole new design for the symbol layer. Specifically:
- * Put the minus, underscore, and semicolon right in the homerow for the right hand
- * Parens are in better places for me
- * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer
- * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down
- * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace)
-
-
-## Jan 19, 2016:
-
-* Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic.
-* Made ' into dual-action key (Win/Cmd when held down).
-
diff --git a/layouts/community/ergodox/erez_experimental/rules.mk b/layouts/community/ergodox/erez_experimental/rules.mk
deleted file mode 100644
index f68b56f872..0000000000
--- a/layouts/community/ergodox/erez_experimental/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Having a file like this allows you to override Makefile definitions
-# for your own particular keymap
-
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-COMMAND_ENABLE = no # Commands for debug and configuration
-LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
new file mode 100644
index 0000000000..86547df98e
--- /dev/null
+++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
@@ -0,0 +1,21 @@
+
+// generated from users/manna-harbour_miryoku/miryoku.org
+
+#define LAYOUT_miryoku(\
+K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
+K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
+K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
+N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
+)\
+LAYOUT_ergodox_pretty( \
+KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+KC_NO, K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09, KC_NO, \
+KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
+KC_NO, K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29, KC_NO, \
+KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, KC_NO, \
+ K33, K34, KC_NO, KC_NO, K35, K36 \
+)
+
+#include "manna-harbour_miryoku.c"
diff --git a/layouts/community/ergodox/nstickney/keymap.c b/layouts/community/ergodox/nstickney/keymap.c
index dc83c2f4d7..a37bc5f964 100644
--- a/layouts/community/ergodox/nstickney/keymap.c
+++ b/layouts/community/ergodox/nstickney/keymap.c
@@ -1,196 +1,125 @@
-#include QMK_KEYBOARD_H
+#include "nstickney.h"
/*
* This keymap simulates the key limitations of an Iris on an ErgoDox. See the
- * matching iris layout (/keyboards/iris/keymaps/nstickney) for further
+ * matching iris layout (/keyboards/keebio/iris/keymaps/nstickney) for further
* information.
*/
-// Layers
-#define BASE 0 // Base layer
-#define SYMB 1 // Symbols
-#define SYSH 2 // Symbols, shifted
-#define NUMP 4 // Numpad
-#define FCTN 8 // Function
-
-// Tap Dancing
-void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
- switch (state->count){
- case 1: // Press once for LGUI
- tap_code(KC_LGUI);
- break;
- case 2: // Press twice for NUMLOCK
- tap_code(KC_NLCK);
- break;
- case 3: // Press thrice for CAPSLOCK
- tap_code(KC_CAPS);
- break;
- case 4: // Press four times for SCROLLOCK
- tap_code(KC_SLCK);
- break;
- default:
- break;
- }
-};
-
-void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
- switch (state -> count) {
- case 1: // Press once for MENU
- tap_code(KC_APP);
- break;
- case 2: // Press twice for NUMPAD
- layer_invert(NUMP);
- break;
- case 3: // Press thrice for SYMBOLS
- layer_invert(SYMB);
- break;
- case 4: // Press four times for SYMBOLS, SHIFTED
- layer_invert(SYSH);
- break;
- default:
- break;
- }
-};
-
-enum tap_dances {LOCKS = 0, LAYERS = 1};
-qk_tap_dance_action_t tap_dance_actions[] = {
- [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock),
- [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
-};
-
-// Make layering more clear
-enum custom_keycodes {
- __________ = KC_TRNS,
- XXX = KC_NO,
- CC_ESC = LCTL_T(KC_ESC),
- CC_QUOT = RCTL_T(KC_QUOT),
- AC_SLSH = LALT_T(KC_SLSH),
- AC_EQL = RALT_T(KC_EQL),
- FC_BSLS = LT(FCTN, KC_BSLS),
- FC_MINS = LT(FCTN, KC_MINS),
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox(
// left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXX,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXX,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX,
CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXX,
- XXX, XXX, XXX, XXX, AC_SLSH,
- TD(LOCKS), XXX,
- XXX,
- FC_BSLS, KC_SPC, XXX,
+ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AC_SLSH,
+ TD(LOCKS), XXXXXXX,
+ XXXXXXX,
+ FC_BSLS, KC_SPC, XXXXXXX,
// right hand
- XXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- XXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
- XXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
- AC_EQL, XXX, XXX, XXX, XXX,
- XXX, TD(LAYERS),
- XXX,
- XXX, KC_ENT, FC_MINS
+ XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
+ AC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, TD(LAYERS),
+ XXXXXXX,
+ XXXXXXX, KC_ENT, FC_MINS
),
[SYMB] = LAYOUT_ergodox(
// left hand
- UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), __________,
- __________, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), __________,
- __________, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED),
- __________, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), __________,
- __________, __________, __________, __________, UC(0x00BF),
- __________, __________,
- __________,
- UC(0x00AC), __________, __________,
+ UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), _______,
+ _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______,
+ _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED),
+ _______, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), _______,
+ _______, _______, _______, _______, UC(0x00BF),
+ _______, _______,
+ _______,
+ _______, UC(0x00AC), _______,
// right hand
- __________, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), __________,
- __________, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), __________,
+ _______, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), _______,
+ _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______,
UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4),
- __________, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), __________,
- UC(0x00D7), __________, __________, __________, __________,
- __________, __________,
- __________,
- __________, __________, UC(0x00B1)
+ _______, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), _______,
+ UC(0x00D7), _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, UC(0x00B1), _______
),
[SYSH] = LAYOUT_ergodox(
// left hand
- UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), __________,
- __________, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), __________,
- __________, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD),
- __________, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), __________,
- __________, __________, __________, __________, UC(0x203D),
- __________, __________,
- __________,
- UC(0x00A6), __________, __________,
+ UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), _______,
+ _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), _______,
+ _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD),
+ _______, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), _______,
+ _______, _______, _______, _______, UC(0x203D),
+ _______, _______,
+ _______,
+ _______, UC(0x00A6), _______,
// right hand
- __________, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), __________,
- __________, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), __________,
+ _______, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), _______,
+ _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______,
UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8),
- __________, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), __________,
- UC(0x00F7), __________, __________, __________, __________,
- __________, __________,
- __________,
- __________, __________, UC(0x00AA)
+ _______, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), _______,
+ UC(0x00F7), _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, UC(0x00AA), _______
),
[NUMP] = LAYOUT_ergodox(
// left hand
- __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________,
- __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________,
- __________, __________, KC_P1, KC_P2, KC_P3, KC_PMNS,
- __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________,
- __________, __________, __________, __________, __________,
- __________, __________,
- __________,
- __________, __________, __________,
+ _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
+ _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
+ _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS,
+ _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
// right hand
- __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________,
- __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________,
- __________, KC_P1, KC_P2, KC_P3, KC_PMNS, __________,
- __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________,
- __________, __________, __________, __________, __________,
- __________, __________,
- __________,
- __________, KC_PENT, __________
+ _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
+ _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
+ _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
+ _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, KC_PENT, _______
),
[FCTN] = LAYOUT_ergodox(
// left hand
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, __________,
- KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, __________,
- KC_PAUS, __________, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
- __________, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, __________,
- __________, __________, __________, __________, __________,
- KC_F11, __________,
- __________,
- __________, __________, __________,
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
+ KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
+ KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
+ _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, _______,
+ _______, _______, _______, _______, _______,
+ KC_F11, _______,
+ _______,
+ _______, _______, _______,
// right hand
- __________, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
- __________, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
+ _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
+ _______, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
- __________, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, __________,
- __________, __________, __________, __________, __________,
- __________, KC_F12,
- __________,
- __________, __________, __________
+ _______, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
+ _______, _______, _______, _______, _______,
+ _______, KC_F12,
+ _______,
+ _______, _______, _______
),
};
-void eeconfig_init_user(void) {
- set_unicode_input_mode(UC_LNX); // Linux
- //set_unicode_input_mode(UC_OSX); // Mac OSX
- //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
- //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
-};
-
// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
+void matrix_init_user (void) {
ergodox_board_led_off();
};
// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
+void matrix_scan_user (void) {
if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) {
ergodox_right_led_1_on();
@@ -210,4 +139,4 @@ void matrix_scan_user(void) {
ergodox_right_led_3_off();
}
-};
+}; \ No newline at end of file
diff --git a/layouts/community/ergodox/nstickney/rules.mk b/layouts/community/ergodox/nstickney/rules.mk
deleted file mode 100644
index 4a3c58621c..0000000000
--- a/layouts/community/ergodox/nstickney/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-TAP_DANCE_ENABLE=yes
-LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/osx_neo2/keymap.c b/layouts/community/ergodox/osx_neo2/keymap.c
new file mode 100644
index 0000000000..9e379c73f5
--- /dev/null
+++ b/layouts/community/ergodox/osx_neo2/keymap.c
@@ -0,0 +1,694 @@
+#include QMK_KEYBOARD_H
+#include "layers.h"
+#include "version.h"
+
+// Timer to detect tap/hold on NEO_RMOD3 key
+static uint16_t neo3_timer;
+// State bitmap to track which key(s) enabled NEO_3 layer
+static uint8_t neo3_state = 0;
+// State bitmap to track key combo for CAPSLOCK
+static uint8_t capslock_state = 0;
+
+// bitmasks for modifier keys
+#define MOD_MASK_NONE 0
+
+// Used to trigger macros / sequences of keypresses
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ US_OSX_SMALL_UE,
+ US_OSX_SMALL_AE,
+ US_OSX_SMALL_OE,
+ US_OSX_CAPITAL_UE,
+ US_OSX_CAPITAL_AE,
+ US_OSX_CAPITAL_OE,
+ NEO2_LMOD3,
+ NEO2_RMOD3,
+ NEO2_1,
+ NEO2_2,
+ NEO2_3,
+ NEO2_4,
+ NEO2_5,
+ NEO2_6,
+ NEO2_7,
+ NEO2_8,
+ NEO2_9,
+ NEO2_0,
+ NEO2_MINUS,
+ NEO2_UE,
+ NEO2_AE,
+ NEO2_OE,
+ NEO2_COMMA,
+ NEO2_DOT,
+ NEO2_SHARP_S
+};
+
+#define NEO2_LMOD4 TT(NEO_4)
+#define NEO2_RMOD4 NEO2_LMOD4
+
+// NEO_3 special characters
+#define US_OSX_SUPERSCRIPT_1 KC_NO // ¹
+#define US_OSX_SUPERSCRIPT_2 KC_NO // ²
+#define US_OSX_SUPERSCRIPT_3 KC_NO // ³
+#define US_OSX_RSAQUO LALT(LSFT(KC_4)) // ›
+#define US_OSX_LSAQUO LALT(LSFT(KC_3)) // ‹
+#define US_OSX_CENT LALT(KC_4) // ¢
+#define US_OSX_YEN LALT(KC_Y) // ¥
+#define US_OSX_SBQUO LALT(LSFT(KC_0)) // ‚
+#define US_OSX_LEFT_SINGLE_QUOTE LALT(KC_RBRACKET) // ‘
+#define US_OSX_RIGHT_SINGLE_QUOTE LALT(LSFT(KC_RBRACKET)) // ’
+#define US_OSX_ELLIPSIS LALT(KC_SCOLON) // …
+#define US_OSX_UNDERSCORE LSFT(KC_MINUS) // _
+#define US_OSX_LBRACKET KC_LBRACKET // [
+#define US_OSX_RBRACKET KC_RBRACKET // ]
+#define US_OSX_CIRCUMFLEX LSFT(KC_6) // ^
+#define US_OSX_EXCLAMATION LSFT(KC_1) // !
+#define US_OSX_LESSTHAN LSFT(KC_COMMA) // <
+#define US_OSX_GREATERTHAN LSFT(KC_DOT) // >
+#define US_OSX_EQUAL KC_EQUAL // =
+#define US_OSX_AMPERSAND LSFT(KC_7) // &
+#define US_OSX_SMALL_LONG_S KC_NO // ſ
+#define US_OSX_BSLASH KC_BSLASH
+#define US_OSX_SLASH KC_SLASH // /
+#define US_OSX_CLBRACKET LSFT(KC_LBRACKET) // {
+#define US_OSX_CRBRACKET LSFT(KC_RBRACKET) // }
+#define US_OSX_ASTERISK LSFT(KC_8) // *
+#define US_OSX_QUESTIONMARK LSFT(KC_SLASH) // ?
+#define US_OSX_LPARENTHESES LSFT(KC_9) // (
+#define US_OSX_RPARENTHESES LSFT(KC_0) // )
+#define US_OSX_HYPHEN_MINUS KC_MINUS // -
+#define US_OSX_COLON LSFT(KC_SCOLON) // :
+#define US_OSX_AT LSFT(KC_2) // @
+#define US_OSX_HASH LSFT(KC_3) // #
+#define US_OSX_PIPE LSFT(KC_BSLASH) // |
+#define US_OSX_TILDE LSFT(KC_GRAVE) // ~
+#define US_OSX_BACKTICK KC_GRAVE // `
+#define US_OSX_PLUS LSFT(KC_EQUAL) // +
+#define US_OSX_PERCENT LSFT(KC_5) // %
+#define US_OSX_DOUBLE_QUOTE LSFT(KC_QUOTE) // "
+#define US_OSX_SINGLE_QUOTE KC_QUOTE // '
+#define US_OSX_SEMICOLON KC_SCOLON // ;
+
+// NEO_4 special characters
+#define US_OSX_FEMININE_ORDINAL LALT(KC_9) // ª
+#define US_OSX_MASCULINE_ORDINAL LALT(KC_0) // º
+#define US_OSX_NUMERO_SIGN KC_NO // №
+#define US_OSX_MIDDLE_DOT LALT(LSFT(KC_9)) // ·
+#define US_OSX_BRITISH_POUND LALT(KC_3) // £
+#define US_OSX_CURRENCY_SIGN KC_NO // ¤
+#define US_OSX_INV_EXCLAMATION LALT(KC_1) // ¡
+#define US_OSX_INV_QUESTIONMARK LALT(LSFT(KC_SLASH)) // ¿
+#define US_OSX_DOLLAR KC_DOLLAR // $
+#define US_OSX_EM_DASH LALT(LSFT(KC_MINUS)) // —
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* NEO_1: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ---- | 1/° | 2/§ | 3/ | 4/» | 5/« | ESC | | US_1 | 6/$ | 7/€ | 8/„ | 9/“ | 0/” | -/— |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | TAB | X | V | L | C | W | LCTL | | RCTL | K | H | G | F | Q | ß |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | NEO_3 | U | I | A | E | O |------| |------| S | N | R | T | D | Y |
+ * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------|
+ * | LSHIFT | Ü | Ö | Ä | P | Z | | | | B | M | ,/– | ./• | J | RSHIFT |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | ---- | ---- | LCTL | LALT | LGUI | | RGUI | Left | Down | Up | Right|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | FKEYS| Home | | PgUp | FKEYS|
+ * ,------|------|------| |------+------+------.
+ * | Back-| | End | | PgDn | | |
+ * | space|Delete|------| |------| Enter|Space |
+ * | | | NEO_4| | NEO_4| | |
+ * `--------------------' `--------------------'
+ */
+ [NEO_1] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_NO /* NOOP */, NEO2_1, NEO2_2, NEO2_3, NEO2_4, NEO2_5, KC_ESCAPE,
+ KC_TAB, KC_X, KC_V, KC_L, KC_C, KC_W, KC_LCTRL,
+ NEO2_LMOD3, KC_U, KC_I, KC_A, KC_E, KC_O, /* --- */
+ KC_LSHIFT, NEO2_UE, NEO2_OE, NEO2_AE, KC_P, KC_Z, KC_LALT,
+ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_LCTRL, KC_LALT, KC_LGUI, /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ MO(FKEYS), KC_HOME,
+ /* KC_BSPACE */ /* KC_DELETE */ KC_END,
+ KC_BSPACE, KC_DELETE, NEO2_LMOD4,
+
+ // right hand side - main
+ TO(US_1), NEO2_6, NEO2_7, NEO2_8, NEO2_9, NEO2_0, NEO2_MINUS,
+ KC_RCTRL, KC_K, KC_H, KC_G, KC_F, KC_Q, NEO2_SHARP_S,
+ /* --- */ KC_S, KC_N, KC_R, KC_T, KC_D, NEO2_RMOD3,
+ KC_RALT, KC_B, KC_M, NEO2_COMMA, NEO2_DOT, KC_J, KC_RSHIFT,
+ /* --- */ /* --- */ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
+
+ // right hand side - thumb cluster
+ KC_PGUP, MO(FKEYS), /* --- */
+ KC_PGDOWN, /* --- */ /* --- */
+ NEO2_RMOD4, KC_ENTER, KC_SPACE
+ ),
+
+ /* NEO_3: Symbol layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ---- | ---- | ---- | ---- | › | ‹ | | | | ¢ | ¥ | ‚ | ‘ | ’ | ---- |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ---- | … | _ | [ | ] | ^ | | | | ! | < | > | = | & | ---- |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | \ | / | { | } | * |------| |------| ? | ( | ) | - | : | @ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | | | ~ | ` | | | | + | % | " | ' | ; | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ [NEO_3] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, US_OSX_RSAQUO, US_OSX_LSAQUO, _______,
+ KC_NO /* NOOP */, US_OSX_ELLIPSIS, US_OSX_UNDERSCORE, US_OSX_LBRACKET, US_OSX_RBRACKET, US_OSX_CIRCUMFLEX, _______,
+ _______, US_OSX_BSLASH, US_OSX_SLASH, US_OSX_CLBRACKET, US_OSX_CRBRACKET, US_OSX_ASTERISK, /* --- */
+ _______, US_OSX_HASH, US_OSX_DOLLAR, US_OSX_PIPE, US_OSX_TILDE, US_OSX_BACKTICK, _______,
+ _______, _______, _______, _______, _______, /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ _______, _______,
+ /* --- */ /* --- */ _______,
+ _______, _______, _______,
+
+ // right hand side - main
+ _______, US_OSX_CENT, US_OSX_YEN, US_OSX_SBQUO, US_OSX_LEFT_SINGLE_QUOTE, US_OSX_RIGHT_SINGLE_QUOTE, KC_NO,
+ _______, US_OSX_EXCLAMATION, US_OSX_LESSTHAN, US_OSX_GREATERTHAN, US_OSX_EQUAL, US_OSX_AMPERSAND, US_OSX_SMALL_LONG_S,
+ /* --- */ US_OSX_QUESTIONMARK, US_OSX_LPARENTHESES, US_OSX_RPARENTHESES, US_OSX_HYPHEN_MINUS, US_OSX_COLON, NEO2_RMOD3,
+ _______, US_OSX_PLUS, US_OSX_PERCENT, US_OSX_DOUBLE_QUOTE, US_OSX_SINGLE_QUOTE, US_OSX_SEMICOLON, _______,
+ /* --- */ /* --- */ _______, _______, _______, _______, _______,
+
+ // right hand side - thumb cluster
+ _______, _______, /* --- */
+ _______, /* --- */ /* --- */
+ _______, _______, _______
+ ),
+
+ /* NEO_4: Cursor & Numpad
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ---- | ª | º | ---- | · | £ | | | | ---- | Tab | / | * | - | ---- |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ---- | PgUp | ⌫ | Up | ⌦ | PgDn | | | | ¡ | 7 | 8 | 9 | + | – |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | Home | Left | Down | Right| End |------| |------| ¿ | 4 | 5 | 6 | , | . |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | Esc | Tab | Ins |Return| ---- | | | | : | 1 | 2 | 3 | ; | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | 0 | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ [NEO_4] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_NO /* NOOP */, US_OSX_FEMININE_ORDINAL, US_OSX_MASCULINE_ORDINAL, KC_NO /* NOOP */, US_OSX_MIDDLE_DOT, US_OSX_BRITISH_POUND, _______,
+ _______, KC_PGUP, KC_BSPACE, KC_UP, KC_DELETE, KC_PGDOWN, _______,
+ _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, /* --- */
+ _______, KC_ESCAPE, KC_TAB, KC_INSERT, KC_ENTER, KC_NO /* NOOP */, _______,
+ _______, _______, _______, _______, _______, /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ _______, _______,
+ /* --- */ /* --- */ _______,
+ _______, _______, _______,
+
+ // right hand side - main
+ _______, US_OSX_CURRENCY_SIGN, KC_TAB, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_NO /* NOOP */,
+ _______, US_OSX_INV_EXCLAMATION, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, US_OSX_EM_DASH,
+ /* --- */ US_OSX_INV_QUESTIONMARK, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_COMMA, KC_KP_DOT,
+ _______, US_OSX_COLON, KC_KP_1, KC_KP_2, KC_KP_3, US_OSX_SEMICOLON, _______,
+ /* --- */ /* --- */ _______, KC_KP_0, _______, _______, _______,
+
+ // right hand side - thumb cluster
+ _______, _______, /* --- */
+ _______, /* --- */ /* --- */
+ _______, _______, _______
+ ),
+
+ /* NEO_5: Greek
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ [NEO_5] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, /* --- */
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ _______, _______, _______, _______, _______, /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ _______, _______,
+ /* --- */ /* --- */ _______,
+ _______, _______, _______,
+
+ // right hand side - main
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
+ /* --- */ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ /* --- */ /* --- */ _______, _______, _______, _______, _______,
+
+ // right hand side - thumb cluster
+ _______, _______, /* --- */
+ _______, /* --- */ /* --- */
+ _______, _______, _______
+ ),
+
+ /* NEO_6: Math symbols
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ [NEO_6] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, /* --- */
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ _______, _______, _______, _______, _______, /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ _______, _______,
+ /* --- */ /* --- */ _______,
+ _______, _______, _______,
+
+ // right hand side - main
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
+ /* --- */ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
+ _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
+ /* --- */ /* --- */ _______, _______, _______, _______, _______,
+
+ // right hand side - thumb cluster
+ _______, _______, /* --- */
+ _______, /* --- */ /* --- */
+ _______, _______, _______
+ ),
+
+ /* US_1: US QWERTY
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | ESC | | NEO_1| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | \ | Q | W | E | R | T | ---- | | [ | Y | U | I | O | P | ] |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| ---- | | ---- |------+------+------+------+------+--------|
+ * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / | RSHIFT |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LGUI | ` | ---- | ---- | FKEYS| | Left | Down | Up | Right| RGUI |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LCTRL| LALT | | RALT | RCTRL|
+ * ,------|------|------| |------+------+------.
+ * | | | HOME | | PGUP | | |
+ * | BKSP | DEL |------| |------| ENTR | SPCE |
+ * | | | END | | PGDN | | |
+ * `--------------------' `--------------------'
+ */
+ [US_1] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESCAPE,
+ KC_BSLASH, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO /* NOOP */,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, /* --- */
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO /* NOOP */,
+ KC_LGUI, KC_GRAVE, KC_NO, KC_NO, MO(FKEYS), /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ KC_LCTRL, KC_LALT,
+ /* --- */ /* --- */ KC_HOME,
+ KC_BSPACE, KC_DELETE, KC_END,
+
+ // right hand side - main
+ TO(NEO_1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
+ KC_LBRACKET, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET,
+ /* --- */ KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE,
+ KC_NO /* NOOP */, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT,
+ /* --- */ /* --- */ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RGUI,
+
+ // right hand side - thumb cluster
+ KC_RALT, KC_RCTRL, /* --- */
+ KC_PGUP, /* --- */ /* --- */
+ KC_PGDOWN, KC_ENTER, KC_SPACE
+ ),
+
+ /* FKEYS: Function keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Prev | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | VolUp |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Play | | | | | | | | | | | | | | VolDn |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Next | | | | | |------| |------| | | | | | Mute |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ [FKEYS] = LAYOUT_ergodox(
+ // left hand side - main
+ KC_MEDIA_REWIND, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
+ KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, _______, _______,
+ KC_MEDIA_FAST_FORWARD, _______, _______, _______, _______, _______, /* --- */
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, /* --- */ /* --- */
+
+ // left hand side - thumb cluster
+ /* --- */ _______, _______,
+ /* --- */ /* --- */ _______,
+ _______, _______, _______,
+
+ // right hand side - main
+ KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_AUDIO_VOL_UP,
+ _______, _______, _______, _______, _______, _______, KC_AUDIO_VOL_DOWN,
+ /* --- */ _______, _______, _______, _______, _______, KC_AUDIO_MUTE,
+ _______, _______, _______, _______, _______, _______, _______,
+ /* --- */ /* --- */ _______, _______, _______, _______, _______,
+
+ // right hand side - thumb cluster
+ _______, _______, /* --- */
+ _______, /* --- */ /* --- */
+ _______, _______, _______
+ ),
+};
+
+// Send a key tap with a optional set of modifiers.
+void tap_with_modifiers(uint16_t keycode, uint8_t force_modifiers) {
+ uint8_t active_modifiers = get_mods();
+
+ if ((force_modifiers & MOD_MASK_SHIFT) && !(active_modifiers & MOD_MASK_SHIFT)) register_code(KC_LSFT);
+ if ((force_modifiers & MOD_MASK_CTRL) && !(active_modifiers & MOD_MASK_CTRL)) register_code(KC_LCTRL);
+ if ((force_modifiers & MOD_MASK_ALT) && !(active_modifiers & MOD_MASK_ALT)) register_code(KC_LALT);
+ if ((force_modifiers & MOD_MASK_GUI) && !(active_modifiers & MOD_MASK_GUI)) register_code(KC_LGUI);
+
+ register_code(keycode);
+ unregister_code(keycode);
+
+ if ((force_modifiers & MOD_MASK_SHIFT) && !(active_modifiers & MOD_MASK_SHIFT)) unregister_code(KC_LSFT);
+ if ((force_modifiers & MOD_MASK_CTRL) && !(active_modifiers & MOD_MASK_CTRL)) unregister_code(KC_LCTRL);
+ if ((force_modifiers & MOD_MASK_ALT) && !(active_modifiers & MOD_MASK_ALT)) unregister_code(KC_LALT);
+ if ((force_modifiers & MOD_MASK_GUI) && !(active_modifiers & MOD_MASK_GUI)) unregister_code(KC_LGUI);
+}
+
+// Special remapping for keys with different keycodes/macros when used with shift modifiers.
+bool process_record_user_shifted(uint16_t keycode, keyrecord_t *record) {
+ uint8_t active_modifiers = get_mods();
+ uint8_t shifted = active_modifiers & MOD_MASK_SHIFT;
+
+ // Early return on key release
+ if (!record->event.pressed) {
+ return true;
+ }
+
+ if (shifted) {
+ clear_mods();
+
+ switch (keycode) {
+ case NEO2_1:
+ // degree symbol
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_8) SS_UP(X_LSHIFT) SS_UP(X_LALT));
+ break;
+ case NEO2_2:
+ // section symbol
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_6) SS_UP(X_LALT));
+ break;
+ case NEO2_3:
+ // There is no OSX key combination for the script small l character
+ break;
+ case NEO2_4:
+ // right angled quote
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_BSLASH) SS_UP(X_LSHIFT) SS_UP(X_LALT));
+ break;
+ case NEO2_5:
+ // left angled quote
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_BSLASH) SS_UP(X_LALT));
+ break;
+ case NEO2_6:
+ // dollar sign
+ SEND_STRING(SS_DOWN(X_LSHIFT) SS_TAP(X_4) SS_UP(X_LSHIFT));
+ break;
+ case NEO2_7:
+ // euro sign
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_2) SS_UP(X_LSHIFT) SS_UP(X_LALT));
+ break;
+ case NEO2_8:
+ // low9 double quote
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_W) SS_UP(X_LSHIFT) SS_UP(X_LALT));
+ break;
+ case NEO2_9:
+ // left double quote
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_LBRACKET) SS_UP(X_LALT));
+ break;
+ case NEO2_0:
+ // right double quote
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_LBRACKET) SS_UP(X_LSHIFT) SS_UP(X_LALT));
+ break;
+ case NEO2_MINUS:
+ // em dash
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_MINUS) SS_UP(X_LSHIFT) SS_UP(X_LALT));
+ break;
+ case NEO2_COMMA:
+ // en dash
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_MINUS) SS_UP(X_LALT));
+ break;
+ case NEO2_DOT:
+ // bullet
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_8) SS_UP(X_LALT));
+ break;
+ case NEO2_SHARP_S:
+ // german sharp s
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_S) SS_UP(X_LALT));
+ break;
+ case NEO2_UE:
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_U) SS_UP(X_LSHIFT));
+ break;
+ case NEO2_OE:
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_O) SS_UP(X_LSHIFT));
+ break;
+ case NEO2_AE:
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_A) SS_UP(X_LSHIFT));
+ break;
+ default:
+ set_mods(active_modifiers);
+ return true;
+ }
+
+ set_mods(active_modifiers);
+ return false;
+ } else {
+ switch (keycode) {
+ case NEO2_1:
+ SEND_STRING(SS_TAP(X_1));
+ break;
+ case NEO2_2:
+ SEND_STRING(SS_TAP(X_2));
+ break;
+ case NEO2_3:
+ SEND_STRING(SS_TAP(X_3));
+ break;
+ case NEO2_4:
+ SEND_STRING(SS_TAP(X_4));
+ break;
+ case NEO2_5:
+ SEND_STRING(SS_TAP(X_5));
+ break;
+ case NEO2_6:
+ SEND_STRING(SS_TAP(X_6));
+ break;
+ case NEO2_7:
+ SEND_STRING(SS_TAP(X_7));
+ break;
+ case NEO2_8:
+ SEND_STRING(SS_TAP(X_8));
+ break;
+ case NEO2_9:
+ SEND_STRING(SS_TAP(X_9));
+ break;
+ case NEO2_0:
+ SEND_STRING(SS_TAP(X_0));
+ break;
+ case NEO2_MINUS:
+ SEND_STRING(SS_TAP(X_MINUS));
+ break;
+ case NEO2_COMMA:
+ SEND_STRING(SS_TAP(X_COMMA));
+ break;
+ case NEO2_DOT:
+ SEND_STRING(SS_TAP(X_DOT));
+ break;
+ case NEO2_SHARP_S:
+ // german sharp s
+ SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_S) SS_UP(X_LALT));
+ break;
+ case NEO2_UE:
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_TAP(X_U));
+ break;
+ case NEO2_OE:
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_TAP(X_O));
+ break;
+ case NEO2_AE:
+ SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_TAP(X_A));
+ break;
+ default:
+ return true;
+ }
+
+ return false;
+ }
+}
+
+// Runs for each key down or up event.
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_LSHIFT:
+ if (record->event.pressed) {
+ capslock_state |= (MOD_BIT(KC_LSHIFT));
+ } else {
+ capslock_state &= ~(MOD_BIT(KC_LSHIFT));
+ }
+ break;
+ case KC_RSHIFT:
+ if (record->event.pressed) {
+ capslock_state |= MOD_BIT(KC_RSHIFT);
+ } else {
+ capslock_state &= ~(MOD_BIT(KC_RSHIFT));
+ }
+ break;
+ case NEO2_LMOD3:
+ if (record->event.pressed) {
+ layer_on(NEO_3);
+ neo3_state |= (1 << 1);
+ } else {
+ // Turn off NEO_3 layer unless it's enabled through NEO2_RMOD3 as well.
+ if ((neo3_state & ~(1 << 1)) == 0) {
+ layer_off(NEO_3);
+ }
+ neo3_state &= ~(1 << 1);
+ }
+ break;
+ case NEO2_RMOD3:
+ if (record->event.pressed) {
+ neo3_timer = timer_read();
+ neo3_state |= (1 << 2);
+ layer_on(NEO_3);
+ } else {
+ // Turn off NEO_3 layer unless it's enabled through NEO2_LMOD3 as well.
+ if ((neo3_state & ~(1 << 2)) == 0) {
+ layer_off(NEO_3);
+ }
+ neo3_state &= ~(1 << 2);
+
+ // Was the NEO2_RMOD3 key TAPPED?
+ if (timer_elapsed(neo3_timer) <= 150) {
+ if (neo3_state > 0) {
+ // We are still in NEO_3 layer, send keycode and modifiers for @
+ tap_with_modifiers(KC_2, MOD_MASK_SHIFT);
+ return false;
+ } else {
+ // Do the normal key processing, send y
+ tap_with_modifiers(KC_Y, MOD_MASK_NONE);
+ return false;
+ }
+ }
+ }
+ break;
+ }
+
+ if ((capslock_state & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) {
+ // CAPSLOCK is currently active, disable it
+ if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) {
+ unregister_code(KC_LOCKING_CAPS);
+ } else {
+ register_code(KC_LOCKING_CAPS);
+ }
+ return false;
+ }
+
+ return process_record_user_shifted(keycode, record);
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void){
+
+};
+
+// 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 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+};
diff --git a/layouts/community/ergodox/osx_neo2/layers.h b/layouts/community/ergodox/osx_neo2/layers.h
new file mode 100644
index 0000000000..a5e0cba00d
--- /dev/null
+++ b/layouts/community/ergodox/osx_neo2/layers.h
@@ -0,0 +1,9 @@
+enum layers {
+ NEO_1, // layer_0
+ NEO_3, // layer_1
+ NEO_4, // layer_2
+ NEO_5, // layer_3
+ NEO_6, // layer_4
+ US_1, // layer_5
+ FKEYS // layer_6
+}; \ No newline at end of file
diff --git a/layouts/community/ergodox/osx_neo2/readme.md b/layouts/community/ergodox/osx_neo2/readme.md
new file mode 100644
index 0000000000..cab4dfe709
--- /dev/null
+++ b/layouts/community/ergodox/osx_neo2/readme.md
@@ -0,0 +1,219 @@
+# Neo 2 for ErgoDox on QWERTY
+
+# Description
+
+The Neo layout is an optimized German keyboard layout developed by the
+Neo Users Group, supporting many Latin-based alphabets. The positions
+of the letters are not only optimized for German letter frequency,
+but also for typical groups of two or three letters. English is
+considered a primary target as well.
+
+The design tries to enforce the alternating usage of both hands to
+increase typing speed and incorporates ideas from de-ergo and other
+ergonomic layouts. High frequency keys are placed in the home row.
+The current layout Neo 2.0 has unique features making it suited for
+many target groups such as programmers, mathematicians, scientists or
+LaTeX authors.
+
+Neo is grouped into six layers, each dedicated to a special purpose.
+
+# Layers
+
+At the core this is a Neo 2.0 layout adjusted for the Ergodox Infinity.
+The keymap is laid out expecting a macOs using the US QWERTY or ABC
+Extended layout.
+
+[Layer 1](#layer-1) Lowercase, upppercase and typographical characters
+
+[Layer 2](#layer-2) Special characters for programming
+
+[Layer 3](#layer-3) WASD-like movement keys and number block
+
+[Layer 4](#layer-4) Greek characters
+
+[Layer 5](#layer-5) Mathematical symbols and Greek uppercase characters
+
+[Layer 6](#layer-6) Ergodox Infinity US QWERTY layout
+
+[Layer 7](#layer-7) Function keys
+
+## Legend
+
+ * Keys marked with `----` are dead keys.
+ * Blank keys are transparent and fall through to lower levels.
+
+## Layer 1
+
+This layer implements NEO layers 1 and 2.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ---- | 1/° | 2/§ | 3/ | 4/» | 5/« | ESC | | US_1 | 6/$ | 7/€ | 8/„ | 9/“ | 0/” | -/— |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| TAB | X | V | L | C | W | LCTL | | RCTL | K | H | G | F | Q | ß |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| NEO_3 | U | I | A | E | O |------| |------| S | N | R | T | D | Y |
+|--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------|
+| LSHIFT | Ü | Ö | Ä | P | Z | | | | B | M | ,/– | ./• | J | RSHIFT |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | ---- | ---- | LCTL | LALT | LGUI | | RGUI | Left | Down | Up | Right|
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | FKEYS| Home | | PgUp | FKEYS|
+ ,------|------|------| |------+------+------.
+ | Back-| | End | | PgDn | | |
+ | space|Delete|------| |------| Enter|Space |
+ | | | NEO_4| | NEO_4| | |
+ `--------------------' `--------------------'
+```
+
+## Layer 2
+
+This layer implements NEO layer 3.
+
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ---- | ---- | ---- | ---- | › | ‹ | | | | ¢ | ¥ | ‚ | ‘ | ’ | ---- |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| ---- | … | _ | [ | ] | ^ | | | | ! | < | > | = | & | ---- |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | \ | / | { | } | * |------| |------| ? | ( | ) | - | : | @ |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | # | $ | | | ~ | ` | | | | + | % | " | ' | ; | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Layer 3
+
+This layer implements NEO layer 4.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ---- | ª | º | ---- | · | £ | | | | ---- | Tab | / | * | - | ---- |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| ---- | PgUp | ⌫ | Up | ⌦ | PgDn | | | | ¡ | 7 | 8 | 9 | + | – |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | Home | Left | Down | Right| End |------| |------| ¿ | 4 | 5 | 6 | , | . |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | Esc | Tab | Ins |Return| ---- | | | | : | 1 | 2 | 3 | ; | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | 0 | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Layer 4
+
+This layer is currently empty/reserved for NEO layer 5.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Layer 5
+
+This layer is currently empty/reserved for NEO layer 6.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Layer 6
+
+A bare bones implementation of the default Ergodox Infinity layout.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| = | 1 | 2 | 3 | 4 | 5 | ESC | | NEO_1| 6 | 7 | 8 | 9 | 0 | - |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| \ | Q | W | E | R | T | ---- | | [ | Y | U | I | O | P | ] |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+|--------+------+------+------+------+------| ---- | | ---- |------+------+------+------+------+--------|
+| LSHIFT | Z | X | V | B | M | | | | N | M | , | . | / | RSHIFT |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | LGUI | ` | ---- | ---- | FKEYS| | Left | Down | Up | Right| RGUI |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | LCTRL| LALT | | RALT | RCTRL|
+ ,------|------|------| |------+------+------.
+ | | | HOME | | PGUP | | |
+ | BKSP | DEL |------| |------| ENTR | SPCE |
+ | | | END | | PGDN | | |
+ `--------------------' `--------------------'
+```
+
+## Layer 7
+
+This layer implements function and multimedia keys.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| Prev | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | VolUp |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| Play | | | | | | | | | | | | | | VolDn |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| Next | | | | | |------| |------| | | | | | Mute |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | | | | | | | | | | | | | | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
diff --git a/layouts/community/ergodox/osx_neo2/visualizer.c b/layouts/community/ergodox/osx_neo2/visualizer.c
new file mode 100644
index 0000000000..653201bb8a
--- /dev/null
+++ b/layouts/community/ergodox/osx_neo2/visualizer.c
@@ -0,0 +1,47 @@
+#include "layers.h"
+#include "simple_visualizer.h"
+#include "util.h"
+
+static void get_visualizer_layer_and_color(visualizer_state_t *state) {
+ uint8_t layer = biton32(state->status.layer);
+
+ // Go from highest to lowest layer to get the right text/color combination.
+ switch (layer) {
+ // #AEB2F4 / hsv(65.71%, 28.69%, 95.69%)
+ case FKEYS:
+ // #F4AEDC / hsv(89.05%, 28.69%, 95.69%)
+ state->layer_text = "FUNCTION KEYS";
+ state->target_lcd_color = LCD_COLOR(228, 73, 245);
+ break;
+ case US_1:
+ // #F4B993 / hsv(6.53%, 39.75%, 95.69%)
+ state->layer_text = "QWERTY";
+ state->target_lcd_color = LCD_COLOR(17, 102, 245);
+ break;
+ case NEO_6:
+ // #F4E393 / hsv(13.75%, 39.75%, 95.69%)
+ state->layer_text = "NEO: 6";
+ state->target_lcd_color = LCD_COLOR(35, 102, 245);
+ break;
+ case NEO_5:
+ // #C6F493 / hsv(24.57%, 39.75%, 95.69%)
+ state->layer_text = "NEO: 5";
+ state->target_lcd_color = LCD_COLOR(63, 102, 245);
+ break;
+ case NEO_4:
+ // #8EEBC9 / hsv(43.91%, 39.57%, 92.16%)
+ state->layer_text = "NEO: 4";
+ state->target_lcd_color = LCD_COLOR(112, 101, 189);
+ break;
+ case NEO_3:
+ // #93D2F4 / hsv(55.84%, 39.75%, 95.69%)
+ state->layer_text = "NEO: 3";
+ state->target_lcd_color = LCD_COLOR(143, 102, 245);
+ break;
+ default:
+ // #EEEEEE / hsv(0%, 0%, 93%)
+ state->layer_text = "NEO: 1";
+ state->target_lcd_color = LCD_COLOR(0, 0, 255);
+ break;
+ }
+}
diff --git a/layouts/community/ergodox/pvinis/Changelog.md b/layouts/community/ergodox/pvinis/Changelog.md
deleted file mode 100644
index e5816200b8..0000000000
--- a/layouts/community/ergodox/pvinis/Changelog.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## v0.3
-
-*2016-10-11*
-
-### Starting point
-
-* The starting point of this keymap. A beginner layout, and a couple placeholders.
diff --git a/layouts/community/ergodox/pvinis/Readme.md b/layouts/community/ergodox/pvinis/Readme.md
deleted file mode 100644
index af27210541..0000000000
--- a/layouts/community/ergodox/pvinis/Readme.md
+++ /dev/null
@@ -1,65 +0,0 @@
-pvinis' keymap
-==============
-
-This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
-
-[ez]: https://ergodox-ez.com/
-
-## Table of Contents
-
-* [Todo](#todo)
-* [Layouts](#layouts)
- - [Base layer](#base-layer)
- - [Beginner layer](#beginner-layer)
- - [QWERTY layer](#qwerty-layer)
- - [CARPALX layer](#carpalx-layer)
- - [System Control layer](#system-control-layer)
- - [Template layers](#template-layers)
-* [Building](#building)
-
-# Todo
-
-- [ ] Generate images from keymap
-- [ ] Implement algernon's heatmap
-- [ ] Implement `KC_POP`
-
-# Layouts
-
-## Base layer
-
-This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
-Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
-Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
-
-[hammerspoon]: http://www.hammerspoon.org/
-
-## Beginner layer
-
-This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
-
-## QWERTY layer
-
-This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
-
-## CARPALX layer
-
-This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
-
-[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
-[white]: https://github.com/mw8/white_keyboard_layout
-
-## System Control layer
-
-This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
-
-## Template layers
-
-I have two commented out layers that are just templates, so I can easily create a new layer.
-
-# Building
-
-```
-$ git clone https://github.com/qmk/qmk_firmware.git
-$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
-$ make
-```
diff --git a/layouts/community/ergodox/pvinis/keymap.c b/layouts/community/ergodox/pvinis/keymap.c
deleted file mode 100644
index 1bca0398dc..0000000000
--- a/layouts/community/ergodox/pvinis/keymap.c
+++ /dev/null
@@ -1,475 +0,0 @@
-// pvinis' ergodox keymap
-
-#include QMK_KEYBOARD_H
-#include "mousekey.h"
-
-// easier name for left ctrl-alt-gui
-#define ALLM(kc) LCAG(kc)
-
-// layers
-enum {
- BASE = 0,
- BEGIN,
- QWERTY,
- CARPALX,
- SYSCTL,
- MOUSE,
-};
-
-// extra keys
-enum {
- NONE = 0,
-
- // tap dance
- TD_FLSH, // flash keyboard
- TD_LAYR, // SYSCTL and MOUSE layer switch
-};
-
-// application selection
-// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
-#define AP_SLCK ALLM(KC_S)
-#define AP_XCOD ALLM(KC_X)
-#define AP_MSGR ALLM(KC_M)
-
-// keymaps
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* BASE
- * the base of the keyboard.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * |4x FLASH| | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |SYSCTL| | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |BEGIN |QWERTY| | | |
- * ,------|------|------| |------+--------+------.
- * | | |CARPAL| |Slack | | |
- * |Backsp|LShift|------| |------| Enter |Space |
- * | | |SYSCTL| |Msngr | | |
- * `--------------------' `----------------------'
- */
-[BASE] = LAYOUT_ergodox(
- TD(TD_FLSH) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,TG(BEGIN) ,TD(TD_LAYR)
- ,TG(MOUSE)
- ,KC_BSPC ,KC_LSFT ,TD(TD_LAYR)
-
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,MO(SYSCTL) ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,TG(SYSCTL) ,KC_NO
- ,AP_SLCK
- ,AP_MSGR ,KC_ENT ,KC_SPC
-),
-
-/* BEGIN
- * a beginner's keymap i currently use.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | opt | | 6 | 7 | 8 | 9 | 0 | - | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter |
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | ` | Cmd | | Cmd | | | | | ' | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[BEGIN] = LAYOUT_ergodox(
- KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_LALT
-,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
-,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
-,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN
-,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL
- ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS
- ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT
- ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT
- ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-),
-
-/* QWERTY
- * the default qwerty keymap. not really used, but i'll keep it here for now.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Z | X | C | V | B | | | | N | M | , | . | / | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[QWERTY] = LAYOUT_ergodox(
- KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
-,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS
-,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
-,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
- ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS
- ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS
- ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-),
-
-/* CARPALX
- * the keymap i would like to transition to.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | D | S | T | N | R |------| |------| I | A | E | O | H | |
- * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
- * | | Z | X | C | V | J | | | | K | P | , | . | / | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | Up | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[CARPALX] = LAYOUT_ergodox(
- KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
-,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS
-,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R
-,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
- ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS
- ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS
- ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-),
-
-/* SYSCTL
- * a keymap to control my system.
- *
- * ,--------------------------------------------------. ,------------------------------------------------------.
- * | ^ | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+----------+------+------+--------|
- * | | | | | | | | | | Mute | Home | Up | End | | |
- * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
- * | | | | | | |------| |------|VolUp | Left | Down |Right | | Lock |
- * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
- * | | | | | | | | | |VolDn | Prev |Play/Pause| Next | | Sleep |
- * `--------+------+------+------+------+-------------' `-------------+------+----------+------+------+--------'
- * | | | | | | | | | | | Power|
- * `----------------------------------' `--------------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | ^ | | | | |
- * `--------------------' `--------------------'
- */
-[SYSCTL] = LAYOUT_ergodox(
- KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_TRNS
-
- /*,KC_POP /// */,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- /* /// ,KC_PTRN*/,KC_NO ,KC_MUTE ,KC_HOME ,KC_UP ,KC_END ,KC_NO ,KC_NO
- ,KC_VOLU ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_NO ,LCTL(LSFT(KC_PWR))
- ,KC_NO ,KC_VOLD ,KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_NO ,KC_SLEP
- ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_PWR
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
-),
-
-/* MOUSE
- * a keymap to control my system.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ^ | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | MsUp | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | |MidClk|
- * ,------|------|------| |------+------+------.
- * | | | | | |Left |Right |
- * | | |------| |------| Click| Click|
- * | | | ^ | | | | |
- * `--------------------' `--------------------'
- */
-[MOUSE] = LAYOUT_ergodox(
- KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_TRNS
-
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
-),
-
-/* TEMPLATE
- * keymap template with transparent and non-transparent keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-/*
-[TEMPLATE] = LAYOUT_ergodox(
- KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-),
-[TEMPLATE] = LAYOUT_ergodox(
- KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
-),
-*/
-};
-
-// keyboard initialization
-void matrix_init_user() {
- ergodox_led_all_on();
- for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
- ergodox_led_all_set(i);
- wait_ms(5);
- }
- wait_ms(1000);
- for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
- ergodox_led_all_set(i);
- wait_ms(10);
- }
- ergodox_led_all_off();
-}
-
-// light up leds based on the layer
-void matrix_scan_user(void) {
- uint8_t layer = biton32(layer_state);
-
- switch(layer) {
- case SYSCTL:
- ergodox_right_led_3_on();
- break;
- case MOUSE:
- ergodox_right_led_2_on();
- break;
- default:
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- break;
- }
-}
-
-// extra keys
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- switch (id) {
- }
- return MACRO_NONE;
-}
-
-// tap dances
-
-// flash keyboard on 4x tap, with leds
-void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- ergodox_right_led_3_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_1_on();
- break;
- case 4:
- ergodox_right_led_3_off();
- wait_ms(50);
- ergodox_right_led_2_off();
- wait_ms(50);
- ergodox_right_led_1_off();
- break;
- }
-}
-
-void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count >= 4) {
- reset_keyboard();
- reset_tap_dance(state);
- }
-}
-
-void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
- ergodox_right_led_1_off();
- wait_ms(50);
- ergodox_right_led_2_off();
- wait_ms(50);
- ergodox_right_led_3_off();
-}
-
-// SYSCTL on first tap, MOUSE ON second tap
-void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
- uint8_t layer = biton32(layer_state);
-
- switch(state->count) {
- case 1:
- switch(layer) {
- case SYSCTL:
- layer_off(SYSCTL);
- break;
- case MOUSE:
- layer_off(MOUSE);
- break;
- default:
- layer_on(SYSCTL);
- break;
- }
- break;
- case 2:
- layer_on(MOUSE);
- break;
- }
-}
-
-qk_tap_dance_action_t tap_dance_actions[] = {
- [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
- [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
-};
diff --git a/layouts/community/ergodox/pvinis/rules.mk b/layouts/community/ergodox/pvinis/rules.mk
deleted file mode 100644
index 87cbd93c2b..0000000000
--- a/layouts/community/ergodox/pvinis/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-CONSOLE_ENABLE = no # for debugging
-
-SLEEP_LED_ENABLE = no # no led blinking while sleeping
-NKRO_ENABLE = yes # disable for windows
-TAP_DANCE_ENABLE = yes # tap-tap-tap
-
-
diff --git a/layouts/community/ortho_4x12/bredfield/config.h b/layouts/community/ortho_4x12/bredfield/config.h
new file mode 100644
index 0000000000..9065e41396
--- /dev/null
+++ b/layouts/community/ortho_4x12/bredfield/config.h
@@ -0,0 +1,4 @@
+#pragma once
+
+#define TAPPING_TERM 200
+#define PERMISSIVE_HOLD \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/bredfield/keymap.c b/layouts/community/ortho_4x12/bredfield/keymap.c
new file mode 100644
index 0000000000..78fa8c89f1
--- /dev/null
+++ b/layouts/community/ortho_4x12/bredfield/keymap.c
@@ -0,0 +1,175 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Keymap layers
+enum layer_names {
+ _BASE_LAYER,
+ _RAISE_LAYER,
+ _LOWER_LAYER,
+ _NUMPAD_LAYER,
+ _NAVIGATION_LAYER,
+ _UI_LAYER,
+ _KEYBOARD_LAYER,
+};
+
+// Layer switches aliases
+#define L_LOWER MO(_LOWER_LAYER)
+#define L_RAISE MO(_RAISE_LAYER)
+#define L_NUMPAD MO(_NUMPAD_LAYER)
+#define L_UI MO(_UI_LAYER)
+#define L_KEYBD MO(_KEYBOARD_LAYER)
+#define SCL_NAV LT(_NAVIGATION_LAYER, KC_SCLN)
+#define SFT_MIN MT(MOD_RSFT, KC_MINS)
+#define SFT_ENT KC_SFTENT
+
+// GUI chords
+#define GUI_1 LGUI(KC_1)
+#define GUI_2 LGUI(KC_2)
+#define GUI_3 LGUI(KC_3)
+#define GUI_4 LGUI(KC_4)
+#define GUI_5 LGUI(KC_5)
+#define GUI_6 LGUI(KC_6)
+#define GUI_7 LGUI(KC_7)
+#define GUI_8 LGUI(KC_8)
+#define GUI_9 LGUI(KC_9)
+#define GUI_0 LGUI(KC_0)
+#define GUI_MIN LGUI(KC_MINS)
+#define GUI_EQL LGUI(KC_EQL)
+#define GUI_LBR LGUI(KC_LBRC)
+#define GUI_RBR LGUI(KC_RBRC)
+#define GUI_ENT LGUI_T(KC_ENT)
+#define GUI_ESC LGUI_T(KC_ESC)
+#define GUI_TAB LGUI(KC_TAB) // application toggle
+#define GUI_GRV LGUI(KC_GRV) // window toggle
+#define GUI_SSF LGUI(LSFT(KC_3)) // Full screen shot
+#define GUI_SST LGUI(LSFT(KC_4)) // Targetted screen shot
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | - |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | GUI/Esc| A | S | D | F | G | H | J | K | L | ;/nav | " |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/ent|
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | Numpad | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Ctrl | Alt | UI | Keybd |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_BASE_LAYER] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
+ GUI_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SCL_NAV, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
+ L_NUMPAD,KC_LCTL, KC_LALT, KC_LGUI, L_LOWER, KC_BSPC, KC_SPACE,L_RAISE, KC_RCTRL,KC_RALT, L_UI, L_KEYBD
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | ` | ! | @ | # | $ | % | ^ | & | * | + | = | - |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | , | . | / | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | Del | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_LOWER_LAYER] = LAYOUT_ortho_4x12(
+ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PLUS, KC_EQL, _______,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | _ |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | { | [ | ( | < | > | ) | ] | } | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | Del | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_RAISE_LAYER] = LAYOUT_ortho_4x12(
+ KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_F8, KC_F9, KC_F10, KC_UNDS,
+ _______, XXXXXXX, KC_LCBR, KC_LBRC, KC_LPRN, KC_LABK, KC_RABK, KC_RPRN, KC_RBRC, KC_RCBR, XXXXXXX, KC_PIPE,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______
+),
+
+/* Numpad
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | 7 | 8 | 9 | * | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | 4 | 5 | 6 | - | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | 1 | 2 | 3 | + | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | 0 | . | / | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_NUMPAD_LAYER] = LAYOUT_ortho_4x12(
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_ASTR, XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_MINS, XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_PLUS, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_SLSH, _______, _______
+),
+
+/* Navigation
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | Home | Up | End | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | Left | Down | Right | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | Enter | | | Del | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_NAVIGATION_LAYER] = LAYOUT_ortho_4x12(
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, _______, _______, _______, KC_ENT, _______, _______, KC_DEL, _______, _______, _______, _______
+),
+
+/* UI
+ * ,--------------------------------------------------------------------------------+--------+-----------------.
+ * | GUI Tab| | | | | | | | | GUI - | GUI = | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | GUI ` | GUI 1 | GUI 2 | GUI 3 | GUI 4 | GUI 5 | GUI 6 | GUI 7 | | GUI [ | GUI ] | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
+ * | |Full SS | Area SS| | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | Prev | Play | Next | Bri - | | | Bri + | Mute | Vol - | Vol + | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_UI_LAYER] = LAYOUT_ortho_4x12(
+ GUI_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, GUI_MIN, GUI_EQL, XXXXXXX,
+ GUI_GRV, GUI_1, GUI_2, GUI_3, GUI_4, GUI_5, GUI_6, GUI_7, XXXXXXX, GUI_LBR, GUI_RBR, XXXXXXX,
+ _______, GUI_SSF, GUI_SST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, _______, _______, _______, _______
+),
+
+/* Keyboard
+ * ,--------------------------------------------------------------------------------+--------+-----------------.
+ * | | | | | | | | | | | | RESET |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | DEBUG |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+[_KEYBOARD_LAYER] = LAYOUT_ortho_4x12(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______
+),
+}; \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/bredfield/readme.md b/layouts/community/ortho_4x12/bredfield/readme.md
new file mode 100644
index 0000000000..e0f6e3f55e
--- /dev/null
+++ b/layouts/community/ortho_4x12/bredfield/readme.md
@@ -0,0 +1,105 @@
+# bredfield's 4x12 Ortho Keymap
+
+## Overview
+This is the layout that I use for all 4x12 boards, for writing and programming.
+
+- Works with planck or split style boards
+- Split spacebar; left position is backspace, which frees up the typical key for minus/undersc
+- Targets mac os; linux variant to come
+- Navigation layer is triggered via the `;` key, allowing for single-hand navigation without leaving the home row
+- Brackets are located on the home row on raise, which is comfortable when programming
+- Reduced mod / layer tap use, to avoid input lag
+- LEDs are overrated
+
+## Layers
+### Main
+```
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | - |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | GUI/Esc| A | S | D | F | G | H | J | K | L | ;/nav | " |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/ent|
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | Numpad | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Ctrl | Alt | UI | Keybd |
+ * `-----------------------------------------------------------------------------------------------------------'
+ ```
+
+ ### Lower
+ ```
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | ` | ! | @ | # | $ | % | ^ | & | * | + | = | - |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | , | . | / | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | Del | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+```
+
+### Raise
+```
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | _ |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | { | [ | ( | < | > | ) | ] | } | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | Del | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+```
+
+### Numpad
+```
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | 7 | 8 | 9 | * | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | 4 | 5 | 6 | - | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | 1 | 2 | 3 | + | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | 0 | . | / | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ ```
+
+### Navigation
+```
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | Home | Up | End | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | Left | Down | Right | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | Enter | | | Del | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+```
+
+### UI
+```
+ * ,--------------------------------------------------------------------------------+--------+-----------------.
+ * | GUI Tab| | | | | | | | | GUI - | GUI = | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | GUI ` | GUI 1 | GUI 2 | GUI 3 | GUI 4 | GUI 5 | GUI 6 | GUI 7 | | GUI [ | GUI ] | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
+ * | |Full SS | Area SS| | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | Prev | Play | Next | Bri - | | | Bri + | Mute | Vol - | Vol + | |
+ * `-----------------------------------------------------------------------------------------------------------'
+```
+
+### Keyboard
+```
+ * ,--------------------------------------------------------------------------------+--------+-----------------.
+ * | | | | | | | | | | | | RESET |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | DEBUG |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+ ``` \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
index e8dc185a1b..c1c016ce9f 100644
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ b/layouts/community/ortho_4x12/drashna/keymap.c
@@ -17,10 +17,6 @@
#include QMK_KEYBOARD_H
#include "drashna.h"
-#ifdef RGB_MATRIX_ENABLE
-extern bool g_suspend_state;
-extern rgb_config_t rgb_matrix_config;
-#endif
#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
#endif
@@ -184,15 +180,6 @@ void suspend_wakeup_init_keymap(void) {
rgb_matrix_set_suspend_state(false);
}
-extern led_config_t g_led_config;
-void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
- rgb_matrix_set_color( i, red, green, blue );
- }
- }
-}
-
void rgb_matrix_indicators_user(void) {
uint8_t this_mod = get_mods();
uint8_t this_led = host_keyboard_leds();
@@ -214,29 +201,29 @@ void rgb_matrix_indicators_user(void) {
) {
switch (biton32(layer_state)) {
case _RAISE:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _LOWER:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _ADJUST:
- rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
default:
switch (biton32(default_layer_state)) {
case _QWERTY:
- rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
+ rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
case _COLEMAK:
- rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
+ rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
case _DVORAK:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _WORKMAN:
- rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
+ rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
case _NORMAN:
- rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break;
+ rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
case _MALTRON:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
case _EUCALYN:
- rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break;
+ rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
case _CARPLAX:
- rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break;
+ rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
}
}
}
@@ -332,7 +319,7 @@ void dip_update(uint8_t index, bool active) {
#endif // KEYBOARD_planck_rev6
#ifdef KEYBOARD_planck_ez
-uint32_t layer_state_set_keymap(uint32_t state) {
+layer_state_t layer_state_set_keymap(layer_state_t state) {
palClearPad(GPIOB, 8);
palClearPad(GPIOB, 9);
diff --git a/layouts/community/ortho_4x12/jotix/config.h b/layouts/community/ortho_4x12/jotix/config.h
deleted file mode 100644
index cdc202d5f5..0000000000
--- a/layouts/community/ortho_4x12/jotix/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#define UNICODE_SELECTED_MODES UC_LNX
diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c
index cd5413da72..c6655afa52 100644
--- a/layouts/community/ortho_4x12/jotix/keymap.c
+++ b/layouts/community/ortho_4x12/jotix/keymap.c
@@ -1,183 +1,96 @@
#include QMK_KEYBOARD_H
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-#define _QWERTY 0
-#define _FN 1
-#define _UNICODE 2
-#define _ADJUST 3
-
-#define FN MO(_FN)
-#define UNICODE MO(_UNICODE)
-
-enum unicode_names {
- AACUTE,
- AACUTE_M,
- EACUTE,
- EACUTE_M,
- IACUTE,
- IACUTE_M,
- OACUTE,
- OACUTE_M,
- UACUTE,
- UACUTE_M,
- UDIER,
- UDIER_M,
- NTILDE,
- NTILDE_M,
- POUN,
- COPY,
- ORDF,
- ORDM,
- QUAD,
- CUBE,
- DEGR,
- QUAR,
- HALF,
- NOT,
- LDQU,
- RDQU,
- QUES,
- EXCL,
- ARRL,
- ARRU,
- ARRR,
- ARRD,
- EURO,
- SMIL,
- NEUT,
- SMIH,
- ANGR,
- WORR,
- DIZY,
- TONG,
- DISS,
- SCRE,
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
};
-const uint32_t PROGMEM unicode_map[] = {
- [AACUTE] = 0xe1, // á
- [AACUTE_M] = 0xc1, // Á
- [EACUTE] = 0xe9, // é
- [EACUTE_M] = 0xc9, // É
- [IACUTE] = 0xed, // í
- [IACUTE_M] = 0xcd, // Í
- [OACUTE] = 0xf3, // ó
- [OACUTE_M] = 0xd3, // Ó
- [UACUTE] = 0xfa, // ú
- [UACUTE_M] = 0xda, // Ú
- [UDIER] = 0xfc, // ü
- [UDIER_M] = 0xdc, // Ü
- [NTILDE] = 0xf1, // ñ
- [NTILDE_M] = 0xd1, // Ñ
- [POUN] = 0xa3, // £
- [COPY] = 0xa9, // ©
- [ORDF] = 0xaa, // ª
- [ORDM] = 0xba, // º
- [QUAD] = 0xb2, // ²
- [CUBE] = 0xb3, // ³
- [DEGR] = 0xb0, // °
- [QUAR] = 0xbc, // ¼
- [HALF] = 0xbd, // ½
- [NOT] = 0xac, // ¬
- [LDQU] = 0xab, // «
- [RDQU] = 0xbb, // »
- [QUES] = 0xbf, // ¿
- [EXCL] = 0xa1, // ¡
- [ARRL] = 0x2190, // ←
- [ARRU] = 0x2191, // ↑
- [ARRR] = 0x2192, // →
- [ARRD] = 0x2193, // ↓
- [EURO] = 0x20ac, // €
- [SMIL] = 0x1f603, // 😃
- [NEUT] = 0x1f610, // 😐
- [SMIH] = 0x1f608, // 😈
- [ANGR] = 0x1f620, // 😠
- [WORR] = 0x1f61f, // 😟
- [DIZY] = 0x1f635, // 😵
- [TONG] = 0x1f61d, // 😝
- [DISS] = 0x1f61e, // 😝
- [SCRE] = 0x1f631, // 😱
-};
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define TGLOWER TG(_LOWER)
-#define A_UNIC XP(AACUTE, AACUTE_M)
-#define E_UNIC XP(EACUTE, EACUTE_M)
-#define I_UNIC XP(IACUTE, IACUTE_M)
-#define O_UNIC XP(OACUTE, OACUTE_M)
-#define U_UNIC XP(UACUTE, UACUTE_M)
-#define Y_UNIC XP(UDIER, UDIER_M )
-#define N_UNIC XP(NTILDE, NTILDE_M)
-
-#define TAB_UNI LT(_UNICODE, KC_TAB)
+static bool is_ctl_pressed;
+static bool is_esc_pressed;
+static bool is_bspc_pressed;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* qwerty
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | esc | Q | W | E | R | T | Y | U | I | O | P | bksp |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * |tab/unic| A | S | D | F | G | H | J | K | L | ; | ' |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | lshift | Z | X | C | V | B | N | M | , | . | / | enter |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | lctrl | lalt | caps | del | lgui | space | space | fn | left | down | up | right |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- */
-[_QWERTY] = LAYOUT_ortho_4x12 (
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- TAB_UNI, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_LCTL, KC_LALT, KC_CAPS, KC_DEL, KC_LGUI, KC_SPC, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* fn
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | | F7 | F8 | F9 | F10 | F11 | F12 | ` | | | | |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- * | | | | | | | | | home | pgdn | pgun | end |
- * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
- */
-[_FN] = LAYOUT_ortho_4x12 (
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_GRV, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+[_QWERTY] = LAYOUT_ortho_4x12 (
+// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
+ KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSPC,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN, KC_ENT,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT, KC_UP, KC_SLSH,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ KC_LCTL,KC_LGUI,KC_LALT,TGLOWER, LOWER , KC_SPC, KC_SPC, RAISE ,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT
+// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
+),
+
+[_LOWER] = LAYOUT_ortho_4x12 (
+// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
+ KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ _______, KC_F1 , KC_F2 , KC_F3, KC_F4 ,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,_______,KC_MINS, KC_EQL,_______,_______,_______,_______,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
+// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
-/*
- * unicode
- */
-[_UNICODE] = LAYOUT_ortho_4x12 (
- _______, X(EXCL), X(WORR), E_UNIC, X(EURO), X(TONG), Y_UNIC, U_UNIC, I_UNIC, O_UNIC, X(POUN), _______,
- _______, A_UNIC, X(SMIL), X(DISS), X(SCRE), X(DEGR), X(SMIH), X(NOT), X(QUAR), X(HALF), X(ORDF), X(ORDM),
- _______, X(DIZY), X(ANGR), X(COPY), X(QUAD), X(CUBE), N_UNIC, X(NEUT), X(LDQU), X(RDQU), X(QUES), _______,
- _______, _______, _______, _______, _______, _______, _______, _______, X(ARRL), X(ARRD), X(ARRU), X(ARRR)
+[_RAISE] = LAYOUT_ortho_4x12 (
+// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
+ KC_TILD,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_DEL,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ KC_CAPS, KC_F9 , KC_F10, KC_F11, KC_F12,_______,KC_LCBR,KC_RCBR,KC_PIPE,KC_DQUO,_______,_______,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ _______,_______,_______,_______,_______,_______,KC_UNDS,KC_PLUS,KC_HOME,KC_PGUP,KC_VOLU,_______,
+// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
+ _______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_VOLD,KC_MUTE
+// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
-/*
- * Adjust
- */
-[_ADJUST] = LAYOUT_ortho_4x12 (
- _______, RESET, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, BL_STEP, BL_BRTG, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
};
uint32_t layer_state_set_user(uint32_t state) {
- return update_tri_layer_state(state, _FN, _UNICODE, _ADJUST);
+ #ifdef JOTANCK_LEDS
+ switch (biton32(state)) {
+ case _LOWER:
+ writePinHigh(JOTANCK_LED1);
+ writePinLow(JOTANCK_LED2);
+ break;
+ case _RAISE:
+ writePinLow(JOTANCK_LED1);
+ writePinHigh(JOTANCK_LED2);
+ break;
+ default:
+ writePinLow(JOTANCK_LED1);
+ writePinLow(JOTANCK_LED2);
+ break;
+ };
+ #endif
+ return state;
}
-void matrix_init_user(void) {
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_LCTL:
+ is_ctl_pressed = record->event.pressed;
+ break;
+ case KC_ESC:
+ is_esc_pressed = record->event.pressed;
+ break;
+ case KC_BSPC:
+ is_bspc_pressed = record->event.pressed;
+ break;
+ };
+ return true;
}
+void matrix_scan_user(void) {
+ if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) {
+ reset_keyboard();
+ }
+}
diff --git a/layouts/community/ortho_4x12/jotix/readme.md b/layouts/community/ortho_4x12/jotix/readme.md
index dafc22ecfe..ec1fb7ba9b 100644
--- a/layouts/community/ortho_4x12/jotix/readme.md
+++ b/layouts/community/ortho_4x12/jotix/readme.md
@@ -1,6 +1,6 @@
# Jotix ortho 4x12 keymap
-![keymap](https://i.imgur.com/aQQo4eb.jpg)
+![keymap](https://i.imgur.com/CpZCcuy.png)
Tested on:
diff --git a/layouts/community/ortho_4x12/jotix/rules.mk b/layouts/community/ortho_4x12/jotix/rules.mk
deleted file mode 100644
index 502b2def76..0000000000
--- a/layouts/community/ortho_4x12/jotix/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-UNICODEMAP_ENABLE = yes
diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
new file mode 100644
index 0000000000..b1341d41f9
--- /dev/null
+++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
@@ -0,0 +1,17 @@
+
+// generated from users/manna-harbour_miryoku/miryoku.org
+
+#define LAYOUT_miryoku(\
+K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
+K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
+K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
+N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
+)\
+LAYOUT_ortho_4x12(\
+KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\
+K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\
+K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\
+K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\
+)
+
+#include "manna-harbour_miryoku.c"
diff --git a/layouts/community/ortho_4x12/mindsound/config.h b/layouts/community/ortho_4x12/mindsound/config.h
index 76e7da2049..e615fe77eb 100644
--- a/layouts/community/ortho_4x12/mindsound/config.h
+++ b/layouts/community/ortho_4x12/mindsound/config.h
@@ -15,9 +15,10 @@
#define STARTUP_SONG SONG(ADVENTURE_TIME)
#define AUDIO_CLICKY
#define AUDIO_CLICKY_ON
+ #define AUDIO_CLICKY_DELAY_DURATION 0
#define AUDIO_CLICKY_FREQ_MAX 2500.0f
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 0.2f
- #define AUDIO_CLICKY_FREQ_DEFAULT 110.0f
+ #define AUDIO_CLICKY_FREQ_RANDOMNESS 0.3f
+ #define AUDIO_CLICKY_FREQ_DEFAULT 880.0f
#endif
// for some reason the LSvi rev1 disables action tapping...
diff --git a/layouts/community/ortho_5x12/333fred/keymap.c b/layouts/community/ortho_5x12/333fred/keymap.c
index cc699dfc54..a228a49d4e 100644
--- a/layouts/community/ortho_5x12/333fred/keymap.c
+++ b/layouts/community/ortho_5x12/333fred/keymap.c
@@ -3,11 +3,9 @@
extern keymap_config_t keymap_config;
-enum custom_macros {
- DLEFT,
- DRIGHT,
- PSCREEN_APP
-};
+#if (!defined(LAYOUT) && defined(KEYMAP))
+# define LAYOUT KEYMAP
+#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -46,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[SYMB] = LAYOUT_ortho_5x12( \
- KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12, \
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE, \
- M(PSCREEN_APP), KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_1, KC_2, KC_3, KC_BSLS, KC_VOLD, KC_VOLU, \
- KC_PSCR, _______, _______, _______, _______, TG(GAME), KC_0, KC_DOT, KC_EQL, KC_MPRV, KC_MNXT, KC_MPLY \
+ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
+ _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12, \
+ _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE, \
+ PSCREEN_APP, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_1, KC_2, KC_3, KC_BSLS, KC_VOLD, KC_VOLU, \
+ KC_PSCR, _______, _______, _______, _______, TG(GAME), KC_0, KC_DOT, KC_EQL, KC_MPRV, KC_MNXT, KC_MPLY \
),
/* Vim Movement (Hold down F)
@@ -67,11 +65,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[VIM] = LAYOUT_ortho_5x12( \
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
/* Gaming mode (Raise)
@@ -102,28 +100,7 @@ void persistent_default_layer_set(uint16_t default_layer) {
default_layer_set(default_layer);
}
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- switch(id) {
- case DLEFT:
- if (record->event.pressed) { // Windows move desktop left
- return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END);
- }
- break;
- case DRIGHT:
- if (record->event.pressed) { // Windows move desktop right
- return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END);
- }
- break;
- case PSCREEN_APP:
- if (record->event.pressed) {
- return MACRO(D(LALT), T(PSCR), U(LALT), END);
- }
- break;
- }
- return MACRO_NONE;
-}
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_record(keycode);
+ tap_dance_process_keycode(keycode);
return true;
}