aboutsummaryrefslogtreecommitdiffstats
path: root/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'layouts')
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/readme.md10
-rw-r--r--layouts/community/60_ansi/xyverz/keymap.c125
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c25
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/bcat/readme.md18
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md10
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c31
-rw-r--r--layouts/community/60_hhkb/yanfali/keymap.c51
-rw-r--r--layouts/community/60_iso/unxmaal/keymap.c1
-rw-r--r--layouts/community/60_tsangan_hhkb/bcat/keymap.c39
-rw-r--r--layouts/community/60_tsangan_hhkb/bcat/readme.md25
-rw-r--r--layouts/community/60_tsangan_hhkb/yanfali/keymap.c25
-rw-r--r--layouts/community/65_ansi_blocker/mechmerlin/keymap.c36
-rw-r--r--layouts/community/65_ansi_blocker/mechmerlin/readme.md11
-rw-r--r--layouts/community/65_ansi_blocker/mechmerlin/rules.mk1
-rw-r--r--layouts/community/66_ansi/xyverz/config.h5
-rw-r--r--layouts/community/66_ansi/xyverz/keymap.c122
-rw-r--r--layouts/community/66_ansi/xyverz/rules.mk1
-rw-r--r--layouts/community/75_ansi/yanfali/keymap.c25
-rw-r--r--layouts/community/ergodox/absenth/keymap.c2
-rw-r--r--layouts/community/ergodox/adnw_k_o_y/keymap.c2
-rw-r--r--layouts/community/ergodox/albert/keymap.c2
-rw-r--r--layouts/community/ergodox/alexjj/keymap.c2
-rw-r--r--layouts/community/ergodox/bepo_csa/keymap.c6
-rw-r--r--layouts/community/ergodox/bryan/keymap.c6
-rw-r--r--layouts/community/ergodox/coderkun_neo2/keymap.c2
-rw-r--r--layouts/community/ergodox/colemak/keymap.c2
-rw-r--r--layouts/community/ergodox/colemak_osx_pc_no/keymap.c2
-rw-r--r--layouts/community/ergodox/dave/keymap.c4
-rw-r--r--layouts/community/ergodox/dragon788/keymap.c2
-rw-r--r--layouts/community/ergodox/drashna/config.h19
-rw-r--r--layouts/community/ergodox/drashna/keymap.c179
-rw-r--r--layouts/community/ergodox/drashna/rules.mk9
-rw-r--r--layouts/community/ergodox/drashna_glow/config.h23
-rw-r--r--layouts/community/ergodox/drashna_glow/rules.mk8
-rw-r--r--layouts/community/ergodox/dvorak/keymap.c2
-rw-r--r--layouts/community/ergodox/dvorak_intl_squisher/keymap.c4
-rw-r--r--layouts/community/ergodox/dvorak_programmer_swe/keymap.c62
-rw-r--r--layouts/community/ergodox/dvorak_svorak_a5/keymap.c38
-rw-r--r--layouts/community/ergodox/emacs_osx_dk/keymap.c2
-rw-r--r--layouts/community/ergodox/german-kinergo/keymap.c4
-rw-r--r--layouts/community/ergodox/german-lukas/keymap.c2
-rw-r--r--layouts/community/ergodox/german-manuneo/keymap.c4
-rw-r--r--layouts/community/ergodox/german-manuneo/keymap.md2
-rw-r--r--layouts/community/ergodox/german/keymap.c2
-rw-r--r--layouts/community/ergodox/guni/keymap.c1
-rw-r--r--layouts/community/ergodox/ishigoya-jp/keymap.c8
-rw-r--r--layouts/community/ergodox/issmirnov/README.md49
-rw-r--r--layouts/community/ergodox/issmirnov/asci-keymap.txt95
-rwxr-xr-xlayouts/community/ergodox/issmirnov/build.sh2
-rw-r--r--layouts/community/ergodox/issmirnov/config.h3
-rw-r--r--layouts/community/ergodox/issmirnov/keymap.c250
-rwxr-xr-xlayouts/community/ergodox/issmirnov/push.sh2
-rw-r--r--layouts/community/ergodox/issmirnov/template.txt17
-rw-r--r--layouts/community/ergodox/jacobono/keymap.c6
-rw-r--r--layouts/community/ergodox/jafo/keymap.c2
-rw-r--r--layouts/community/ergodox/jgarr/keymap.c2
-rw-r--r--layouts/community/ergodox/mpiechotka/keymap.c4
-rw-r--r--layouts/community/ergodox/msc/keymap.c2
-rw-r--r--layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c2
-rw-r--r--layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c2
-rw-r--r--layouts/community/ergodox/osx_fr/keymap.c4
-rw-r--r--layouts/community/ergodox/osx_kinesis_pnut/keymap.c2
-rw-r--r--layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c14
-rw-r--r--layouts/community/ergodox/phoenix/keymap.c2
-rw-r--r--layouts/community/ergodox/plover/keymap.c4
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/keymap.c74
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/readme.md28
-rw-r--r--layouts/community/ergodox/reset_eeprom/keymap.c18
-rw-r--r--layouts/community/ergodox/sneako/keymap.c2
-rw-r--r--layouts/community/ergodox/software_neo2/keymap.c4
-rw-r--r--layouts/community/ergodox/swedish-lindhe/keymap.c14
-rw-r--r--layouts/community/ergodox/swedish/keymap.c30
-rw-r--r--layouts/community/ergodox/swissgerman/keymap.c12
-rw-r--r--layouts/community/ergodox/tkuichooseyou/keymap.c2
-rw-r--r--layouts/community/ergodox/tm2030/keymap.c10
-rw-r--r--layouts/community/ergodox/tonyabra_osx/keymap.c2
-rw-r--r--layouts/community/ergodox/townk_osx/keymap.c2
-rw-r--r--layouts/community/ergodox/twey/keymap.c2
-rw-r--r--layouts/community/ergodox/videck/keymap.c2
-rw-r--r--layouts/community/ergodox/xyverz/keymap.c8
-rw-r--r--layouts/community/ergodox/zweihander-macos/keymap.c2
-rw-r--r--layouts/community/numpad_5x6/bjohnson/config.h2
-rw-r--r--layouts/community/numpad_5x6/bjohnson/keymap.c7
-rw-r--r--layouts/community/numpad_5x6/drashna/config.h20
-rw-r--r--layouts/community/numpad_5x6/drashna/keymap.c3
-rw-r--r--layouts/community/numpad_5x6/drashna/rules.mk1
-rw-r--r--layouts/community/ortho_1x4/belgorath/keymap.c24
-rw-r--r--layouts/community/ortho_1x4/layout.json1
-rw-r--r--layouts/community/ortho_4x12/bakingpy/keymap.c44
-rw-r--r--layouts/community/ortho_4x12/bakingpy/rules.mk2
-rw-r--r--layouts/community/ortho_4x12/drashna/config.h128
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c290
-rw-r--r--layouts/community/ortho_4x12/drashna/rules.mk44
-rw-r--r--layouts/community/ortho_4x12/jarred/keymap.c22
-rw-r--r--layouts/community/ortho_4x12/jarred/readme.md22
-rw-r--r--layouts/community/ortho_4x12/jotix/keymap.c55
-rw-r--r--layouts/community/ortho_4x12/jotix/readme.md2
-rw-r--r--layouts/community/ortho_4x12/mguterl/config.h39
-rw-r--r--layouts/community/ortho_4x12/mguterl/keymap.c352
-rw-r--r--layouts/community/ortho_4x12/mguterl/readme.md20
-rw-r--r--layouts/community/ortho_4x12/mguterl/rules.mk1
-rw-r--r--layouts/community/ortho_4x12/xyverz/keymap.c135
-rw-r--r--layouts/community/ortho_4x12/xyverz/readme.md1
-rw-r--r--layouts/community/ortho_5x12/drashna/config.h31
-rw-r--r--layouts/community/ortho_5x12/drashna/keymap.c57
-rw-r--r--layouts/community/ortho_5x12/drashna/rules.mk21
-rw-r--r--layouts/community/ortho_5x12/xyverz/keymap.c141
-rw-r--r--layouts/community/ortho_5x14/yet-another-developer/config.h22
-rw-r--r--layouts/community/ortho_5x14/yet-another-developer/keymap.c208
-rw-r--r--layouts/community/ortho_5x14/yet-another-developer/rules.mk1
-rw-r--r--layouts/community/tkl_ansi/xyverz/keymap.c69
-rw-r--r--layouts/community/tkl_ansi/xyverz/readme.md1
-rw-r--r--layouts/default/60_abnt2/default_60_abnt2/keymap.c22
-rw-r--r--layouts/default/60_abnt2/info.json80
-rw-r--r--layouts/default/60_abnt2/layout.json5
-rw-r--r--layouts/default/60_abnt2/readme.md3
-rw-r--r--layouts/default/60_ansi/info.json78
-rw-r--r--layouts/default/60_ansi_split_bs_rshift/info.json80
-rw-r--r--layouts/default/60_ansi_split_bs_rshift/layout.json2
-rw-r--r--layouts/default/60_ansi_tsangan/info.json77
-rw-r--r--layouts/default/60_ansi_tsangan/layout.json2
-rw-r--r--layouts/default/60_hhkb/info.json77
-rw-r--r--layouts/default/60_hhkb/layout.json10
-rw-r--r--layouts/default/60_iso/info.json79
-rw-r--r--layouts/default/60_iso_tsangan/info.json78
-rw-r--r--layouts/default/60_iso_tsangan/layout.json2
-rw-r--r--layouts/default/60_tsangan_hhkb/info.json79
-rw-r--r--layouts/default/60_tsangan_hhkb/layout.json4
-rw-r--r--layouts/default/65_ansi/info.json85
-rw-r--r--layouts/default/65_ansi/layout.json2
-rw-r--r--layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c11
-rw-r--r--layouts/default/65_ansi_blocker/info.json84
-rw-r--r--layouts/default/65_ansi_blocker/layout.json5
-rw-r--r--layouts/default/65_ansi_blocker/readme.md5
-rw-r--r--layouts/default/65_iso/info.json86
-rw-r--r--layouts/default/65_iso/layout.json2
-rw-r--r--layouts/default/66_ansi/info.json83
-rw-r--r--layouts/default/66_ansi/layout.json10
-rw-r--r--layouts/default/66_iso/info.json84
-rw-r--r--layouts/default/66_iso/layout.json10
-rw-r--r--layouts/default/68_ansi/info.json85
-rw-r--r--layouts/default/75_ansi/info.json102
-rw-r--r--layouts/default/75_iso/info.json103
-rw-r--r--layouts/default/ergodox/info.json104
-rw-r--r--layouts/default/fullsize_ansi/info.json122
-rw-r--r--layouts/default/fullsize_ansi/layout.json12
-rw-r--r--layouts/default/fullsize_iso/info.json123
-rw-r--r--layouts/default/fullsize_iso/layout.json12
-rw-r--r--layouts/default/numpad_4x4/info.json29
-rw-r--r--layouts/default/numpad_4x4/layout.json2
-rw-r--r--layouts/default/numpad_5x4/info.json34
-rw-r--r--layouts/default/numpad_5x4/layout.json2
-rw-r--r--layouts/default/numpad_5x6/info.json44
-rw-r--r--layouts/default/numpad_5x6/layout.json11
-rw-r--r--layouts/default/numpad_6x4/info.json39
-rw-r--r--layouts/default/numpad_6x4/layout.json2
-rw-r--r--layouts/default/ortho_3x10/info.json45
-rw-r--r--layouts/default/ortho_3x10/layout.json2
-rw-r--r--layouts/default/ortho_4x10/info.json56
-rw-r--r--layouts/default/ortho_4x10/layout.json2
-rw-r--r--layouts/default/ortho_4x12/info.json64
-rw-r--r--layouts/default/ortho_4x12/layout.json4
-rw-r--r--layouts/default/ortho_4x4/info.json32
-rw-r--r--layouts/default/ortho_4x4/layout.json2
-rw-r--r--layouts/default/ortho_5x12/info.json77
-rw-r--r--layouts/default/ortho_5x12/layout.json2
-rw-r--r--layouts/default/ortho_5x14/info.json87
-rw-r--r--layouts/default/ortho_5x14/layout.json10
-rw-r--r--layouts/default/ortho_5x15/info.json92
-rw-r--r--layouts/default/ortho_5x15/layout.json2
-rw-r--r--layouts/default/ortho_5x4/info.json37
-rw-r--r--layouts/default/ortho_5x4/layout.json2
-rw-r--r--layouts/default/ortho_6x4/info.json42
-rw-r--r--layouts/default/ortho_6x4/layout.json4
-rw-r--r--layouts/default/planck_mit/info.json63
-rw-r--r--layouts/default/planck_mit/layout.json2
-rw-r--r--layouts/default/tkl_ansi/info.json105
-rw-r--r--layouts/default/tkl_ansi/layout.json12
-rw-r--r--layouts/default/tkl_iso/info.json106
-rw-r--r--layouts/default/tkl_iso/layout.json12
180 files changed, 5299 insertions, 938 deletions
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/readme.md b/layouts/community/60_ansi/mechmerlin-ansi/readme.md
index aefd6a992..4d3f3d820 100644
--- a/layouts/community/60_ansi/mechmerlin-ansi/readme.md
+++ b/layouts/community/60_ansi/mechmerlin-ansi/readme.md
@@ -1,14 +1,12 @@
-MechMerlin's Standard ANSI 60% Layout
-======================
+# MechMerlin's Standard ANSI 60% Layout
This is the 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
YouTube channel.
-It is used on his
-[Duck Eagle V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/eagle_viper/v2)
-[NPKC KC60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kc60)
+It is used on his
[1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
-[HS60 V1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v1)
+[dz60rgb-ansi](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb)
+[HS60 V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v2)
## Keymap Notes
- Arrow toggle switch is tapping the `FN` key once.
diff --git a/layouts/community/60_ansi/xyverz/keymap.c b/layouts/community/60_ansi/xyverz/keymap.c
new file mode 100644
index 000000000..61176ef2b
--- /dev/null
+++ b/layouts/community/60_ansi/xyverz/keymap.c
@@ -0,0 +1,125 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QW,
+ _DV,
+ _CM,
+ _FL,
+};
+
+enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /*
+ * _QW: Qwerty Layer
+ * ,-----------------------------------------------------------.
+ * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
+ * |-----------------------------------------------------------|
+ * |Fn | A| S| D| F| G| H| J| K| L| ;| '| Return|
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift|
+ * |-----------------------------------------------------------|
+ * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn|
+ * `-----------------------------------------------------------'
+ */
+ /* Layer 0: Qwerty */
+ [_QW] = LAYOUT_60_ansi(
+ 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_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,
+ MO(_FL), 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)
+ ),
+
+ /*
+ * _DV: Dvorak Layer
+ * ,-----------------------------------------------------------.
+ * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| Backsp|
+ * |-----------------------------------------------------------|
+ * |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| \|
+ * |-----------------------------------------------------------|
+ * |Fn | A| O| E| U| I| D| H| T| N| S| -| Return|
+ * |-----------------------------------------------------------|
+ * |Shift | ;| Q| J| K| X| B| M| W| V| Z| Shift|
+ * |-----------------------------------------------------------|
+ * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn|
+ * `-----------------------------------------------------------'
+ */
+ /* Layer 1: Dvorak */
+ [_DV] = LAYOUT_60_ansi(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS,
+ MO(_FL), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)
+ ),
+
+ /*
+ * _CM: Colemak Layer
+ * ,-----------------------------------------------------------.
+ * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \|
+ * |-----------------------------------------------------------|
+ * |Fn | A| R| S| T| D| H| N| E| I| O| '| Return|
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| K| M| ,| .| /| Shift|
+ * |-----------------------------------------------------------|
+ * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn|
+ * `-----------------------------------------------------------'
+ */
+ /* Layer 2: Colemak */
+ [_CM] = LAYOUT_60_ansi(
+ 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_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS,
+ MO(_FL), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)
+ ),
+
+ /*
+ * _FL: Function Layer
+ * ,-----------------------------------------------------------.
+ * | |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del|
+ * |-----------------------------------------------------------|
+ * | | | | | | | |PgU| Up|PgD|PSc|SLk|Pau| |
+ * |-----------------------------------------------------------|
+ * | | |MPr|MPl|MNx| |Hom| Lt| Dn| Rt| | | |
+ * |-----------------------------------------------------------|
+ * |CAPS | |Mut|VlD|VlU| |End| | | | | |
+ * |-----------------------------------------------------------|
+ * |_QW |_DV |_CM | | | | | |
+ * `-----------------------------------------------------------'
+ */
+ /* Layer 3: Functions */
+ [_FL] = LAYOUT_60_ansi(
+ _______, 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 ,
+ _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______,
+ _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
+ KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_END, _______, _______, _______, _______, _______,
+ QWERTY, DVORAK, COLEMAK, _______, _______, _______, _______, _______
+ ),
+
+};
+// clang-format on
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case DVORAK:
+ set_single_persistent_default_layer(_DV);
+ return false;
+ case QWERTY:
+ set_single_persistent_default_layer(_QW);
+ return false;
+ case COLEMAK:
+ set_single_persistent_default_layer(_CM);
+ return false;
+ }
+ }
+ return true;
+} \ No newline at end of file
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
index 780c13c2f..92cc366ac 100644
--- a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
+++ b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
@@ -6,10 +6,7 @@ enum layer {
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] = {
@@ -17,26 +14,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[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
+ 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, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, 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, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
+ KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, RGB_VAI, _______, _______,
+ _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG,
+ _______, _______, _______, KC_MUTE, _______, BL_BRTG, BL_DEC, BL_INC, 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
index 79bff7406..35ce63196 100644
--- a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
+++ b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
@@ -2,19 +2,25 @@
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.
+spacebar. The arrow and navigation keys match a standard HHKB layout using the
+Fn key next to the right shift key. Additionally, the redundant Fn key on the
+bottom row activates an adjust layer with controls for RGB underglow and
+backlight, as well as media keys centered around the ESDF cluster.
## Default layer
![Default layer layout](https://i.imgur.com/HM0115k.png)
+([KLE](http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc))
+
## Function layer
-![Function layer layout](https://i.imgur.com/8dr5ktH.png)
+![Function layer layout](https://i.imgur.com/oLdVfn0.png)
+
+([KLE](http://www.keyboard-layout-editor.com/#/gists/c7a55e75285d474b6301140eaf53f915))
## Adjust layer
-![Adjust layer layout](https://i.imgur.com/78PBNt6.png)
+![Adjust layer layout](https://i.imgur.com/bqC6QYS.png)
+
+([KLE](http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c))
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
index 855fd5ac9..528776011 100644
--- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
+++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
@@ -1,13 +1,15 @@
-MechMerlin's Split ANSI 60% Layout
-======================
+# MechMerlin's Split ANSI 60% Layout
This is the 60% layout with split backspace and right shift used by u/merlin36,
host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel.
It is used on his
-[Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
-[Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
+
[DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
+[DP60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dp60)
+[Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
+[Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo)
+[Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
## Keymap Notes
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
diff --git a/layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c b/layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c
new file mode 100644
index 000000000..73d6789c1
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c
@@ -0,0 +1,31 @@
+#include QMK_KEYBOARD_H
+
+enum {
+ BASE,
+ FN,
+ YFL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[BASE] = 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_GRV, 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, \
+ LCTL_T(KC_ESC), 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, MO(YFL), \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RGUI, KC_RALT, MO(FN), KC_RCTL),
+
+[FN] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_GRV, 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, KC_DEL, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______),
+
+[YFL] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET, \
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______),
+};
diff --git a/layouts/community/60_hhkb/yanfali/keymap.c b/layouts/community/60_hhkb/yanfali/keymap.c
new file mode 100644
index 000000000..98649ca4b
--- /dev/null
+++ b/layouts/community/60_hhkb/yanfali/keymap.c
@@ -0,0 +1,51 @@
+#include QMK_KEYBOARD_H
+
+enum _layers {
+ BL,
+ FN
+};
+/*
+ * Default HHKB Layout
+ */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: Default layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │BkSpc│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │█████│Enter│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Shift│█████│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │█████│Shift│ Fn │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│█████│ Gui │ Alt │█████│█████│Space│█████│█████│█████│█████│█████│ Alt │ Gui │█████│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+[BL] = LAYOUT_60_hhkb(
+ 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_GRV, 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, \
+ LCTL_T(KC_ESC), 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, MO(FN), \
+ KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT ),
+ /* 1: HHKB Fn layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ Pwr │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ Ins │ Del │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Caps │ RGB │RGBfw│RGBrv│BLtog│BLstp│ │ │ Psc │ Slk │ Pus │ Up │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ VoD │ VoU │ Mut │ Ejc │ │NP_* │NP_/ │Home │PgUp │Left │Right│█████│NPEnt│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │█████│ │ │ │ │ │NP_+ │NP_- │ End │PgDwn│Down │█████│ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│█████│ │ │█████│█████│█████│ │█████│█████│█████│█████│ │ │█████│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+[FN]= LAYOUT_60_hhkb(
+ KC_PWR, 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, \
+ _______, RGB_TOG, KC_UP, RGB_RMOD, BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, RESET, \
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
+ KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+};
+
+
diff --git a/layouts/community/60_iso/unxmaal/keymap.c b/layouts/community/60_iso/unxmaal/keymap.c
index 8f2d55d9b..07fca874e 100644
--- a/layouts/community/60_iso/unxmaal/keymap.c
+++ b/layouts/community/60_iso/unxmaal/keymap.c
@@ -108,7 +108,6 @@ enum function_id {
};
const uint16_t PROGMEM fn_actions[] = {
- [0] = ACTION_LAYER_MOMENTARY(2), // Momentary Fn overlay
[1] = ACTION_LAYER_TOGGLE(1), // Toggle Arrow Layer overlay
[2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer
[3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay
diff --git a/layouts/community/60_tsangan_hhkb/bcat/keymap.c b/layouts/community/60_tsangan_hhkb/bcat/keymap.c
new file mode 100644
index 000000000..19516542f
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/bcat/keymap.c
@@ -0,0 +1,39 @@
+#include QMK_KEYBOARD_H
+
+enum layer {
+ LAYER_DEFAULT,
+ LAYER_FUNCTION,
+ LAYER_ADJUST,
+};
+
+#define LY_FUNC MO(LAYER_FUNCTION)
+#define LY_ADJST LT(LAYER_ADJUST, KC_APP)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77 */
+ [LAYER_DEFAULT] = LAYOUT_60_tsangan_hhkb(
+ 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_RCTL
+ ),
+
+ /* Function layer: http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551 */
+ [LAYER_FUNCTION] = LAYOUT_60_tsangan_hhkb(
+ _______, 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_UP, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */
+ [LAYER_ADJUST] = LAYOUT_60_tsangan_hhkb(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, RGB_VAI, _______, _______,
+ _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG,
+ _______, _______, _______, KC_MUTE, _______, BL_BRTG, BL_DEC, BL_INC, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+};
diff --git a/layouts/community/60_tsangan_hhkb/bcat/readme.md b/layouts/community/60_tsangan_hhkb/bcat/readme.md
new file mode 100644
index 000000000..c0debdef5
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/bcat/readme.md
@@ -0,0 +1,25 @@
+# bcat's 60% Tsangan HHKB layout
+
+This is a normal Tsangan/HHKB (split backspace, split right shift) layout with
+arrow and navigation keys that match a standard HHKB layout. Additionally, the
+redundant right Super key on the bottom row actives an adjust layer with
+controls for RGB underglow and backlight, as well as media keys centered around
+the ESDF cluster.
+
+## Default layer
+
+![Default layer layout](https://i.imgur.com/et26km2.png)
+
+([KLE](http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77))
+
+## Function layer
+
+![Function layer layout](https://i.imgur.com/s2uyH2U.png)
+
+([KLE](http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551))
+
+## Adjust layer
+
+![Adjust layer layout](https://i.imgur.com/BKNez3Z.png)
+
+([KLE](http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4))
diff --git a/layouts/community/60_tsangan_hhkb/yanfali/keymap.c b/layouts/community/60_tsangan_hhkb/yanfali/keymap.c
new file mode 100644
index 000000000..a6cd15f4e
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/yanfali/keymap.c
@@ -0,0 +1,25 @@
+#include QMK_KEYBOARD_H
+
+enum layer {
+ BASE,
+ FN,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_60_tsangan_hhkb(
+ 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_GRV, 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,
+ LCTL_T(KC_ESC), 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, MO(FN),
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
+ ),
+
+ [FN] = LAYOUT_60_tsangan_hhkb(
+ _______, 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET,
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+
+};
diff --git a/layouts/community/65_ansi_blocker/mechmerlin/keymap.c b/layouts/community/65_ansi_blocker/mechmerlin/keymap.c
new file mode 100644
index 000000000..7ab719ab2
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/mechmerlin/keymap.c
@@ -0,0 +1,36 @@
+/* Copyright 2019 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+#include "mechmerlin.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BL] = LAYOUT_65_ansi_blocker(
+ 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_INS,
+ 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_DEL,
+ KC_CTCP, 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_PGUP,
+ 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_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FL] = LAYOUT_65_ansi_blocker(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
+ _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+};
+
diff --git a/layouts/community/65_ansi_blocker/mechmerlin/readme.md b/layouts/community/65_ansi_blocker/mechmerlin/readme.md
new file mode 100644
index 000000000..fa69ce3e7
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/mechmerlin/readme.md
@@ -0,0 +1,11 @@
+# MechMerlin's 65_ansi_blocker layout
+
+This is the 65% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
+YouTube channel.
+
+It is used on his
+[RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb)
+[KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
+
+### Build
+To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`. \ No newline at end of file
diff --git a/layouts/community/65_ansi_blocker/mechmerlin/rules.mk b/layouts/community/65_ansi_blocker/mechmerlin/rules.mk
new file mode 100644
index 000000000..e2ce3d773
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/mechmerlin/rules.mk
@@ -0,0 +1 @@
+USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/66_ansi/xyverz/config.h b/layouts/community/66_ansi/xyverz/config.h
new file mode 100644
index 000000000..06e5830af
--- /dev/null
+++ b/layouts/community/66_ansi/xyverz/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#define TAPPING_TERM 600 // ms
+#undef RGBLIGHT_HUE_STEP
+#define RGBLIGHT_HUE_STEP 8
diff --git a/layouts/community/66_ansi/xyverz/keymap.c b/layouts/community/66_ansi/xyverz/keymap.c
new file mode 100644
index 000000000..521379bde
--- /dev/null
+++ b/layouts/community/66_ansi/xyverz/keymap.c
@@ -0,0 +1,122 @@
+// Xyverz' keymap.
+// It's based on the default keymap, but Dvorak!
+
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _DVORAK,
+ _COLEMAK,
+ _FL,
+ _CL
+};
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK
+};
+
+// Useful defines
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+#define FN_CAPS LT(_FL, KC_CAPS) // Tap for Caps Lock, Hold for Function Layer
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _QWERTY: Base Layer (Default Layer)
+ * ,-----------------------------------------------------------. ,---.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PgU|
+ * |-----------------------------------------------------------| |---|
+ * |HpTab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgD|
+ * |-----------------------------------------------------------| `---'
+ * |FnCaps| A| S| D| F| G| H| J| K| L| ;| '| | Ent|
+ * |--------------------------------------------------------------.
+ * |Shift| | Z| X| C| V| B| N| M| ,| .| /|Shift| Fn| Up|
+ * |------------------------------------------------------------------.
+ * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
+ * `------------------------------------------------------------------'
+ */
+
+[_QWERTY] = LAYOUT (
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \
+ 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_PGDN, \
+ FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \
+ KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SLSH, KC_RSFT, KC_UP, \
+ KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
+
+ /* Keymap _COLEMAK: Base Layer
+ * ,-----------------------------------------------------------. ,---.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| |PgU|
+ * |-----------------------------------------------------------| |---|
+ * |HpTab| Q| W| F| P| G| J| L| U| Y| ;| [| ]| BS| |PgD|
+ * |-----------------------------------------------------------| `---'
+ * |FnCaps| A| R| S| T| D| H| N| E| I| O| '| | Ent|
+ * |--------------------------------------------------------------.
+ * |Shift| | Z| X| C| V| B| K| M| ,| .| /|Shift| Fn| Up|
+ * |------------------------------------------------------------------.
+ * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
+ * `------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT (
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \
+ FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, XXXXXXX, KC_ENT, \
+ KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SLSH, KC_RSFT, KC_UP, \
+ KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
+
+ /* Keymap _DVORAK: Base Layer
+ * ,-----------------------------------------------------------. ,---.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| `| |PgU|
+ * |-----------------------------------------------------------| |---|
+ * |HpTab| '| ,| .| P| Y| F| G| C| R| L| /| =| BS| |PgD|
+ * |-----------------------------------------------------------| `---'
+ * |FnCaps| A| O| E| U| I| D| H| T| N| S| -| | Ent|
+ * |--------------------------------------------------------------.
+ * |Shift| | ;| Q| J| K| X| B| M| W| V| Z|Shift| Fn| Up|
+ * |------------------------------------------------------------------.
+ * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
+ * `------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT (
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGDN, \
+ FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, XXXXXXX, KC_ENT, \
+ KC_LSFT, XXXXXXX, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, KC_RSFT, KC_UP, \
+ KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
+
+ /* Keymap _FL: Function Layer
+ */
+[_FL] = LAYOUT (
+ KC_GRV, 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, BL_STEP, \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, \
+ _______, _______, MO(_CL), _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_PGUP, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
+
+ /* Keymap _CL: Control layer
+ */
+[_CL] = LAYOUT (
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \
+ _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \
+ _______, _______, MO(_CL), _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, \
+ _______, _______, _______, _______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI),
+};
+// clang-format on
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QWERTY:
+ set_single_persistent_default_layer(_QWERTY);
+ return false;
+ case DVORAK:
+ set_single_persistent_default_layer(_DVORAK);
+ return false;
+ case COLEMAK:
+ set_single_persistent_default_layer(_COLEMAK);
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/layouts/community/66_ansi/xyverz/rules.mk b/layouts/community/66_ansi/xyverz/rules.mk
new file mode 100644
index 000000000..164232f33
--- /dev/null
+++ b/layouts/community/66_ansi/xyverz/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. \ No newline at end of file
diff --git a/layouts/community/75_ansi/yanfali/keymap.c b/layouts/community/75_ansi/yanfali/keymap.c
new file mode 100644
index 000000000..729e7d6ac
--- /dev/null
+++ b/layouts/community/75_ansi/yanfali/keymap.c
@@ -0,0 +1,25 @@
+#include QMK_KEYBOARD_H
+
+enum {
+ BASE,
+ FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[BASE] = LAYOUT_75_ansi(\
+ KC_ESC, 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_PSCR, KC_PAUS, KC_DEL,
+ KC_GRV, 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_HOME,
+ 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_PGUP,
+ LCTL_T(KC_ESC), 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_PGDN,
+ 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_UP, KC_END,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_NO, MO(FN), KC_LEFT, KC_DOWN, KC_RGHT),
+
+[FN] = LAYOUT_75_ansi(\
+ _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
+ VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END)
+};
diff --git a/layouts/community/ergodox/absenth/keymap.c b/layouts/community/ergodox/absenth/keymap.c
index e4f1ec901..d84b68f0e 100644
--- a/layouts/community/ergodox/absenth/keymap.c
+++ b/layouts/community/ergodox/absenth/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
KC_BSPC, LT(MDIA, 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_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/adnw_k_o_y/keymap.c b/layouts/community/ergodox/adnw_k_o_y/keymap.c
index 8a0e47026..59ae2681f 100644
--- a/layouts/community/ergodox/adnw_k_o_y/keymap.c
+++ b/layouts/community/ergodox/adnw_k_o_y/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB),
+ KC_DEL, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB),
KC_BSPC, DE_H, DE_A, DE_E, DE_I, DE_U,
KC_LSFT, CTL_T(DE_X), DE_Q, DE_AE, DE_UE, DE_OE, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/albert/keymap.c b/layouts/community/ergodox/albert/keymap.c
index c1b47312f..8b73424d4 100644
--- a/layouts/community/ergodox/albert/keymap.c
+++ b/layouts/community/ergodox/albert/keymap.c
@@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
CTL_T(KC_SPC), ALT_T(KC_BSPC), LT(KEYW, KC_END),
// right hand
LSFT(KC_RGHT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DELT,
+ MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(NUMB, KC_ENT),
MO(EMAC), LT(MOUS, KC_N), LT(CRSR, KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
KC_UP, KC_DOWN, KC_MINS, ALT_T(KC_LBRC), CTL_T(KC_RBRC),
diff --git a/layouts/community/ergodox/alexjj/keymap.c b/layouts/community/ergodox/alexjj/keymap.c
index 5f4f85cd4..64e7c9443 100644
--- a/layouts/community/ergodox/alexjj/keymap.c
+++ b/layouts/community/ergodox/alexjj/keymap.c
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL,
KC_F2, TT(MDIA),
KC_INS,
- KC_DELT,TT(SYMB), KC_SPC
+ KC_DEL,TT(SYMB), KC_SPC
),
/* Keymap 1: Symbol Layer
*
diff --git a/layouts/community/ergodox/bepo_csa/keymap.c b/layouts/community/ergodox/bepo_csa/keymap.c
index 8dfb95a33..c6d4f628f 100644
--- a/layouts/community/ergodox/bepo_csa/keymap.c
+++ b/layouts/community/ergodox/bepo_csa/keymap.c
@@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[LR_BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
- BP_DLR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT,
+ BP_DLR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL,
KC_TAB, BP_B, BP_ECUT, BP_P, BP_O, BP_EGRV, KC_BSPC,
BP_EQL, BP_A, BP_U, BP_I, BP_E, BP_COMM,
KC_LSFT, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K, KC_ENT,
@@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC, KC_HOME, KC_PGDN,
// right hand
- KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, BP_W,
+ KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, BP_W,
KC_BSPC, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_ENT, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_RSFT,
@@ -342,7 +342,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(LR_CSA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
RESET, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM,
- KC_TRNS, KC_APP, S(KC_DELT), LCTL(KC_INS),S(KC_INS), KC_MUTE, KC_VOLD,
+ KC_TRNS, KC_APP, S(KC_DEL), LCTL(KC_INS),S(KC_INS), KC_MUTE, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
diff --git a/layouts/community/ergodox/bryan/keymap.c b/layouts/community/ergodox/bryan/keymap.c
index 5e74c9126..acae77d5f 100644
--- a/layouts/community/ergodox/bryan/keymap.c
+++ b/layouts/community/ergodox/bryan/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * |Ctrl/Esc|PgUp| | App | LGui |
+ * |Ctrl/Esc|PgUp| | App | LGui |
* ,------|------|------| |------+--------+------.
* | | | PgDn | | Home | | |
* | Space|Backsp|------| |------| Tab |Enter |
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, M(2),
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
GUI_T(KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
-
+
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_LALT,KC_TAB, KC_ENT
diff --git a/layouts/community/ergodox/coderkun_neo2/keymap.c b/layouts/community/ergodox/coderkun_neo2/keymap.c
index 0c70dbb5d..d1fcea9c9 100644
--- a/layouts/community/ergodox/coderkun_neo2/keymap.c
+++ b/layouts/community/ergodox/coderkun_neo2/keymap.c
@@ -196,7 +196,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[NHL] = LAYOUT_ergodox(
// left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DELT,KC_PGDN,KC_NO,
+ KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DEL, KC_PGDN,KC_NO,
KC_NO, KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END,
KC_NO, KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS,
KC_NO, KC_NO, KC_TRNS,KC_NO, KC_TRNS,
diff --git a/layouts/community/ergodox/colemak/keymap.c b/layouts/community/ergodox/colemak/keymap.c
index 7330eda14..83c77e4a3 100644
--- a/layouts/community/ergodox/colemak/keymap.c
+++ b/layouts/community/ergodox/colemak/keymap.c
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
+ KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c
index 119677037..189ff5c43 100644
--- a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c
+++ b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS,
KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2),
KC_INSERT, NO_SLSH,
- KC_DELT,
+ KC_DEL,
KC_BSPC,KC_ENT,KC_SPC
),
/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped)
diff --git a/layouts/community/ergodox/dave/keymap.c b/layouts/community/ergodox/dave/keymap.c
index 428749647..f47f88142 100644
--- a/layouts/community/ergodox/dave/keymap.c
+++ b/layouts/community/ergodox/dave/keymap.c
@@ -119,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[NAVI] = LAYOUT_ergodox(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN,
KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS,
@@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// right hand
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_WBAK, KC_DELT, KC_WFWD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_WBAK, KC_DEL, KC_WFWD, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
diff --git a/layouts/community/ergodox/dragon788/keymap.c b/layouts/community/ergodox/dragon788/keymap.c
index c0c213477..7377128ec 100644
--- a/layouts/community/ergodox/dragon788/keymap.c
+++ b/layouts/community/ergodox/dragon788/keymap.c
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TT(SYMB), KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT),
KC_APP, KC_HOME,
KC_END,
- KC_BSPC,KC_DELT,KC_LALT,
+ KC_BSPC,KC_DEL, KC_LALT,
// right hand
TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h
index 821710ed8..0091ebcde 100644
--- a/layouts/community/ergodox/drashna/config.h
+++ b/layouts/community/ergodox/drashna/config.h
@@ -1,16 +1,19 @@
#pragma once
#ifdef RGBLIGHT_ENABLE
-# undef RGBLIGHT_SAT_STEP
-# define RGBLIGHT_SAT_STEP 12
-
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
-#endif // RGBLIGHT_ENABLE
+# undef RGBLIGHT_SAT_STEP
+# define RGBLIGHT_SAT_STEP 12
+# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
+# define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
+#endif // RGBLIGHT_ENABLE
#undef PRODUCT
-#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine
+#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine
#undef DEBOUNCE
-#define DEBOUNCE 15
+#define DEBOUNCE 30
+
+#define TAPPING_TERM_PER_KEY
+
+#define ERGODOX_LED_30
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index 74382f175..8308bfdaa 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -1,38 +1,28 @@
-/*
-This is the keymap for the keyboard
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#include QMK_KEYBOARD_H
#include "drashna.h"
#ifdef UNICODEMAP_ENABLE
-#include "drashna_unicode.h"
-#endif // UNICODEMAP_ENABLE
+# include "drashna_unicode.h"
+#endif // UNICODEMAP_ENABLE
#ifndef UNICODE_ENABLE
-# define UC(x) KC_NO
+# define UC(x) KC_NO
+#endif
+#ifdef RGBLIGHT_ENABLE
+extern rgblight_config_t rgblight_config;
#endif
-extern userspace_config_t userspace_config;
-
-enum more_custom_keycodes {
- KC_SWAP_NUM = NEW_SAFE_RANGE
-};
+enum more_custom_keycodes { KC_SWAP_NUM = NEW_SAFE_RANGE };
-//define layer change stuff for underglow indicator
+// define layer change stuff for underglow indicator
bool skip_leds = false;
+/*
+ * The `LAYOUT_ergodox_pretty_base` macro is a template to allow the use of
+ * identical modifiers for the default layouts (eg QWERTY, Colemak, Dvorak,
+ * etc), so that there is no need to set them up for each layout, and modify
+ * all of them if I want to change them. This helps to keep consistency and
+ * ease of use. K## is a placeholder to pass through the individual keycodes
+ */
+// clang-format off
#define LAYOUT_ergodox_pretty_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
@@ -40,8 +30,8 @@ bool skip_leds = false;
) \
LAYOUT_ergodox_pretty_wrapper( \
KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \
- KC_TAB, K01, K02, K03, K04, K05, TG(_DIABLO), TG(_DIABLO), K06, K07, K08, K09, K0A, KC_BSLS, \
- KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ LALT_T(KC_TAB), K01, K02, K03, K04, K05, TG(_DIABLO), TG(_DIABLO), K06, K07, K08, K09, K0A, KC_BSLS, \
+ KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF, \
KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC(0x2E2E), \
OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \
@@ -292,8 +282,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_ergodox_pretty_wrapper(
KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG(_MODS),
- _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, KC_MPLY,
+ _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
+ _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG(_MODS),
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
@@ -301,9 +291,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+// clang-format on
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
-
switch (keycode) {
case KC_1:
if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) {
@@ -332,7 +322,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
}
break;
}
- //switch (keycode) {
+ // switch (keycode) {
// case KC_P00:
// if (!record->event.pressed) {
// register_code(KC_KP_0);
@@ -347,9 +337,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
}
void matrix_scan_keymap(void) { // runs frequently to update info
- uint8_t modifiers = get_mods();
+ uint8_t modifiers = get_mods();
uint8_t led_usb_state = host_keyboard_leds();
- uint8_t one_shot = get_oneshot_mods();
+ uint8_t one_shot = get_oneshot_mods();
if (!skip_leds) {
ergodox_board_led_off();
@@ -360,24 +350,21 @@ void matrix_scan_keymap(void) { // runs frequently to update info
// Since we're not using the LEDs here for layer indication anymore,
// then lets use them for modifier indicators. Shame we don't have 4...
// Also, no "else", since we want to know each, independently.
- if ( ( modifiers | one_shot ) & MOD_MASK_SHIFT || led_usb_state & (1<<USB_LED_CAPS_LOCK) ) {
+ if ((modifiers | one_shot) & MOD_MASK_SHIFT || led_usb_state & (1 << USB_LED_CAPS_LOCK)) {
ergodox_right_led_2_on();
- ergodox_right_led_2_set( 50 );
+ ergodox_right_led_2_set(50);
}
- if ( ( modifiers | one_shot ) & MOD_MASK_CTRL) {
+ if ((modifiers | one_shot) & MOD_MASK_CTRL) {
ergodox_right_led_1_on();
- ergodox_right_led_1_set( 10 );
+ ergodox_right_led_1_set(10);
}
- if ( ( modifiers | one_shot ) & MOD_MASK_ALT) {
+ if ((modifiers | one_shot) & MOD_MASK_ALT) {
ergodox_right_led_3_on();
- ergodox_right_led_3_set( 10 );
+ ergodox_right_led_3_set(10);
}
-
}
-
}
-
bool indicator_is_this_led_used_keyboard(uint8_t index) {
switch (index) {
case 13 ... 14:
@@ -388,76 +375,92 @@ bool indicator_is_this_led_used_keyboard(uint8_t index) {
}
}
-
#ifdef RGB_MATRIX_ENABLE
-void suspend_power_down_keymap(void) {
- rgb_matrix_set_suspend_state(true);
-}
+void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
-void suspend_wakeup_init_keymap(void) {
- rgb_matrix_set_suspend_state(false);
-}
+void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
void rgb_matrix_indicators_user(void) {
- if ( userspace_config.rgb_layer_change &&
-#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
+ if (userspace_config.rgb_layer_change &&
+# ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
!g_suspend_state &&
-#endif
-#if defined(RGBLIGHT_ENABLE)
+# endif
+# if defined(RGBLIGHT_ENABLE)
(!rgblight_config.enable && rgb_matrix_config.enable)
-#else
+# else
rgb_matrix_config.enable
-#endif
+# endif
) {
- switch (biton32(layer_state)) {
- case _MODS:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ switch (get_highest_layer(layer_state)) {
case _GAMEPAD:
- 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
- rgb_matrix_set_color(29, 0xFF, 0x80, 0x00); // R
- rgb_matrix_set_color(37, 0x00, 0xFF, 0xFF); // A
- rgb_matrix_set_color(36, 0x00, 0xFF, 0xFF); // S
- rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
- rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
-
- 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
-
+ rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, 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
+ rgb_matrix_set_color(29, 0xFF, 0x80, 0x00); // R
+ rgb_matrix_set_color(37, 0x00, 0xFF, 0xFF); // A
+ rgb_matrix_set_color(36, 0x00, 0xFF, 0xFF); // S
+ rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
+ rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
+
+ 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, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER);
+ break;
case _RAISE:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _LOWER:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _ADJUST:
- rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
- default:
- switch (biton32(default_layer_state)) {
+ rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ default: {
+ bool mods_enabled = IS_LAYER_ON(_MODS);
+ switch (get_highest_layer(default_layer_state)) {
case _QWERTY:
- rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _COLEMAK:
- rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _DVORAK:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _WORKMAN:
- rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _NORMAN:
- rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _MALTRON:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _EUCALYN:
- rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _CARPLAX:
- rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
}
+ break;
+ }
}
}
}
-#endif //RGB_MATRIX_INIT
+#endif // RGB_MATRIX_INIT
+
+uint16_t get_tapping_term(uint16_t keycode) {
+ if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) {
+ if (mod_config(keycode & 0xf) & MOD_MASK_ALT) {
+ return (2 * TAPPING_TERM);
+ }
+ }
+ return TAPPING_TERM;
+}
diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk
index f0628d9da..3aee59df6 100644
--- a/layouts/community/ergodox/drashna/rules.mk
+++ b/layouts/community/ergodox/drashna/rules.mk
@@ -2,9 +2,9 @@ TAP_DANCE_ENABLE = yes
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
COMMAND_ENABLE = no # Commands for debug and configuration
SPACE_CADET_ENABLE = no
-ifneq (,$(findstring ergodox_ez,$(KEYBOARD)))
- RGBLIGHT_ENABLE = yes
- RGB_MATRIX_ENABLE = no
+ifeq ($(strip $(KEYBOARD)), ergodox_ez)
+ RGBLIGHT_ENABLE = yes
+ RGB_MATRIX_ENABLE = no
endif
CONSOLE_ENABLE = no
BOOTMAGIC_ENABLE = yes
@@ -12,9 +12,8 @@ BOOTMAGIC_ENABLE = yes
UNICODE_ENABLE = yes
UNICDOEMAP_ENABLE = no
-MACROS_ENABLED = no
RGBLIGHT_TWINKLE = no
INDICATOR_LIGHTS = no
RGBLIGHT_STARTUP_ANIMATION = yes
-DEBOUNCE_TYPE = eager_pk
+DEBOUNCE_TYPE = eager_pr
diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h
index e6c8223e9..6431cb4ff 100644
--- a/layouts/community/ergodox/drashna_glow/config.h
+++ b/layouts/community/ergodox/drashna_glow/config.h
@@ -5,24 +5,5 @@
#undef PRODUCT
#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Glow
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
-// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
-// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
-# define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
-// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
-// #define EECONFIG_RGB_MATRIX (uint32_t *)16
-
-# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# define DISABLE_RGB_MATRIX_CYCLE_ALL
-# 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
-
-#endif
+#undef RGB_MATRIX_LED_PROCESS_LIMIT
+#undef RGB_MATRIX_LED_FLUSH_LIMIT
diff --git a/layouts/community/ergodox/drashna_glow/rules.mk b/layouts/community/ergodox/drashna_glow/rules.mk
index ae9a2fb16..45addc7c2 100644
--- a/layouts/community/ergodox/drashna_glow/rules.mk
+++ b/layouts/community/ergodox/drashna_glow/rules.mk
@@ -6,8 +6,8 @@ SRC += $(CORRECTED_LAYOUT)/keymap.c
-include $(CORRECTED_LAYOUT)/rules.mk
-ifneq (,$(findstring ergodox_ez,$(KEYBOARD)))
- RGBLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = yes
- TAP_DANCE_ENABLE = no
+ifeq ($(strip $(KEYBOARD)), ergodox_ez)
+ RGBLIGHT_ENABLE = no
+ RGB_MATRIX_ENABLE = yes
+# TAP_DANCE_ENABLE = no
endif
diff --git a/layouts/community/ergodox/dvorak/keymap.c b/layouts/community/ergodox/dvorak/keymap.c
index b161358c1..4d8483f54 100644
--- a/layouts/community/ergodox/dvorak/keymap.c
+++ b/layouts/community/ergodox/dvorak/keymap.c
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1),
+ KC_DEL, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1),
KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/dvorak_intl_squisher/keymap.c b/layouts/community/ergodox/dvorak_intl_squisher/keymap.c
index 83cee0d06..98e288516 100644
--- a/layouts/community/ergodox/dvorak_intl_squisher/keymap.c
+++ b/layouts/community/ergodox/dvorak_intl_squisher/keymap.c
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK,
- KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT,
+ KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DEL,
KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT,
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(2), KC_PSCREEN,
KC_PGUP,
KC_PGDN,RALT(KC_RSFT), KC_ENT
- ),
+ ),
/* Keymap 1: Symbol & Media Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
diff --git a/layouts/community/ergodox/dvorak_programmer_swe/keymap.c b/layouts/community/ergodox/dvorak_programmer_swe/keymap.c
index 41beeb7e5..bb27f18e8 100644
--- a/layouts/community/ergodox/dvorak_programmer_swe/keymap.c
+++ b/layouts/community/ergodox/dvorak_programmer_swe/keymap.c
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
MO(DEVL), KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, NO_MINS, KC_COMM, KC_DOT, KC_P, KC_Y, TG(SYMB),
+ KC_DEL, SE_MINS, KC_COMM, KC_DOT, KC_P, KC_Y, TG(SYMB),
KC_LGUI, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(MDIA),
CTL_T(KC_NO), MO(SYMB), KC_LALT, KC_LEFT,KC_RGHT,
@@ -69,8 +69,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC,KC_BSPC,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLASH,
- TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, NO_AM,
- KC_D, KC_H, KC_T, KC_N, KC_S, NO_AE,
+ TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, SE_AM,
+ KC_D, KC_H, KC_T, KC_N, KC_S, SE_AE,
TG(MDIA),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
LALT(KC_LSFT), CTL_T(KC_ESC),
@@ -102,18 +102,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[SYMB] = LAYOUT_ergodox(
// left hand
M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, NO_AT, ALGR(KC_7), ALGR(KC_0), NO_LBRC, NO_RBRC, KC_TRNS,
- KC_TRNS, KC_HASH, NO_LPRN, NO_RPRN, ALGR(KC_MINS), NO_SLSH,
- KC_TRNS, NO_TILD, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_TRNS,
+ KC_TRNS, SE_AT, ALGR(KC_7), ALGR(KC_0), SE_LBRC, SE_RBRC, KC_TRNS,
+ KC_TRNS, KC_HASH, SE_LPRN, SE_RPRN, ALGR(KC_MINS), SE_SLSH,
+ KC_TRNS, SE_TILD, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), 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_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, NO_LESS, KC_7, KC_8, KC_9, KC_KP_ASTERISK, KC_F12,
- LSFT(NO_LESS), KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
- KC_TRNS, NO_QUES, KC_1, KC_2, KC_3, LSFT(KC_5), KC_TRNS,
+ KC_TRNS, SE_LESS, KC_7, KC_8, KC_9, KC_KP_ASTERISK, KC_F12,
+ LSFT(SE_LESS), KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
+ KC_TRNS, SE_QUES, KC_1, KC_2, KC_3, LSFT(KC_5), KC_TRNS,
KC_DOT,KC_0, LSFT(KC_0), KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
@@ -186,7 +186,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DEVL] = LAYOUT_ergodox(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, M(MACRO_SAVE), M(MACRO_BUILD), M(MACRO_DEBUG), KC_PSCR, ALGR(KC_4), KC_TRNS,
- KC_TRNS, NO_ACUT, NO_APOS, NO_PIPE, KC_TRNS, ALGR(KC_3),
+ KC_TRNS, SE_ACUT, SE_APOS, SE_PIPE, KC_TRNS, ALGR(KC_3),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ALGR(KC_5), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
@@ -218,81 +218,81 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case MACRO_PUBLIC:
if (record->event.pressed) {
return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END);
- }
+ }
break;
case MACRO_PRIVATE:
if (record->event.pressed) {
return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END);
- }
+ }
break;
case MACRO_PROT:
if (record->event.pressed) {
return MACRO( T(P), T(R), T(O), T(T), T(E), T(C), T(T), T(E), T(D), T(SPACE),END);
- }
+ }
break;
case MACRO_SHARED:
if (record->event.pressed) {
return MACRO( T(S), T(H), T(A), T(R), T(E), T(D), T(SPACE), END);
- }
+ }
break;
case MACRO_CONST:
if (record->event.pressed) {
return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END);
- }
- break;
+ }
+ break;
case MACRO_DIM:
if (record->event.pressed) {
return MACRO( T(D), T(I), T(M), T(SPACE), END);
- }
+ }
break;
case MACRO_STRING:
if (record->event.pressed) {
return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END);
- }
- break;
+ }
+ break;
case MACRO_BOOL:
if (record->event.pressed) {
return MACRO( T(B), T(O), T(O), T(L), T(E), T(A), T(N), T(SPACE), END);
- }
- break;
+ }
+ break;
case MACRO_INT:
if (record->event.pressed) {
return MACRO( T(I), T(N), T(T), T(SPACE), END);
- }
+ }
break;
case MACRO_DEC:
if (record->event.pressed) {
return MACRO( T(D), T(E), T(C), T(I), T(M), T(A), T(L), T(SPACE), END);
- }
+ }
break;
case MACRO_RETURN:
if (record->event.pressed) {
return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), T(SPACE), END);
- }
+ }
break;
case MACRO_NOTHING:
if (record->event.pressed) {
return MACRO( T(N), T(O), T(T), T(H), T(I), T(N), T(G), T(SPACE), END);
- }
+ }
case MACRO_TODO:
if (record->event.pressed) {
return MACRO( KC_BSLASH, D(LSHIFT) ,T(T), T(O), T(D), T(O), KC_DOT, U(LSHIFT), T(SPACE),END);
- }
- break;
+ }
+ break;
case MACRO_SAVE:
if (record->event.pressed) {
return MACRO( D(LCTL) ,T(S), U(LCTL),END);
- }
- break;
+ }
+ break;
case MACRO_BUILD:
if (record->event.pressed) {
return MACRO( D(LCTL), D(LSHIFT) ,T(B), U(LSHIFT), U(LCTL),END);
- }
+ }
break;
case MACRO_DEBUG:
if (record->event.pressed) {
return MACRO( KC_F5 ,END);
- }
+ }
break;
}
return MACRO_NONE;
diff --git a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
index b0eff652b..4ca20bd48 100644
--- a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
+++ b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
@@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | ~MOUS| | QWRT | 6 | 7 | 8 | 9 | 0 | + |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | P | Y | | | Del | F | G | C | R | L | , |
+ * | | Å | Ä | Ö | P | Y | | | Del | F | G | C | R | L | , |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Escape | A | O | E | U | I |------| |------| D | H | T | N | S | -/_ |
* |--------+------+------+------+------+------| | | RCTRL|------+------+------+------+------+--------|
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, MO(MOUS),
- KC_TAB, NO_AA, NO_AE, NO_OSLH, KC_P, KC_Y, KC_NO,
+ KC_TAB, SE_AA, SE_AE, SE_OSLH, KC_P, KC_Y, KC_NO,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_NO,
KC_LCTRL, KC_NO, KC_NO, KC_LALT, KC_LCMD,
@@ -41,9 +41,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_NO,
KC_BSPC, KC_TAB, KC_NO,
// right hand
- TG(QWRT), KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
+ TG(QWRT), KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,
- KC_D, KC_H, KC_T, KC_N, KC_S, NO_MINS,
+ KC_D, KC_H, KC_T, KC_N, KC_S, SE_MINS,
KC_RCTRL, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
MO(SYMB), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_HOME, KC_END,
@@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | ; | / | ( | ) | | |------| |------| # | ^ | # | " | ~ | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | : | = | @ | ! | \ | | | | % | | ' | * | | |
+ * | | : | = | @ | ! | \ | | | | % | ´ | ' | * | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
@@ -84,9 +84,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_NO, KC_NO,
// right hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, LSFT(KC_2), NO_QUES, LSFT(KC_6), NO_LESS, NO_GRTR, KC_NO,
- KC_HASH, NO_CIRC, KC_HASH, LSFT(KC_2), NO_TILD, KC_NO,
- KC_NO, KC_PERC, NO_ACUT, NO_APOS, NO_ASTR, NO_GRV, KC_NO,
+ KC_NO, LSFT(KC_2), SE_QUES, LSFT(KC_6), SE_LESS, SE_GRTR, KC_NO,
+ KC_HASH, SE_CIRC, KC_HASH, LSFT(KC_2), SE_TILD, KC_NO,
+ KC_NO, KC_PERC, SE_ACUT, SE_APOS, SE_ASTR, SE_GRV, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO,
@@ -137,16 +137,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | Print | ! | " | # | # | % | | |Middle| & | / | ( | ) | = | ? |
- * | Screen | 1 | 2 @ | 3 | 4 $ | 5 | F11 | |Mouse | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
+ * | Screen | 1 | 2 @ | 3 £ | 4 $ | 5 | F11 | |Mouse | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | |
+ * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Å |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | | |
+ * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä |
* |--------+------+------+------+------+------| ` | | Del |------+------+------+------+------+--------|
* | LShft | Z | X | C | V | B | ' | | | N | M | , | . | - | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LCtl | ^ | * | LAlt | LGui | | AltGr| Down | Up | Left | Right|
- * | (') | " ~ | ' | | | | | | | | |
+ * | (') | " ~ | ' ´ | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,--------------.
* | LCtl | LAlt | | Home | End |
@@ -161,16 +161,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PSCR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_ACUT,
- CTL_T(NO_APOS), NO_CIRC, NO_ASTR, KC_LALT, KC_LGUI,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, SE_ACUT,
+ CTL_T(SE_APOS), SE_CIRC, SE_ASTR, KC_LALT, KC_LGUI,
KC_LCTRL, KC_LALT,
- NO_TILD,
+ SE_TILD,
KC_BSPC, KC_TAB, KC_ESC,
// right hand
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
- KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
- KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE,
- KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, KC_RSFT,
+ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
+ KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AA,
+ KC_H, KC_J, KC_K, KC_L, SE_OSLH, SE_AE,
+ KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, SE_MINS, KC_RSFT,
KC_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
KC_HOME, KC_END,
KC_PGUP,
diff --git a/layouts/community/ergodox/emacs_osx_dk/keymap.c b/layouts/community/ergodox/emacs_osx_dk/keymap.c
index 8f4c010af..c34d9f65b 100644
--- a/layouts/community/ergodox/emacs_osx_dk/keymap.c
+++ b/layouts/community/ergodox/emacs_osx_dk/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RALT,
MO(SYMB), KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT,
- KC_DELT,KC_INS,
+ KC_DEL, KC_INS,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
diff --git a/layouts/community/ergodox/german-kinergo/keymap.c b/layouts/community/ergodox/german-kinergo/keymap.c
index 7e1e5bf82..20651df0f 100644
--- a/layouts/community/ergodox/german-kinergo/keymap.c
+++ b/layouts/community/ergodox/german-kinergo/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT,
KC_LCTRL, KC_LALT,
KC_HOME,
- KC_BSPC,KC_DELT,KC_END,
+ KC_BSPC,KC_DEL,KC_END,
// right hand
KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE,
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// [BASE] = LAYOUT_ergodox( // layer 0 : default
// // left hand
// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
-// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+// KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS,
diff --git a/layouts/community/ergodox/german-lukas/keymap.c b/layouts/community/ergodox/german-lukas/keymap.c
index e0cdf25c6..373a1e044 100644
--- a/layouts/community/ergodox/german-lukas/keymap.c
+++ b/layouts/community/ergodox/german-lukas/keymap.c
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT,
KC_LCTRL, KC_LALT,
KC_HOME,
- KC_SPC ,KC_DELT,KC_END,
+ KC_SPC ,KC_DEL,KC_END,
// right hand
KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(MDIA), DE_Z, KC_U, KC_I, KC_O, KC_P, LT(SHRT,DE_UE),
diff --git a/layouts/community/ergodox/german-manuneo/keymap.c b/layouts/community/ergodox/german-manuneo/keymap.c
index 9198bf6e3..d1e48e110 100644
--- a/layouts/community/ergodox/german-manuneo/keymap.c
+++ b/layouts/community/ergodox/german-manuneo/keymap.c
@@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT|
* '------------------------' '------------------------'
* .-----------. .-----------.
- * |INS |TG(2)| !M(UM)|DELT |
+ * |INS |TG(2)| !M(UM)|DEL |
* .-----+-----+-----! !-----+-----+-----.
* ! ! | APP | ! PGUP| ! !
* ! ! !-----! !-----! ! !
@@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS,
KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y,
/*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT,
- M(UM), KC_DELT,
+ M(UM), KC_DEL,
KC_PGUP,
KC_PGDN, KC_ENTER, KC_SPACE
),
diff --git a/layouts/community/ergodox/german-manuneo/keymap.md b/layouts/community/ergodox/german-manuneo/keymap.md
index c59f16a00..3f476ad2a 100644
--- a/layouts/community/ergodox/german-manuneo/keymap.md
+++ b/layouts/community/ergodox/german-manuneo/keymap.md
@@ -43,7 +43,7 @@ Tested with python 2.7 and python 3.4
| | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT|
'------------------------' '------------------------'
.-----------. .-----------.
- |INS |TG(2)| !M(UM)|DELT |
+ |INS |TG(2)| !M(UM)|DEL |
.-----+-----+-----! !-----+-----+-----.
! ! | APP | ! PGUP| ! !
! ! !-----! !-----! ! !
diff --git a/layouts/community/ergodox/german/keymap.c b/layouts/community/ergodox/german/keymap.c
index a379b24ca..83ead2eb2 100644
--- a/layouts/community/ergodox/german/keymap.c
+++ b/layouts/community/ergodox/german/keymap.c
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS,
diff --git a/layouts/community/ergodox/guni/keymap.c b/layouts/community/ergodox/guni/keymap.c
index 9a00f0a97..021271c2e 100644
--- a/layouts/community/ergodox/guni/keymap.c
+++ b/layouts/community/ergodox/guni/keymap.c
@@ -138,7 +138,6 @@ const uint16_t PROGMEM fn_actions[] = {
//[29] = ACTION_LAYER_TOGGLE(4),
[29] = ACTION_MODS_TAP_KEY(MOD_RSFT,KC_ESC),
[30] = ACTION_LAYER_TAP_KEY(1, KC_QUOT),
- [31] = ACTION_LAYER_MOMENTARY(2),
//[] = ACTION_LAYER_TAP_KEY(4, KC_S),
};
diff --git a/layouts/community/ergodox/ishigoya-jp/keymap.c b/layouts/community/ergodox/ishigoya-jp/keymap.c
index 43bc74a0e..59040cd50 100644
--- a/layouts/community/ergodox/ishigoya-jp/keymap.c
+++ b/layouts/community/ergodox/ishigoya-jp/keymap.c
@@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_RCTL, KC_LGUI, KC_LALT,JP_UNDS,KC_LCTL,
KC_BTN3, KC_DEL,
KC_NO,
- KC_SPC,KC_LSFT,F(1),
+ KC_SPC,KC_LSFT,MO(NUM),
// right hand
LCTL(KC_Z), KC_NO, LSFT(KC_4), JP_AT, KC_LEFT, KC_UP, KC_RIGHT,
KC_PGUP, KC_J, KC_F, KC_U, KC_P, KC_DOWN, LSFT(KC_3),
@@ -187,7 +187,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_NO,
- M(SHIFT), M(JPFN), F(1),
+ M(SHIFT), M(JPFN), MO(NUM),
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, M(JPFU), M(JPSE), M(JPTSU), M(JPKU), KC_TRNS, KC_TRNS,
@@ -415,10 +415,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_LAYER_MOMENTARY(NUM) // FN1 - Momentary Layer 6 (Numbers)
-};
-
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
diff --git a/layouts/community/ergodox/issmirnov/README.md b/layouts/community/ergodox/issmirnov/README.md
new file mode 100644
index 000000000..564edfe31
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/README.md
@@ -0,0 +1,49 @@
+# Ivan's Ergodox Config
+
+
+## Details about the layout
+
+- Shift and Cmd are One Shot Modifiers, so tapping them once will apply them to the next key. When tapped twice they will lock, until tapped again to clear.
+- When switching to other layers, any stuck modifiers are cleared in order to avoid unintended key combos
+- There are a few leader key combinations. Right now, `KC_LEAD` + `s` will open my wiki homepage.
+- All transparent keys have been replaced with noops to avoid layer bleeding.
+
+## Initial Setup
+
+### QMK
+
+```
+brew tap osx-cross/avr
+brew tap PX4/homebrew-px4
+brew update
+brew install avr-gcc
+brew install dfu-programmer
+brew install gcc-arm-none-eabi
+brew install avrdude
+
+git clone https://github.com/qmk/qmk_firmware.git
+git clone https://github.com/issmirnov/ergodox-layout.git \
+ layouts/community/ergodox/ismirnov
+```
+
+### Teensy utils
+
+Download and add both of these to $PATH
+
+- [hid_listen](https://www.pjrc.com/teensy/hid_listen.html)
+- [teensy loader cli](https://www.pjrc.com/teensy/loader_cli.html)
+
+## Flashing
+
+```
+make ergodox_ez:ismirnov
+teensy_loader_cli -mmcu=atmega32u4 -w -v ergodox_ez_ismirnov.hex
+
+# or just
+make ergodox_ez:ismirnov:flash
+```
+
+## Gotchas
+
+- If you get error: `dyld: Library not loaded: /usr/local/opt/isl/lib/libisl.15.dylib` then do `brew reinstall avr-gcc`
+- If `hid_listen` just prints out a ton of dots, update makefile with `CONSOLE_ENABLE = yes`
diff --git a/layouts/community/ergodox/issmirnov/asci-keymap.txt b/layouts/community/ergodox/issmirnov/asci-keymap.txt
new file mode 100644
index 000000000..9b023f664
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/asci-keymap.txt
@@ -0,0 +1,95 @@
+ Qwerty
+,--------------------------------------------. ,--------------------------------------------.
+| Escape | 1 | 2 | 3 | 4 | 5 | ! | | = | 6 | 7 | 8 | 9 | 0 | Escape |
+|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
+|Lctl(Spa| Q | W | E | R | T | * | | + | Y | U | I | O | P |Lgui(Spa|
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| Tab | A | S | D | F | G |-----| |-----| H | J | K | L |TapTo|Mo(Navi)|
+|--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------|
+|Osm(ModL| Z | X | C | V | B | | | | N | M | . |Comma|Tg(Nu| ' |
+`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
+ |Ctrl |Lsft(|Lsft(| Alt | Mod | |Escap| : | % | |Lgui(|
+ `-----------------------------' ,-----------. ,-----------. `-----------------------------'
+ | | | | ← | → |
+ ,-----|-----|-----| |-----+-----+-----.
+ | | | | | ↑ | | |
+ | ⎵ | ⌫ |-----| |-----| Tab |Enter|
+ | | | Del | | ↓ | | |
+ `-----------------' `-----------------'
+
+ Symb
+,--------------------------------------------. ,--------------------------------------------.
+| Escape | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
+|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
+| | - | @ | { | } | ` | * | | + | * | ! | | | % | + |Mo(Navi)|
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| Tab | ^ | _ | ( | ) | $ |-----| |-----| # | = | : | ; |TapTo| Dquo |
+|--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------|
+| Lshift | < | > | [ | ] | ~ | | | | & | ? | / | \ |Tg(Nu| ' |
+`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
+ |Ctrl |Lsft(|Lsft(| Alt |WkspL| |Escap| : | % | | |
+ `-----------------------------' ,-----------. ,-----------. `-----------------------------'
+ | | | | ← | → |
+ ,-----|-----|-----| |-----+-----+-----.
+ | | | | | ↑ | | |
+ |WkspR| ⌫ |-----| |-----| Tab |Enter|
+ | | | Del | | ↓ | | |
+ `-----------------' `-----------------'
+
+ Nump
+,--------------------------------------------. ,--------------------------------------------.
+| | | | | | | | | = | | | | | | Reset |
+|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
+| | No | No |Lgui(| | | * | | + | , | 7 | 8 | 9 | | |
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| Tab | |Lgui(|Lgui(|Lgui(| |-----| |-----| 0 | 4 | 5 | 6 |To(Sy| |
+|--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------|
+| | | | |Audio|Audio| | | | . | 1 | 2 | 3 |To(Qw| |
+`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
+ |To(0)| | | | | | 0 | | |To(3)| |
+ `-----------------------------' ,-----------. ,-----------. `-----------------------------'
+ | | | | ← | → |
+ ,-----|-----|-----| |-----+-----+-----.
+ | | | | | ↑ | | |
+ | ⎵ | ⌫ |-----| |-----| Alt |Shift|
+ | | | Del | | ↓ | | |
+ `-----------------' `-----------------'
+
+ Overwatch
+,--------------------------------------------. ,--------------------------------------------.
+| Escape | 1 | 2 | 3 | 4 | 5 |To(0)| | | | | | | | |
+|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
+| Tab | Q | W | E | R | T | | | | | | | | | |
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| Ctrl | A | S | D | F | P |-----| |-----| | | | | | |
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| Lshift | Z | X | C | V |Grave| | | | | | | | | |
+`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
+ |Ctrl | F9 |Pscre| H | R | | | | | | |
+ `-----------------------------' ,-----------. ,-----------. `-----------------------------'
+ | | | | | |
+ ,-----|-----|-----| |-----+-----+-----.
+ | | | | | | | |
+ | ⎵ | |-----| |-----| | |
+ | | | | | | | |
+ `-----------------' `-----------------'
+
+ Navi
+,--------------------------------------------. ,--------------------------------------------.
+| Escape | 1 | 2 | 3 | 4 | 5 | 6 | | | | | | | | |
+|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
+| | | | ↑ | | | | | | | | | | | |
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| | | ← | ↓ | → | |-----| |-----| |Ctrl | | | | |
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| | | | | | | | | | | | | | | |
+`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
+ | | | | |WkspL| | ⌘⇧ | | | | |
+ `-----------------------------' ,-----------. ,-----------. `-----------------------------'
+ | | | | | |
+ ,-----|-----|-----| |-----+-----+-----.
+ | | | | | | | |
+ |WkspR| |-----| |-----| | Mod |
+ | | | | | | | |
+ `-----------------' `-----------------'
+
diff --git a/layouts/community/ergodox/issmirnov/build.sh b/layouts/community/ergodox/issmirnov/build.sh
new file mode 100755
index 000000000..7bb694d8a
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/build.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+make ergodox_ez:issmirnov
diff --git a/layouts/community/ergodox/issmirnov/config.h b/layouts/community/ergodox/issmirnov/config.h
new file mode 100644
index 000000000..fe62a7d1d
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/config.h
@@ -0,0 +1,3 @@
+// Reference: https://beta.docs.qmk.fm/reference/config-options
+// and https://github.com/qmk/qmk_firmware/blob/master/docs/config_options.md
+#include QMK_KEYBOARD_CONFIG_H
diff --git a/layouts/community/ergodox/issmirnov/keymap.c b/layouts/community/ergodox/issmirnov/keymap.c
new file mode 100644
index 000000000..ce853f3d3
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/keymap.c
@@ -0,0 +1,250 @@
+#include QMK_KEYBOARD_H
+
+// Custom user includes
+#include "issmirnov.h"
+#include "tap_tog.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QWERTY] = LAYOUT_ergodox_wrapper(
+KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM,
+LCTL(KC_SPACE), _________________QWERTY_L1_________________, KC_ASTR,
+KC_TAB, _________________QWERTY_L2_________________,
+OSM(MOD_LSFT), _________________QWERTY_L3_________________, KC_SLASH,
+KC_LCTL, LSFT(KC_LGUI), LSFT(KC_LALT), KC_LALT, KC_LGUI,
+ XXXXXXX, XXXXXXX,
+ XXXXXXX,
+ KC_SPACE, KC_BSPACE, KC_DEL,
+
+KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESCAPE ,
+KC_PLUS , _________________QWERTY_R1_________________ , LGUI(KC_SPACE) ,
+ _________________QWERTY_R2_________________ , MO(_NAVI) ,
+KC_MINS , _________________QWERTY_R3_________________ , KC_QUOTE ,
+KC_ESCAPE , KC_COLN , KC_PERC , XXXXXXX , LGUI(KC_L) ,
+
+KC_LEFT, KC_RGHT,
+KC_UP,
+KC_DOWN, KC_TAB, KC_ENTER
+),
+
+ // layer 1
+[_SYMB] = LAYOUT_ergodox_wrapper(
+KC_ESCAPE , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 ,
+XXXXXXX , _________________SYMB_L1___________________ ,KC_ASTR ,
+KC_TAB , _________________SYMB_L2___________________,
+KC_LSHIFT , _________________SYMB_L3___________________, KC_SLASH ,
+KC_LCTL , LSFT(KC_LGUI) , LSFT(KC_LALT) , KC_LALT , WKSP_LEFT ,
+
+ XXXXXXX, XXXXXXX,
+ XXXXXXX,
+ WKSP_RIGHT, KC_BSPACE, KC_DEL,
+
+KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX ,
+KC_PLUS , _________________SYMB_R1___________________ , MO(_NAVI) ,
+ _________________SYMB_R2___________________ , KC_DQUO ,
+KC_MINS , _________________SYMB_R3___________________ , KC_QUOTE ,
+KC_ESCAPE , KC_COLN , KC_PERC , XXXXXXX , XXXXXXX ,
+
+KC_LEFT, KC_RGHT,
+KC_UP,
+KC_DOWN, KC_TAB, KC_ENTER
+),
+
+ // layer 2
+[_NUMP] = LAYOUT_ergodox_wrapper(
+XXXXXXX , ___________________XXXXX___________________, XXXXXXX ,
+XXXXXXX , _________________NUMP_L1___________________ , KC_ASTR ,
+KC_TAB , _________________NUMP_L2___________________ ,
+XXXXXXX , _________________NUMP_L3___________________ , KC_SLASH ,
+TO(0) , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+
+ XXXXXXX , XXXXXXX ,
+ XXXXXXX ,
+ KC_SPACE , KC_BSPACE , KC_DEL ,
+
+KC_EQL , ___________________XXXXX___________________ , RESET ,
+KC_PLUS , _________________NUMP_R1___________________ , XXXXXXX ,
+ _________________NUMP_R2___________________ , XXXXXXX ,
+KC_MINS , _________________NUMP_R3___________________ , XXXXXXX ,
+ KC_0 , XXXXXXX , XXXXXXX , TO(3) , XXXXXXX ,
+
+KC_LEFT, KC_RGHT,
+KC_UP,
+KC_DOWN, KC_LALT, KC_LSFT
+),
+
+ // layer 3
+[_OVERWATCH] = LAYOUT_ergodox_wrapper(
+KC_ESCAPE, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TO(0) ,
+______________OVERWATCH_L1_________________ , XXXXXXX ,
+______________OVERWATCH_L2_________________ ,
+______________OVERWATCH_L3_________________ , XXXXXXX ,
+______________OVERWATCH_L4_________________ ,
+
+XXXXXXX , XXXXXXX ,
+XXXXXXX ,
+KC_SPACE , XXXXXXX , XXXXXXX ,
+
+
+_______, _______, _______, _______, _______, _______, _______,
+_______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+_______, _______, _______, _______, _______, _______, _______,
+_______, _______, _______, _______, _______,
+
+_______, _______,
+_______,
+_______, _______, _______
+
+),
+// layer 4
+[_NAVI] = LAYOUT_ergodox_wrapper(
+KC_ESCAPE, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 ,
+XXXXXXX, _________________NAVI_L1___________________ , XXXXXXX ,
+XXXXXXX, _________________NAVI_L2___________________ ,
+XXXXXXX, _________________NAVI_L3___________________ , XXXXXXX ,
+XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_LEFT,
+
+XXXXXXX , XXXXXXX ,
+XXXXXXX ,
+WKSP_RIGHT , XXXXXXX , XXXXXXX ,
+
+
+_______, _______, _______, _______, _______, _______, _______,
+_______, _________________NAVI_R1___________________, _______,
+ _________________NAVI_R2___________________, _______,
+_______, _________________NAVI_R3___________________, _______,
+MODSFT, _______, _______, _______, _______,
+
+_______, _______,
+_______,
+_______, _______, KC_LGUI
+
+),
+};
+
+
+// called by QMK during key processing before the actual key event is handled. Useful for macros.
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ uint8_t layer = biton32(layer_state);
+ switch (keycode) {
+ case TAP_TOG_LAYER:
+ process_tap_tog(_SYMB,record);
+ return false;
+ break;
+
+ case WKSP_LEFT:
+ // Only if TAP_TOG_LAYER is being held right now do we want to do actions.
+ if (record->event.pressed && (!tap_tog_layer_toggled_on || layer == _NAVI)) {
+ tap_code16(LGUI(LSFT(KC_Z)));
+ tap_tog_layer_other_key_pressed = true; // Add flag so layer resets
+ }
+ break;
+ case WKSP_RIGHT:
+ // Only if TAP_TOG_LAYER is being held right now do we want to do actions.
+ if (record->event.pressed && (!tap_tog_layer_toggled_on || layer == _NAVI)) {
+ tap_code16(LGUI(LSFT(KC_X)));
+ tap_tog_layer_other_key_pressed = true; // Add flag so layer resets
+ }
+ break;
+ default:
+ tap_tog_count = 0; // reset counter.
+ tap_tog_layer_other_key_pressed = true; // always set this to true, TAP_TOG_LAYER handlers will handle interpreting this
+ break;
+ }
+ return true;
+}
+
+// Runs constantly in the background, in a loop every 100ms or so.
+// Best used for LED status output triggered when user isn't actively typing.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+ if (layer == 0) {
+ // Set up LED indicators for stuck modifier keys.
+ // https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/report.h#L118
+ switch (keyboard_report->mods) {
+ case MOD_BIT(KC_LSFT): // LSHIFT
+ ergodox_right_led_1_set (LED_BRIGHTNESS_LO);
+ ergodox_right_led_1_on ();
+ ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
+ ergodox_right_led_2_on ();
+ ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_3_off ();
+ break;
+
+ case MOD_BIT(KC_LGUI): // LGUI
+ ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_1_off ();
+ ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
+ ergodox_right_led_2_on ();
+ ergodox_right_led_3_set (LED_BRIGHTNESS_LO);
+ ergodox_right_led_3_on ();
+ break;
+
+ case MOD_BIT(KC_LSFT) ^ MOD_BIT(KC_LGUI):
+ ergodox_right_led_1_set (70);
+ ergodox_right_led_1_on ();
+ ergodox_right_led_2_set (70);
+ ergodox_right_led_2_on ();
+ ergodox_right_led_3_set (70);
+ ergodox_right_led_3_on ();
+ break;
+
+ default: // reset leds
+ ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_1_off ();
+ ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_2_off ();
+ ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_3_off ();
+ }
+ }
+}
+
+// only runs when when the layer is changed, good for updating LED's and clearing sticky state
+uint32_t layer_state_set_user(uint32_t state) {
+ uint8_t layer = biton32(state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+
+ combo_enable(); // by default, enable combos.
+ switch (layer) {
+ case 0:
+ break;
+ case 1:
+ clear_mods();
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ clear_mods();
+ ergodox_right_led_2_on();
+ break;
+ case _OVERWATCH:
+ clear_mods();
+ combo_disable(); // We don't want combos in overwatch
+ ergodox_right_led_3_on();
+ break;
+ case 4:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ break;
+ case 5:
+ ergodox_right_led_1_on();
+ ergodox_right_led_3_on();
+ break;
+ case 6:
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ break;
+ case 7:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ break;
+ default:
+ break;
+ }
+ return state;
+};
diff --git a/layouts/community/ergodox/issmirnov/push.sh b/layouts/community/ergodox/issmirnov/push.sh
new file mode 100755
index 000000000..1a6c7c447
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/push.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+make ergodox_ez:issmirnov:teensy
diff --git a/layouts/community/ergodox/issmirnov/template.txt b/layouts/community/ergodox/issmirnov/template.txt
new file mode 100644
index 000000000..35c7920a1
--- /dev/null
+++ b/layouts/community/ergodox/issmirnov/template.txt
@@ -0,0 +1,17 @@
+,--------------------------------------------. ,--------------------------------------------.
+| 0 | 1 | 2 | 3 | 4 | 5 | 6 | | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
+|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
+| 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
+|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
+| 14 | 15 | 16 | 17 | 18 | 19 |-----| |-----| 52 | 53 | 54 | 55 | 56 | 57 |
+|--------+-----+-----+-----+-----+-----| 26 | | 58 |-----+-----+-----+-----+-----+--------|
+| 20 | 21 | 22 | 23 | 24 | 25 | | | | 59 | 60 | 61 | 62 | 63 | 64 |
+`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
+ | 27 | 28 | 29 | 30 | 31 | | 65 | 66 | 67 | 68 | 69 |
+ `-----------------------------' ,-----------. ,-----------. `-----------------------------'
+ | 32 | 33 | | 70 | 71 |
+ ,-----|-----|-----| |-----+-----+-----.
+ | | | 34 | | 72 | | |
+ | 35 | 36 |-----| |-----| 74 | 75 |
+ | | | 37 | | 73 | | |
+ `-----------------' `-----------------'
diff --git a/layouts/community/ergodox/jacobono/keymap.c b/layouts/community/ergodox/jacobono/keymap.c
index 8d80e349b..62858f8dd 100644
--- a/layouts/community/ergodox/jacobono/keymap.c
+++ b/layouts/community/ergodox/jacobono/keymap.c
@@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LGUI(S(KC_SPC)),
KC_SPC,KC_ENT,MO(NUMPAD),
// right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT,
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB,
KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL,
LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
@@ -83,11 +83,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB),
- KC_TAB, KC_DELT,
+ KC_TAB, KC_DEL,
KC_HOME,
KC_SPC, KC_LGUI, KC_END,
// right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT,
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_RCTRL,
KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
diff --git a/layouts/community/ergodox/jafo/keymap.c b/layouts/community/ergodox/jafo/keymap.c
index 08ea16d4b..4737ab710 100644
--- a/layouts/community/ergodox/jafo/keymap.c
+++ b/layouts/community/ergodox/jafo/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
GUI_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(MDIA),
- LT(SYMB,KC_GRV),KC_QUOT, KC_DELT, KC_LEFT,KC_RGHT,
+ LT(SYMB,KC_GRV),KC_QUOT, KC_DEL, KC_LEFT,KC_RGHT,
CTL_T(KC_ESC), KC_LALT,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
diff --git a/layouts/community/ergodox/jgarr/keymap.c b/layouts/community/ergodox/jgarr/keymap.c
index 37524dfa0..84b573aca 100644
--- a/layouts/community/ergodox/jgarr/keymap.c
+++ b/layouts/community/ergodox/jgarr/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1),
CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
diff --git a/layouts/community/ergodox/mpiechotka/keymap.c b/layouts/community/ergodox/mpiechotka/keymap.c
index cfd5b195e..a673d0bd8 100644
--- a/layouts/community/ergodox/mpiechotka/keymap.c
+++ b/layouts/community/ergodox/mpiechotka/keymap.c
@@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
+ KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL,
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
@@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE_CM] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB),
+ KC_DEL, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB),
KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D,
KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL,
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
diff --git a/layouts/community/ergodox/msc/keymap.c b/layouts/community/ergodox/msc/keymap.c
index c64c92c9c..62c2ec7b5 100644
--- a/layouts/community/ergodox/msc/keymap.c
+++ b/layouts/community/ergodox/msc/keymap.c
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_DEL, 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_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
KC_LGUI,KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c
index afadf13ff..63fea6e1c 100644
--- a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c
+++ b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
NO_EQL, KC_N, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS,
KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2),
KC_INSERT, KC_PERC,
- KC_DELT,
+ KC_DEL,
KC_BSPC,KC_ENT,KC_SPC
),
/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped)
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c
index 10b7df642..cb61ce59c 100644
--- a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c
+++ b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS,
KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2),
KC_INSERT, KC_PERC,
- KC_DELT,
+ KC_DEL,
KC_BSPC,KC_ENT,KC_SPC
),
/* Keymap 1: Basic layer MAC (Same as pc, except for cmd/ctrl, which are swapped)
diff --git a/layouts/community/ergodox/osx_fr/keymap.c b/layouts/community/ergodox/osx_fr/keymap.c
index b1876d6a8..dba9bf32b 100644
--- a/layouts/community/ergodox/osx_fr/keymap.c
+++ b/layouts/community/ergodox/osx_fr/keymap.c
@@ -35,14 +35,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT,
- KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1),
+ KC_DEL, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1),
KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,FR_UGRV), FR_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC, KC_BSPC, KC_END,
-
+
// right hand
KC_RGHT, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN,
TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV,
diff --git a/layouts/community/ergodox/osx_kinesis_pnut/keymap.c b/layouts/community/ergodox/osx_kinesis_pnut/keymap.c
index 5b731a1c0..21e383bd2 100644
--- a/layouts/community/ergodox/osx_kinesis_pnut/keymap.c
+++ b/layouts/community/ergodox/osx_kinesis_pnut/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LALT(KC_LSFT), LT(SYMB,KC_GRV),KC_QUOT,KC_LEFT,KC_RGHT,
KC_LGUI, ALT_T(KC_APP),
KC_HOME,
- KC_BSPC,KC_DELT,KC_END,
+ KC_BSPC,KC_DEL,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
index dcf2dc1d8..729810705 100644
--- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
+++ b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
KC_TAB, M(KC_Q), M(KC_W), M(KC_E), M(KC_R), M(KC_T), KC_LBRC,
M(KC_CAPS), M(KC_A), M(KC_S), M(KC_D), M(KC_F), M(KC_G),
- KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), KC_FN0,
+ KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), MO(SYMB),
KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT,
KC_TRNS, KC_FN1,
KC_HOME,
@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
KC_RBRC, M(KC_Y), M(KC_U), M(KC_I), M(KC_O), M(KC_P), KC_BSLS,
M(KC_H), M(KC_J), M(KC_K), M(KC_L), KC_SCLN, KC_QUOT,
- KC_FN0, M(KC_N), M(KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(SYMB), M(KC_N), M(KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_DOWN, KC_UP, KC_RCTL, KC_RGUI, KC_RALT,
KC_RALT, KC_RCTL,
KC_PGUP,
@@ -148,12 +148,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
const uint16_t PROGMEM fn_actions[] = {
- ACTION_LAYER_MOMENTARY(SYMB), // FN0 - Momentary Layer 1 (Symbols)
- ACTION_LAYER_ON(SYMB,ON_RELEASE), // FN1 - Enable Layer 1 (Symbols)
- ACTION_LAYER_ON(MDIA,ON_RELEASE), // FN2 - Enable Layer 2 (Media)
- ACTION_LAYER_OFF(SYMB,ON_RELEASE), // FN3 - Disable Layer 1 (Symbols)
- ACTION_LAYER_OFF(MDIA,ON_RELEASE), // FN4 - Disable Layer 2 (MMedia)
- ACTION_LAYER_MOMENTARY(MDIA) // FN5 - Momentary Layer 2 (Mdia)
+ [1] = ACTION_LAYER_ON(SYMB,ON_RELEASE), // FN1 - Enable Layer 1 (Symbols)
+ [2] = ACTION_LAYER_ON(MDIA,ON_RELEASE), // FN2 - Enable Layer 2 (Media)
+ [3] = ACTION_LAYER_OFF(SYMB,ON_RELEASE), // FN3 - Disable Layer 1 (Symbols)
+ [4] = ACTION_LAYER_OFF(MDIA,ON_RELEASE), // FN4 - Disable Layer 2 (MMedia)
};
diff --git a/layouts/community/ergodox/phoenix/keymap.c b/layouts/community/ergodox/phoenix/keymap.c
index 31a987b35..b9be7e2b8 100644
--- a/layouts/community/ergodox/phoenix/keymap.c
+++ b/layouts/community/ergodox/phoenix/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_END,
KC_SPC,KC_BSPC,KC_LGUI,
// right hand
- KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_DEL, 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, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
diff --git a/layouts/community/ergodox/plover/keymap.c b/layouts/community/ergodox/plover/keymap.c
index 9f19ab24c..0ab60ffbb 100644
--- a/layouts/community/ergodox/plover/keymap.c
+++ b/layouts/community/ergodox/plover/keymap.c
@@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
ALT_T(KC_APP), KC_HOME,
- KC_END,
- KC_BSPC,KC_DELT,KC_LALT,
+ KC_END,
+ KC_BSPC,KC_DEL,KC_LALT,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(3), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
index 5f4ed3c19..bf20e76a5 100644
--- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c
+++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
@@ -24,34 +24,37 @@
#define CFQ_USE_DYNAMIC_MACRO
-
#if !defined(CFQ_USER_KEY0)
-# define CFQ_USER_KEY0 KC_BSPC
+# define CFQ_USER_KEY0 KC_APP
#endif
#if !defined(CFQ_USER_KEY1)
-# define CFQ_USER_KEY1 CFQ_KC_FN1
+# define CFQ_USER_KEY1 KC_MENU
#endif
#if !defined(CFQ_USER_KEY2)
-# define CFQ_USER_KEY2 KC_INS
+# define CFQ_USER_KEY2 KC_BSPC
#endif
#if !defined(CFQ_USER_KEY3)
-# define CFQ_USER_KEY3 KC_NLCK
+# define CFQ_USER_KEY3 KC_DEL
#endif
#if !defined(CFQ_USER_KEY4)
-# define CFQ_USER_KEY4 KC_BSPC
+# define CFQ_USER_KEY4 KC_SPC
#endif
#if !defined(CFQ_USER_KEY5)
-# define CFQ_USER_KEY5 KC_DELT
+# define CFQ_USER_KEY5 CFQ_KC_FN1
#endif
#if !defined(CFQ_USER_KEY6)
# define CFQ_USER_KEY6 KC_CAPS
#endif
#if !defined(CFQ_USER_KEY7)
-# define CFQ_USER_KEY7 CFQ_KC_FN3
+# define CFQ_USER_KEY7 KC_INS
#endif
#if !defined(CFQ_USER_KEY8)
# define CFQ_USER_KEY8 KC_DEL
#endif
+#if !defined(CFQ_USER_KEY9)
+# define CFQ_USER_KEY9 KC_BSPC
+#endif
+
#ifdef CFQ_USE_80_KEYS
# define LAYOUT_ergodox_76_or_80 LAYOUT_ergodox_80
@@ -240,10 +243,10 @@ static char cfq_word_lut_title_caps[
sizeof(CFQ_WORD_Y) + sizeof(CFQ_WORD_Z)
];
-#define LAYER_BASE 0 /* default layer */
-#define LAYER_KPAD 1 /* keypad */
-#define LAYER_MDIA 2 /* media keys */
-#define LAYER_FKEY 3 /* F-Keys & Words */
+#define LAYER_BASE 0 /* Default Layer. */
+#define LAYER_KPAD 1 /* Keypad, Bracket Pairs & Macro Record. */
+#define LAYER_FKEY 2 /* Function Keys, Media & Mouse Keys. */
+#define LAYER_WORD 3 /* Entire Words (one for each key) & Numbers. */
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, /* can always be here */
@@ -307,20 +310,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
+ * | LCtl |Super | Alt | App | Menu | | Left | Down | Up |Right | Del |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
- * | Ins |NumClk| | Home | End |
+ * |BSpace| Del | | Home | End |
* .------+------+------| |------+------+------.
* | | |CapsLk| | PgUp | | |
- * |BSpace| Del |------| |------| ~L2 |Enter |
- * | | | ~L3 | | PgDn | | |
+ * |Space | ~L1 |------| |------| ~L2 |Enter |
+ * | | |Insert| | PgDn | | |
* '--------------------' '--------------------'
*
* Optional overrides: see CFQ_USER_KEY# defines.
- *
* .--------------------------------------------------. .--------------------------------------------------.
- * | | | | | | | | | | | | | | | USR0 |
+ * | | | | | | | | | | | | | | | USR9 |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -328,7 +330,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | | | | USR1 | | | | | | | USR8 |
+ * | | | | USR0 | USR1 | | | | | | USR8 |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
* | USR2 | USR3 | | | |
@@ -347,12 +349,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN,
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_LBRC,
- KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY1, KC_SPC,
+ KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY0, CFQ_USER_KEY1,
CFQ_USER_KEY2, CFQ_USER_KEY3,
K80(L0K0), K80(L0K1), CFQ_USER_KEY6,
CFQ_USER_KEY4, CFQ_USER_KEY5, CFQ_USER_KEY7,
/* right hand */
- KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY0,
+ KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY9,
KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
@@ -361,7 +363,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PGUP, K80(L0K2), K80(L0K3),
KC_PGDN, CFQ_KC_FN2, KC_ENT
),
-/* Keymap 1: KeyPad, Macro Record
+/* Keymap 1: Keypad, Bracket Pairs & Macro Record
*
* .--------------------------------------------------. .--------------------------------------------------.
* | | | | | | | {} | | }{ | |NumLck| / | * | - | |
@@ -377,12 +379,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* .-------------. .-------------.
* |Start1|Start2| | | |
* .------+------+------| |------+------+------.
- * | | | Stop | | | | |
- * |Play1 |Play2 |------| |------| | |
- * | | | | | | | |
+ * | | |Play1 | | | | |
+ * | Stop | |------| |------| | |
+ * | | |Play2 | | | | |
* '--------------------' '--------------------'
*/
-/* KEYPAD & MACRO */
[LAYER_KPAD] = LAYOUT_ergodox_76_or_80(
/* left hand */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR,
@@ -391,8 +392,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_ANG, M_BRACKET_IN_BRC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
DYN_REC_START1, DYN_REC_START2,
- K80(L1K0), K80(L1K1), DYN_REC_STOP,
- DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS,
+ K80(L1K0), K80(L1K1), DYN_MACRO_PLAY1,
+ DYN_REC_STOP, KC_TRNS, DYN_MACRO_PLAY2,
/* right hand */
M_BRACKET_OUT_CBR, KC_TRNS, KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
M_BRACKET_OUT_PRN, M_ARROW_LEQL, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
@@ -403,7 +404,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, K80(L1K2), K80(L1K3),
KC_TRNS, KC_TRNS, KC_TRNS
),
-/* Keymap 2: FKeys, media & mouse keys
+/* Keymap 2: Function Keys, Media & Mouse Keys
*
* .--------------------------------------------------. .--------------------------------------------------.
* | | | | | | | | | Mute | | F10 | F11 | F12 | | |
@@ -424,8 +425,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | MNxt | | |
* '--------------------' '--------------------'
*/
-/* MEDIA, MOUSE & NUMBERS */
-[LAYER_MDIA] = LAYOUT_ergodox_76_or_80(
+[LAYER_FKEY] = LAYOUT_ergodox_76_or_80(
/* left hand */
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_WH_U,
@@ -447,6 +447,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/* Keymap 3: Entire Words (one for each key) & Numbers
*
+ * Activate by holding L1 & L2.
+ *
* .--------------------------------------------------. .--------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
@@ -466,9 +468,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | |
* '--------------------' '--------------------'
*/
-
-/* FKEY & WORDS */
-[LAYER_FKEY] = LAYOUT_ergodox_76_or_80(
+[LAYER_WORD] = LAYOUT_ergodox_76_or_80(
/* left hand */
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS,
@@ -490,6 +490,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+uint32_t layer_state_set_user(uint32_t state) {
+ /* Use layer 3 when 1 & 2 are pressed. */
+ state = update_tri_layer_state(state, LAYER_KPAD, LAYER_FKEY, LAYER_WORD);
+ return state;
+}
+
#define WITHOUT_MODS(...) \
do { \
uint8_t _real_mods = get_mods(); \
diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md
index 319ea50b9..e615fa28f 100644
--- a/layouts/community/ergodox/qwerty_code_friendly/readme.md
+++ b/layouts/community/ergodox/qwerty_code_friendly/readme.md
@@ -61,20 +61,20 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
+ | LCtl |Super | Alt | App | Menu | | Left | Down | Up |Right | Del |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
- | Ins |NumClk| | Home | End |
+ |BSpace| Del | | Home | End |
.------+------+------| |------+------+------.
| | |CapsLk| | PgUp | | |
- |BSpace| Del |------| |------| ~L2 |Enter |
- | | | ~L3 | | PgDn | | |
+ |Space | ~L1 |------| |------| ~L2 |Enter |
+ | | |Insert| | PgDn | | |
'--------------------' '--------------------'
Optional overrides: see CFQ_USER_KEY# defines.
.--------------------------------------------------. .--------------------------------------------------.
-| | | | | | | | | | | | | | | USR0 |
+| | | | | | | | | | | | | | | USR9 |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -82,7 +82,7 @@ Optional overrides: see CFQ_USER_KEY# defines.
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | | | | USR1 | | | | | | | USR8 |
+ | | | | USR0 | USR1 | | | | | | USR8 |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| USR2 | USR3 | | | |
@@ -93,7 +93,7 @@ Optional overrides: see CFQ_USER_KEY# defines.
'--------------------' '--------------------'
```
-## Keymap 1: KeyPad, Macro Record
+## Keymap 1: KeyPad, Bracket Pairs & Macro Record
Notes:
@@ -115,9 +115,9 @@ Notes:
.-------------. .-------------.
|Start1|Start2| | | |
.------+------+------| |------+------+------.
- | | | Stop | | | | |
- |Play1 |Play2 |------| |------| | |
- | | | | | | | |
+ | | |Play1 | | | | |
+ | Stop | |------| |------| | |
+ | | |Play2 | | | | |
'--------------------' '--------------------'
```
@@ -146,6 +146,8 @@ Notes:
## Keymap 3: User Defined Words & Numbers
+Activate by holding L1 & L2.
+
This is for assigning whole words to single keys.
You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
eg: `-DCFQ_WORD_E=\"my@email.com\"`
@@ -178,6 +180,12 @@ Notes:
## Changelog
+- 2019/11/20
+ Move space to thumb cluster
+ Make L1 and L2 symmetrical.
+ Activate L3 by holding L1 & L2.
+ Add App & Menu keys.
+
- 2018/10/19
Move F-Keys to key-pad like layout.
diff --git a/layouts/community/ergodox/reset_eeprom/keymap.c b/layouts/community/ergodox/reset_eeprom/keymap.c
index 9033205b9..83c252a9a 100644
--- a/layouts/community/ergodox/reset_eeprom/keymap.c
+++ b/layouts/community/ergodox/reset_eeprom/keymap.c
@@ -60,24 +60,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- // MACRODOWN only works in this function
- switch(id) {
- case 0:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- break;
- case 1:
- if (record->event.pressed) { // For resetting EEPROM
- eeconfig_init();
- }
- break;
- }
- return MACRO_NONE;
-};
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
diff --git a/layouts/community/ergodox/sneako/keymap.c b/layouts/community/ergodox/sneako/keymap.c
index 5add317e1..313e597d7 100644
--- a/layouts/community/ergodox/sneako/keymap.c
+++ b/layouts/community/ergodox/sneako/keymap.c
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
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, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/software_neo2/keymap.c b/layouts/community/ergodox/software_neo2/keymap.c
index 7ec4f7b83..73e0694ba 100644
--- a/layouts/community/ergodox/software_neo2/keymap.c
+++ b/layouts/community/ergodox/software_neo2/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
- KC_DELT, NEO_1, NEO_2, NEO_3, NEO_4, NEO_5, KC_MPLY,
+ KC_DEL, NEO_1, NEO_2, NEO_3, NEO_4, NEO_5, KC_MPLY,
KC_TAB, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_ESC,
NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O,
KC_LSFT, CTL_T(NEO_UE), GUI_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, TG(1),
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(1), NEO_B, NEO_M, NEO_COMM, NEO_DOT, NEO_J, KC_RSFT,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, NEO_L2_R,
KC_LALT,KC_RGUI,
- KC_DELT,
+ KC_DEL,
KC_ESC,KC_ENT, KC_SPC
),
/* Keymap 1: Media and mouse keys
diff --git a/layouts/community/ergodox/swedish-lindhe/keymap.c b/layouts/community/ergodox/swedish-lindhe/keymap.c
index 71ccba241..1b16c31d4 100644
--- a/layouts/community/ergodox/swedish-lindhe/keymap.c
+++ b/layouts/community/ergodox/swedish-lindhe/keymap.c
@@ -53,16 +53,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PSCR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F11,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_ACUT,
- CTL_T(NO_APOS), NO_CIRC, NO_ASTR, KC_LALT, KC_LGUI,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, SE_ACUT,
+ CTL_T(SE_APOS), SE_CIRC, SE_ASTR, KC_LALT, KC_LGUI,
KC_LCTRL, KC_LALT,
- NO_TILD,
+ SE_TILD,
KC_SPC, KC_BSPC, KC_ESC,
// right hand
- KC_MS_BTN3, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
- KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE,
- KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, KC_RSFT,
+ KC_MS_BTN3, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AA,
+ KC_H, KC_J, KC_K, KC_L, SE_OSLH, SE_AE,
+ KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, SE_MINS, KC_RSFT,
KC_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
KC_HOME, KC_END,
KC_PGUP,
diff --git a/layouts/community/ergodox/swedish/keymap.c b/layouts/community/ergodox/swedish/keymap.c
index 987f2c6af..454dcc35c 100644
--- a/layouts/community/ergodox/swedish/keymap.c
+++ b/layouts/community/ergodox/swedish/keymap.c
@@ -62,20 +62,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
- NO_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DEL, 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_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,NO_APOS), NO_ACUT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
+ LT(SYMB,SE_APOS), SE_ACUT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, NO_OSLH), GUI_T(NO_AE),
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(NO_MINS), KC_RSFT,
- KC_UP, KC_DOWN, NO_CIRC, NO_ASTR, TT(SYMB),
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AA,
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, SE_OSLH), GUI_T(SE_AE),
+ MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(SE_MINS), KC_RSFT,
+ KC_UP, KC_DOWN, SE_CIRC, SE_ASTR, TT(SYMB),
KC_ALGR, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
@@ -106,19 +106,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[SYMB] = LAYOUT_ergodox(
// left hand
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,NO_AT, NO_LCBR,NO_RCBR,NO_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,NO_DLR, NO_LPRN,NO_RPRN,NO_GRV,
- KC_TRNS,KC_PERC,NO_CIRC,NO_LBRC,NO_RBRC,NO_TILD,KC_TRNS,
+ KC_TRNS,KC_EXLM,SE_AT, SE_LCBR,SE_RCBR,SE_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,SE_DLR, SE_LPRN,SE_RPRN,SE_GRV,
+ KC_TRNS,KC_PERC,SE_CIRC,SE_LBRC,SE_RBRC,SE_TILD,KC_TRNS,
EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
RGB_MOD,KC_TRNS,
KC_TRNS,
RGB_VAD,RGB_VAI,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, NO_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, NO_PLUS, KC_TRNS,
- KC_TRNS, NO_AMPR, KC_1, KC_2, KC_3, NO_MINS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, NO_EQL, KC_TRNS,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, SE_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, SE_PLUS, KC_TRNS,
+ KC_TRNS, SE_AMPR, KC_1, KC_2, KC_3, SE_MINS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, SE_EQL, KC_TRNS,
RGB_TOG, RGB_SLD,
KC_TRNS,
KC_TRNS, RGB_HUD, RGB_HUI
diff --git a/layouts/community/ergodox/swissgerman/keymap.c b/layouts/community/ergodox/swissgerman/keymap.c
index b32fa4c2a..8ba958293 100644
--- a/layouts/community/ergodox/swissgerman/keymap.c
+++ b/layouts/community/ergodox/swissgerman/keymap.c
@@ -47,15 +47,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | ' |
+ * | § | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | ' |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | E | R | T | L1 | | L1 | Z | U | I | O | P | |
+ * | Del | Q | W | E | R | T | L1 | | L1 | Z | U | I | O | P | ü |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A /L2| S | D | F | G |------| |------| H | J | K | L | / L2| / Cmd |
+ * | BkSp | A /L2| S | D | F | G |------| |------| H | J | K | L |ö / L2|ä / Cmd |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Y/Ctrl|X/Alt | C | V | B | | | | N | M | , |./Alt |-/Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |< / L1| ^ | $ | Left | Right| | Up | Down |AltGr | | ~L1 |
+ * |< / L1| ^ | $ | Left | Right| | Up | Down |AltGr | ¨ | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
@@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
KC_BSPC, LT(MDIA, KC_A),KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_NONUS_BSLASH), KC_EQL, KC_BSLS, KC_LEFT,KC_RGHT,
@@ -270,7 +270,7 @@ void send_key(uint16_t keycode) {
void go_back_based_on_tag(char* tag) {
const int BRACKETS_AND_SLASH_LENGTH = 3;
-
+
for (int i=0; i < strlen(tag) + BRACKETS_AND_SLASH_LENGTH; i++) {
send_key(KC_LEFT);
}
diff --git a/layouts/community/ergodox/tkuichooseyou/keymap.c b/layouts/community/ergodox/tkuichooseyou/keymap.c
index 4dbf8be58..9141cd1c7 100644
--- a/layouts/community/ergodox/tkuichooseyou/keymap.c
+++ b/layouts/community/ergodox/tkuichooseyou/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT,
KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_DELT, CTL_T(KC_ESC),
+ KC_DEL, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
),
diff --git a/layouts/community/ergodox/tm2030/keymap.c b/layouts/community/ergodox/tm2030/keymap.c
index 1259a18ff..3f8280037 100644
--- a/layouts/community/ergodox/tm2030/keymap.c
+++ b/layouts/community/ergodox/tm2030/keymap.c
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC,
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT,
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC, KC_LSFT, KC_PGDN,
// right hand
- KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC,
+ KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC,
KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT),
KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS),
@@ -84,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[DVRK] = LAYOUT_ergodox( // layer 0 : default
// left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_BSPC,
KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT,
@@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC, KC_LSFT, KC_PGDN,
// right hand
- KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS),
KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS),
@@ -175,7 +175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM,
- KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD,
+ KC_TRNS, KC_TRNS, LSFT(KC_DEL), LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
diff --git a/layouts/community/ergodox/tonyabra_osx/keymap.c b/layouts/community/ergodox/tonyabra_osx/keymap.c
index 4f174a69d..469c21944 100644
--- a/layouts/community/ergodox/tonyabra_osx/keymap.c
+++ b/layouts/community/ergodox/tonyabra_osx/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
TG(SYMB), KC_GRV, KC_LBRC, KC_RBRC,KC_QUOT,
- KC_DELT,KC_LALT,
+ KC_DEL, KC_LALT,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
diff --git a/layouts/community/ergodox/townk_osx/keymap.c b/layouts/community/ergodox/townk_osx/keymap.c
index a6097d9a3..e36d71432 100644
--- a/layouts/community/ergodox/townk_osx/keymap.c
+++ b/layouts/community/ergodox/townk_osx/keymap.c
@@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_FN1, TG(KEYPAD), KC_LCTRL, KC_LALT, KC_LGUI,
M_TESC, M_TPASTE,
KC_HOME,
- KC_BSPC, KC_DELT, KC_END,
+ KC_BSPC, KC_DEL, KC_END,
//right half
KC_POWER, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
MEH_T(KC_F17), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
diff --git a/layouts/community/ergodox/twey/keymap.c b/layouts/community/ergodox/twey/keymap.c
index 0cc98ca77..dac153f07 100644
--- a/layouts/community/ergodox/twey/keymap.c
+++ b/layouts/community/ergodox/twey/keymap.c
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(STEN),
- KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC,
+ KC_DEL, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC,
KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB,
MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT,
diff --git a/layouts/community/ergodox/videck/keymap.c b/layouts/community/ergodox/videck/keymap.c
index 1229469d7..7058d9344 100644
--- a/layouts/community/ergodox/videck/keymap.c
+++ b/layouts/community/ergodox/videck/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_R),
+ KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_R),
KC_LBRC, KC_RBRC, KC_EQL, KC_RALT, KC_RCTL,
KC_APP, KC_ESC,
KC_INS,
diff --git a/layouts/community/ergodox/xyverz/keymap.c b/layouts/community/ergodox/xyverz/keymap.c
index eeeded47f..3131c3064 100644
--- a/layouts/community/ergodox/xyverz/keymap.c
+++ b/layouts/community/ergodox/xyverz/keymap.c
@@ -1,6 +1,6 @@
/*
* About this keymap:
- *
+ *
* The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak
* software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner
* keys. I've decided to continue using this layout with my ErgoDox.
@@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QW] = LAYOUT_ergodox(
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX,
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX,
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD),
KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
@@ -138,10 +138,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | End | | PgDn | | |
* `--------------------' `--------------------'
*/
-[_CM] = LAYOUT_ergodox(
+[_CM] = LAYOUT_ergodox(
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX,
+ KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX,
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD),
KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
diff --git a/layouts/community/ergodox/zweihander-macos/keymap.c b/layouts/community/ergodox/zweihander-macos/keymap.c
index f64808c4d..93a435efb 100644
--- a/layouts/community/ergodox/zweihander-macos/keymap.c
+++ b/layouts/community/ergodox/zweihander-macos/keymap.c
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB),
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT,
diff --git a/layouts/community/numpad_5x6/bjohnson/config.h b/layouts/community/numpad_5x6/bjohnson/config.h
index fe2cffec7..668450d88 100644
--- a/layouts/community/numpad_5x6/bjohnson/config.h
+++ b/layouts/community/numpad_5x6/bjohnson/config.h
@@ -4,7 +4,7 @@
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN B7
-#define RGBLED_NUM 16 // Number of LEDs
+#define RGBLED_NUM 13 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12
diff --git a/layouts/community/numpad_5x6/bjohnson/keymap.c b/layouts/community/numpad_5x6/bjohnson/keymap.c
index 79e87e69f..4b15ccdfb 100644
--- a/layouts/community/numpad_5x6/bjohnson/keymap.c
+++ b/layouts/community/numpad_5x6/bjohnson/keymap.c
@@ -25,9 +25,10 @@ void keyboard_post_init_user(void) {
uint8_t temp_mode = rgblight_config.mode;
rgblight_enable_noeeprom();
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 360; i > 0; i--) {
- rgblight_sethsv_noeeprom( ( i + 180) % 360, 255, 255);
- wait_ms(8);
+ for (uint16_t i = 255; i > 0; i--) {
+ rgblight_sethsv_noeeprom( ( i + 128) % 255, 255, 255);
+ matrix_scan();
+ wait_ms(10);
}
led_set_user(host_keyboard_leds());
rgblight_mode_noeeprom(temp_mode);
diff --git a/layouts/community/numpad_5x6/drashna/config.h b/layouts/community/numpad_5x6/drashna/config.h
index 2fc5ab658..29045148e 100644
--- a/layouts/community/numpad_5x6/drashna/config.h
+++ b/layouts/community/numpad_5x6/drashna/config.h
@@ -3,17 +3,17 @@
// #define B6_AUDIO
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
-# define RGB_DI_PIN B1
-# define RGBLED_NUM 16 // Number of LEDs
+# define RGB_DI_PIN B1
+# define RGBLED_NUM 16 // Number of LEDs
-# define RGBLIGHT_HUE_STEP 12
-# define RGBLIGHT_SAT_STEP 12
-# define RGBLIGHT_VAL_STEP 12
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#endif // RGBLIGHT_ENABLE
+# define RGBLIGHT_HUE_STEP 12
+# define RGBLIGHT_SAT_STEP 12
+# define RGBLIGHT_VAL_STEP 12
+# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
+# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
+#endif // RGBLIGHT_ENABLE
#if defined(KEYBOARD_primekb_prime_m)
-# undef PRODUCT
-# define PRODUCT Drashna Hacked Prime_M Macro Pad
+# undef PRODUCT
+# define PRODUCT Drashna Hacked Prime_M Macro Pad
#endif
diff --git a/layouts/community/numpad_5x6/drashna/keymap.c b/layouts/community/numpad_5x6/drashna/keymap.c
index 646f4db33..3d325a4c1 100644
--- a/layouts/community/numpad_5x6/drashna/keymap.c
+++ b/layouts/community/numpad_5x6/drashna/keymap.c
@@ -1,8 +1,8 @@
-#include QMK_KEYBOARD_H
#include "drashna.h"
#define F2_MCRO LT(_GAMEPAD, KC_F2)
+// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_NUMLOCK] = LAYOUT_numpad_5x6(
KC_F1, F2_MCRO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
@@ -20,3 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
RGB_VAI, RGB_VAD, _______, _______, _______
),
};
+// clang-format on
diff --git a/layouts/community/numpad_5x6/drashna/rules.mk b/layouts/community/numpad_5x6/drashna/rules.mk
index 62bbc365d..0bdf97bae 100644
--- a/layouts/community/numpad_5x6/drashna/rules.mk
+++ b/layouts/community/numpad_5x6/drashna/rules.mk
@@ -5,6 +5,5 @@ NO_SECRETS = yes
BOOTMAGIC_ENABLE = lite
INDICATOR_LIGHTS = no
RGBLIGHT_TWINKLE = yes
-MACROS_ENABLED = no
MAKE_BOOTLOADER = yes
RGBLIGHT_STARTUP_ANIMATION = yes
diff --git a/layouts/community/ortho_1x4/belgorath/keymap.c b/layouts/community/ortho_1x4/belgorath/keymap.c
new file mode 100644
index 000000000..ace402295
--- /dev/null
+++ b/layouts/community/ortho_1x4/belgorath/keymap.c
@@ -0,0 +1,24 @@
+#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 _DEFAULT 0
+#define _LOWER 1
+#define LOWER LT(_LOWER, KC_PENT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_DEFAULT] = LAYOUT_ortho_1x4 (
+ LOWER, KC_P0, KC_PDOT,KC_PAST
+),
+
+/* Lower */
+[_LOWER] = LAYOUT_ortho_1x4 (
+ _______,_______,_______,_______
+),
+};
diff --git a/layouts/community/ortho_1x4/layout.json b/layouts/community/ortho_1x4/layout.json
new file mode 100644
index 000000000..6103c7e24
--- /dev/null
+++ b/layouts/community/ortho_1x4/layout.json
@@ -0,0 +1 @@
+["","","",""] \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/bakingpy/keymap.c b/layouts/community/ortho_4x12/bakingpy/keymap.c
index 71672d051..eb3b420ee 100644
--- a/layouts/community/ortho_4x12/bakingpy/keymap.c
+++ b/layouts/community/ortho_4x12/bakingpy/keymap.c
@@ -2,13 +2,15 @@
extern keymap_config_t keymap_config;
-#define _MAC 0
-#define _WINDOWS 1
-#define _TESTMODE 2
-#define _LOWER 3
-#define _RAISE 4
-#define _FKEYS 5
-#define _ADJUST 16
+enum layer_names {
+ _MAC,
+ _WINDOWS,
+ _TESTMODE,
+ _LOWER,
+ _RAISE,
+ _FKEYS,
+ _ADJUST,
+};
enum custom_keycodes {
MAC = SAFE_RANGE,
@@ -17,7 +19,6 @@ enum custom_keycodes {
LOWER,
RAISE,
ADJUST,
- PLAY_ALLSTAR,
};
#define KC_ KC_TRNS
@@ -35,6 +36,22 @@ enum custom_keycodes {
#define KC_BL_T BL_TOGG
#define KC_RMOD RGB_MOD
+#ifndef LAYOUT_kc_ortho_4x12
+#define LAYOUT_kc_ortho_4x12( \
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
+ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
+ ) \
+ LAYOUT_ortho_4x12( \
+ KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
+ KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
+ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
+ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
+ )
+
+#endif
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAC] = LAYOUT_kc_ortho_4x12(
@@ -130,28 +147,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case MAC:
if (record->event.pressed) {
- persistent_default_layer_set(1UL<<_MAC);
+ set_single_persistent_default_layer(_MAC);
}
return false;
break;
case WINDOWS:
if (record->event.pressed) {
- persistent_default_layer_set(1UL<<_WINDOWS);
+ set_single_persistent_default_layer(_WINDOWS);
}
return false;
break;
case TESTMODE:
if (record->event.pressed) {
- persistent_default_layer_set(1UL<<_TESTMODE);
+ set_single_persistent_default_layer(_TESTMODE);
}
return false;
break;
diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk
index 17a589cd1..0da75e0be 100644
--- a/layouts/community/ortho_4x12/bakingpy/rules.mk
+++ b/layouts/community/ortho_4x12/bakingpy/rules.mk
@@ -1,5 +1,5 @@
ifneq ($(LAYOUTS_HAS_RGB), no)
- RGBLIGHT_ENABLE = yes
+ RGBLIGHT_ENABLE = yes
endif
AUDIO_ENABLE = no
ifeq ($(strip $(KEYBOARD)), zlant)
diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h
index 475afd213..663708afa 100644
--- a/layouts/community/ortho_4x12/drashna/config.h
+++ b/layouts/community/ortho_4x12/drashna/config.h
@@ -1,55 +1,68 @@
#pragma once
-
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
-# define RGB_DI_PIN B3
-# define RGBLED_NUM 13 // Number of LEDs
-# define RGBLIGHT_ANIMATIONS
-# define RGBLIGHT_HUE_STEP 12
-# define RGBLIGHT_SAT_STEP 12
-# define RGBLIGHT_VAL_STEP 12
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-# ifdef RGB_MATRIX_ENABLE
-# define RGBLIGHT_DISABLE_KEYCODES
-# endif
-#endif // RGBLIGHT_ENABLE
+# if defined(KEYBOARD_planck_light)
+# define RGB_DI_PIN A0
+# define RGBLED_NUM 13 // Number of LEDs
+# endif
+# define RGBLIGHT_HUE_STEP 12
+# define RGBLIGHT_SAT_STEP 12
+# define RGBLIGHT_VAL_STEP 12
+# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
+# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
+# ifdef RGB_MATRIX_ENABLE
+# define RGBLIGHT_DISABLE_KEYCODES
+# endif
+#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
+# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
+# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
-# define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
-# ifndef KEYBOARD_planck_ez
-# define EECONFIG_RGB_MATRIX (uint32_t *)15
-# endif
+# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
+# undef RGB_MATRIX_LED_PROCESS_LIMIT
+# undef RGB_MATRIX_LED_FLUSH_LIMIT
+# ifdef KEYBOARD_planck_rev6
+# define DRIVER_LED_TOTAL RGBLED_NUM
+# endif
#endif
#if defined(KEYBOARD_lets_split_rev2)
-# define USE_SERIAL
-# undef USE_I2C
-# define EE_HANDS
+# define USE_SERIAL
+# undef USE_I2C
+# define EE_HANDS
#endif
#if !defined(KEYBOARD_planck_light)
-# ifdef RGBLIGHT_ENABLE
-# define NO_MUSIC_MODE
-# endif // RGBLIGHT_ENABLE
-#endif // KEYBOARD_planck_light
-
+# ifdef RGBLIGHT_ENABLE
+# define NO_MUSIC_MODE
+# endif // RGBLIGHT_ENABLE
+#else
+# undef QMK_ESC_OUTPUT
+# define QMK_ESC_OUTPUT E6 // usually COL
+# undef QMK_ESC_INPUT
+# define QMK_ESC_INPUT B0 // usually ROW
+# undef QMK_LED
+# define QMK_LED D6
+# undef QMK_SPEAKER
+# define QMK_SPEAKER B5
+# define SOLENOID_PIN A1
+#endif // KEYBOARD_planck_light
#if defined(KEYBOARD_planck)
-# undef PRODUCT
-# if defined(KEYBOARD_planck_light)
-# define PRODUCT Drashna Hacked RGB Beacon (Planck Light)
-# elif defined(KEYBOARD_planck_rev6)
-# define PRODUCT Drashna Hacked Planck Rev6
-# elif defined(KEYBOARD_planck_EZ)
-# define PRODUCT Drashna Hacked Planck EZ
-# endif
+# undef PRODUCT
+# if defined(KEYBOARD_planck_light)
+# define PRODUCT Drashna Hacked RGB Beacon(Planck Light)
+# elif defined(KEYBOARD_planck_rev6)
+# define PRODUCT Drashna Hacked Planck Rev6
+# elif defined(KEYBOARD_planck_ez)
+# define PRODUCT Drashna Hacked Planck EZ
+# endif
#endif
+#define ENCODER_DIRECTION_FLIP
/*
* MIDI options
*/
@@ -73,3 +86,50 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
+
+#define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/
+#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */
+#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */
+
+/* default 3V ERM vibration motor voltage and library*/
+#if FB_ERM_LRA == 0
+# define RATED_VOLTAGE 3
+# define V_RMS 2.3
+# define V_PEAK 3.30
+/* Library Selection */
+# define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
+
+/* default 2V LRA voltage and library */
+#elif FB_ERM_LRA == 1
+# define RATED_VOLTAGE 2
+# define V_RMS 2.0
+# define V_PEAK 2.85
+# define F_LRA 200
+/* Library Selection */
+# define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
+
+#endif
+
+/* Control 1 register settings */
+#define DRIVE_TIME 25
+#define AC_COUPLE 0
+#define STARTUP_BOOST 1
+
+/* Control 2 Settings */
+#define BIDIR_INPUT 1
+#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */
+#define SAMPLE_TIME 3
+#define BLANKING_TIME 1
+#define IDISS_TIME 1
+
+/* Control 3 settings */
+#define NG_THRESH 2
+#define ERM_OPEN_LOOP 1
+#define SUPPLY_COMP_DIS 0
+#define DATA_FORMAT_RTO 0
+#define LRA_DRIVE_MODE 0
+#define N_PWM_ANALOG 0
+#define LRA_OPEN_LOOP 0
+/* Control 4 settings */
+#define ZC_DET_TIME 0
+#define AUTO_CAL_TIME 3
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
index c1c016ce9..c3899cd03 100644
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ b/layouts/community/ortho_4x12/drashna/keymap.c
@@ -1,55 +1,50 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
#include "drashna.h"
#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
#endif
-
#ifdef BACKLIGHT_ENABLE
enum planck_keycodes {
- BACKLIT = NEW_SAFE_RANGE,
+ BACKLIT = NEW_SAFE_RANGE,
+ TH_LVL,
};
+
#else
- #define BACKLIT OSM(MOD_LSFT)
+# define BACKLIT OSM(MOD_LSFT)
+enum planck_keycodes {
+ TH_LVL = NEW_SAFE_RANGE,
+};
#endif
#ifdef KEYBOARD_planck_ez
-# define PLNK_1 BK_LWER
-# define PLNK_2 SP_LWER
-# define PLNK_3 KC_NO
-# define PLNK_4 ET_RAIS
+# define PLNK_1 BK_LWER
+# define PLNK_2 SP_LWER
+# define PLNK_3 KC_NO
+# define PLNK_4 ET_RAIS
#else
-# define PLNK_1 SP_LWER
-# define PLNK_2 BK_LWER
-# define PLNK_3 DL_RAIS
-# define PLNK_4 ET_RAIS
+# define PLNK_1 SP_LWER
+# define PLNK_2 BK_LWER
+# define PLNK_3 DL_RAIS
+# define PLNK_4 ET_RAIS
#endif
+/*
+ * The `LAYOUT_ortho_4x12_base` macro is a template to allow the use of identical
+ * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
+ * that there is no need to set them up for each layout, and modify all of
+ * them if I want to change them. This helps to keep consistency and ease
+ * of use. K## is a placeholder to pass through the individual keycodes
+ */
+// clang-format off
#define LAYOUT_ortho_4x12_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_ortho_4x12_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
- KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_DEL, \
+ LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
)
@@ -117,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
_______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT_ortho_4x12_wrapper(
@@ -130,26 +125,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_ortho_4x12_wrapper(
KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
- _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUKE
+ TH_LVL, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
+ HPT_TOG, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS
)
};
-
+// clang-format on
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- #ifdef BACKLIGHT_ENABLE
+#ifdef BACKLIGHT_ENABLE
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
+# ifdef BACKLIGHT_ENABLE
backlight_step();
- #endif
+# endif
} else {
unregister_code(KC_RSFT);
}
- return false;
+ break;
+#endif
+#ifdef KEYBOARD_planck_ez
+ case TH_LVL:
+ if (record->event.pressed) {
+ keyboard_config.led_level++;
+ if (keyboard_config.led_level > 4) {
+ keyboard_config.led_level = 0;
+ }
+ planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4);
+ planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4);
+ eeconfig_update_kb(keyboard_config.raw);
+ layer_state_set_kb(layer_state);
+ }
break;
#endif
}
@@ -172,6 +180,32 @@ bool music_mask_user(uint16_t keycode) {
#ifdef RGB_MATRIX_ENABLE
+# ifdef KEYBOARD_planck_rev6
+// clang-format off
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }
+ }, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+ }, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+ }
+};
+// clange-format on
+# endif
+
+// clang-format off
void suspend_power_down_keymap(void) {
rgb_matrix_set_suspend_state(true);
}
@@ -179,160 +213,196 @@ void suspend_power_down_keymap(void) {
void suspend_wakeup_init_keymap(void) {
rgb_matrix_set_suspend_state(false);
}
+// clang-format on
void rgb_matrix_indicators_user(void) {
uint8_t this_mod = get_mods();
uint8_t this_led = host_keyboard_leds();
uint8_t this_osm = get_oneshot_mods();
- bool is_ez;
- #ifdef KEYBOARD_planck_ez
+ bool is_ez;
+# ifdef KEYBOARD_planck_ez
is_ez = true;
- #endif
+# endif
- if ( userspace_config.rgb_layer_change &&
-#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
+ if (userspace_config.rgb_layer_change &&
+# ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
!g_suspend_state &&
-#endif
-#if defined(RGBLIGHT_ENABLE)
- (!rgblight_config.enable && rgb_matrix_config.enable)
-#else
- rgb_matrix_config.enable
-#endif
- ) {
- switch (biton32(layer_state)) {
+# endif
+# if defined(RGBLIGHT_ENABLE)
+ (!rgblight_config.enable && rgb_matrix_config.enable)
+# else
+ rgb_matrix_config.enable
+# endif
+ ) {
+ switch (get_highest_layer(layer_state)) {
+ case _GAMEPAD:
+ rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _DIABLO:
+ rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER);
+ break;
case _RAISE:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _LOWER:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
case _ADJUST:
- 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, LED_FLAG_MODIFIER); break;
- case _COLEMAK:
- rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
- case _DVORAK:
- rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
- case _WORKMAN:
- rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
- case _NORMAN:
- rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
- case _MALTRON:
- rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
- case _EUCALYN:
- rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
- case _CARPLAX:
- rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
+ rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ default: {
+ bool mods_enabled = IS_LAYER_ON(_MODS);
+ switch (get_highest_layer(default_layer_state)) {
+ case _QWERTY:
+ rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _COLEMAK:
+ rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _DVORAK:
+ rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _WORKMAN:
+ rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _NORMAN:
+ rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _MALTRON:
+ rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _EUCALYN:
+ rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
+ case _CARPLAX:
+ rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER);
+ break;
}
+ break;
+ }
}
}
- switch (biton32(default_layer_state)) {
+ switch (get_highest_layer(default_layer_state)) {
case _QWERTY:
- rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF); break;
+ rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF);
+ break;
case _COLEMAK:
- rgb_matrix_set_color(is_ez ? 41 : 42, 0xFF, 0x00, 0xFF); break;
+ rgb_matrix_set_color(is_ez ? 41 : 42, 0xFF, 0x00, 0xFF);
+ break;
case _DVORAK:
- rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0x00); break;
+ rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0x00);
+ break;
case _WORKMAN:
- rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); break;
+ rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21);
+ break;
}
- if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK)) {
- rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
+ if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) {
+ if (!layer_state_cmp(layer_state, _ADJUST)) {
+ rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
+ }
rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
}
- if ( (this_mod | this_osm) & MOD_MASK_CTRL) {
+ if ((this_mod | this_osm) & MOD_MASK_CTRL) {
rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
-
}
- if ( (this_mod | this_osm) & MOD_MASK_GUI) {
+ if ((this_mod | this_osm) & MOD_MASK_GUI) {
rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
}
- if ( (this_mod | this_osm) & MOD_MASK_ALT) {
+ if ((this_mod | this_osm) & MOD_MASK_ALT) {
rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
}
}
void matrix_init_keymap(void) {
- // rgblight_mode(RGB_MATRIX_MULTISPLASH);
+# ifdef KEYBOARD_planck_light
+ writePinLow(D6);
+# endif
+ // rgblight_mode(RGB_MATRIX_MULTISPLASH);
}
-#else //RGB_MATRIX_INIT
+#else // RGB_MATRIX_INIT
void matrix_init_keymap(void) {
-#if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
+# if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
setPinOutput(D5);
writePinHigh(D5);
setPinOutput(B0);
writePinHigh(B0);
-#endif
+# endif
}
-#endif //RGB_MATRIX_INIT
+#endif // RGB_MATRIX_INIT
#ifdef ENCODER_ENABLE
void encoder_update(bool clockwise) {
- switch (biton32(layer_state)) {
+ switch (get_highest_layer(layer_state)) {
case _RAISE:
clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU);
break;
case _LOWER:
-#ifdef RGB_MATRIX_ENABLE
- clockwise ? rgb_matrix_step() : rgblight_step_reverse();
-#else
+# ifdef RGB_MATRIX_ENABLE
+ clockwise ? rgb_matrix_step() : rgb_matrix_step_reverse();
+# else
clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP);
-#endif
+# endif
break;
case _ADJUST:
-#ifdef AUDIO_CLICKY
+# ifdef AUDIO_CLICKY
clockwise ? clicky_freq_up() : clicky_freq_down();
-#endif
+# endif
break;
default:
clockwise ? tap_code(KC_DOWN) : tap_code(KC_UP);
}
-#ifdef AUDIO_CLICKY
+# ifdef AUDIO_CLICKY
clicky_play();
-#endif
+# endif
}
-#endif // ENCODER_ENABLE
+#endif // ENCODER_ENABLE
#ifdef KEYBOARD_planck_rev6
void dip_update(uint8_t index, bool active) {
switch (index) {
case 0:
- if(active) { audio_on(); } else { audio_off(); }
+ if (active) {
+ audio_on();
+ } else {
+ audio_off();
+ }
break;
case 1:
- if(active) { clicky_on(); } else { clicky_off(); }
+ if (active) {
+ clicky_on();
+ } else {
+ clicky_off();
+ }
break;
case 2:
- keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = active;
+ keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = active;
break;
case 3:
userspace_config.nuke_switch = active;
break;
}
}
-#endif // KEYBOARD_planck_rev6
+#endif // KEYBOARD_planck_rev6
#ifdef KEYBOARD_planck_ez
layer_state_t layer_state_set_keymap(layer_state_t state) {
-
- palClearPad(GPIOB, 8);
- palClearPad(GPIOB, 9);
- switch (biton32(state)) {
+ planck_ez_left_led_off();
+ planck_ez_right_led_off();
+ switch (get_highest_layer(state)) {
case _LOWER:
- palSetPad(GPIOB, 9);
+ planck_ez_left_led_on();
break;
case _RAISE:
- palSetPad(GPIOB, 8);
+ planck_ez_right_led_on();
break;
case _ADJUST:
- palSetPad(GPIOB, 9);
- palSetPad(GPIOB, 8);
+ planck_ez_right_led_on();
+ planck_ez_left_led_on();
break;
default:
break;
diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk
index 351201e2f..38d0d4517 100644
--- a/layouts/community/ortho_4x12/drashna/rules.mk
+++ b/layouts/community/ortho_4x12/drashna/rules.mk
@@ -1,38 +1,40 @@
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-TAP_DANCE_ENABLE = no
-AUDIO_ENABLE = yes
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+TAP_DANCE_ENABLE = no
+AUDIO_ENABLE = yes
SPACE_CADET_ENABLE = no
+NKRO_ENABLE = yes
-ifeq (,$(findstring planck/rev6,$(KEYBOARD))) # Make sure it's NOT the Planck Rev6
- RGBLIGHT_ENABLE = yes
+ifneq ($(strip $(KEYBOARD)), planck/rev6)
+ CONSOLE_ENABLE = no
+ COMMAND_ENABLE = no
+ ifeq ($(strip $(LAYOUT_HAS_RGB)), yes)
+ RGBLIGHT_ENABLE = yes
+ endif
INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
+else
+ CONSOLE_ENABLE = yes
+ COMMAND_ENABLE = yes
+ RGBLIGHT_ENABLE = no
+ RGB_MATRIX_ENABLE = WS2812
endif
-ifneq (,$(findstring planck/light,$(KEYBOARD))) # Make sure it IS the Planck Light
+ifeq ($(strip $(KEYBOARD)), planck/light)
RGB_MATRIX_ENABLE = yes
RGBLIGHT_ENABLE = no
RGBLIGHT_STARTUP_ANIMATION = no
+ # HAPTIC_ENABLE += SOLENOID
endif
-ifneq (,$(findstring planck/ez,$(KEYBOARD))) # Make sure it IS the Planck Light
+ifeq ($(strip $(KEYBOARD)), planck/ez)
RGBLIGHT_ENABLE = no
# SERIAL_LINK_ENABLE = yes
- ENCODER_ENABLE = no
+ ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = IS31FL3737
INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
+ CONSOLE_ENABLE = yes
+ COMMAND_ENABLE = yes
endif
-
-ifeq ($(strip $(PROTOCOL)), VUSB)
-NKRO_ENABLE = no
-else
-NKRO_ENABLE = yes
-endif
-
-
-MACROS_ENABLED = no
diff --git a/layouts/community/ortho_4x12/jarred/keymap.c b/layouts/community/ortho_4x12/jarred/keymap.c
new file mode 100644
index 000000000..4be5f9ed6
--- /dev/null
+++ b/layouts/community/ortho_4x12/jarred/keymap.c
@@ -0,0 +1,22 @@
+#include QMK_KEYBOARD_H
+#include "jarred.h"
+
+#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = LAYOUT_ortho_4x12_wrapper(QWERTY_4x12),
+ [_GAME] = LAYOUT_ortho_4x12_wrapper(GAME_4x12),
+ [_LW] = LAYOUT_ortho_4x12_wrapper(LOWER_4x12),
+ [_NV] = LAYOUT_ortho_4x12_wrapper(NAV_4x12),
+ [_NP] = LAYOUT_ortho_4x12_wrapper(NUMPAD_4x12),
+ [_MS] = LAYOUT_ortho_4x12_wrapper(MOUSE_4x12)
+};
+
+#ifdef RGB_MATRIX_ENABLE
+void rgb_matrix_indicators_user(void) {
+ #ifdef KEYBOARD_planck_light
+ // Disable light in middle of 2U position of Planck Light
+ rgb_matrix_set_color(42, 0, 0, 0);
+ #endif
+}
+#endif
diff --git a/layouts/community/ortho_4x12/jarred/readme.md b/layouts/community/ortho_4x12/jarred/readme.md
new file mode 100644
index 000000000..05f1ff086
--- /dev/null
+++ b/layouts/community/ortho_4x12/jarred/readme.md
@@ -0,0 +1,22 @@
+# Jarred's ortho 4x12 keymap
+
+[User space](../../../../users/jarred/readme.md)
+
+Boards used on:
+- [Planck](../../../../keyboards/planck/readme.md)
+- [Plaid](../../../../keyboards/plaid/readme.md)
+
+# Plaid build notes
+
+Enter Bootloader:
+Press Reset / Press Boot / Release Reset / Release Boot
+
+Install libusbK driver for usbasp:
+https://zadig.akeo.ie/
+
+make plaid:jarred:program
+
+Press Reset
+
+https://github.com/hsgw/plaid/blob/master/doc/en/bootloader.md
+https://github.com/hsgw/plaid/blob/master/doc/en/firmware.md
diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c
index c6655afa5..1d6e8f89a 100644
--- a/layouts/community/ortho_4x12/jotix/keymap.c
+++ b/layouts/community/ortho_4x12/jotix/keymap.c
@@ -18,37 +18,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_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_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_TAB, 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_UP, KC_SLSH,
+ 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_LGUI,KC_LALT,TGLOWER, LOWER , KC_SPC, KC_SPC, RAISE ,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT
+ KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, 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_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_VOLD,KC_MUTE,KC_VOLU,KC_MINS, KC_EQL,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,_______,KC_MINS, KC_EQL,_______,_______,_______,_______,
+ _______,KC_MPRV,KC_MPLY,KC_MNXT,KC_UNDS,KC_PLUS,KC_BTN1,KC_BTN2,_______,_______,_______,_______,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
[_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_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_CAPS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,KC_UNDS,KC_PLUS,KC_HOME,KC_PGUP,KC_VOLU,_______,
+ _______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_VOLD,KC_MUTE
+ _______,_______,_______,_______,TGLOWER,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP, KC_END
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
),
@@ -56,22 +56,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
uint32_t layer_state_set_user(uint32_t state) {
#ifdef JOTANCK_LEDS
- switch (biton32(state)) {
- case _LOWER:
+ if (biton32(state) == _LOWER) {
writePinHigh(JOTANCK_LED1);
- writePinLow(JOTANCK_LED2);
- break;
- case _RAISE:
+ } else {
writePinLow(JOTANCK_LED1);
+ }
+ #endif
+ return state;
+}
+
+bool led_update_user(led_t led_state) {
+
+ // NumLock allways on
+ if (!led_state.num_lock) {
+ tap_code(KC_NUMLOCK);
+ }
+
+ #ifdef JOTANCK_LEDS
+ // CapsLock led
+ if (led_state.caps_lock) {
writePinHigh(JOTANCK_LED2);
- break;
- default:
- writePinLow(JOTANCK_LED1);
+ } else {
writePinLow(JOTANCK_LED2);
- break;
- };
+ }
#endif
- return state;
+ return true;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/layouts/community/ortho_4x12/jotix/readme.md b/layouts/community/ortho_4x12/jotix/readme.md
index ec1fb7ba9..1b44ca659 100644
--- a/layouts/community/ortho_4x12/jotix/readme.md
+++ b/layouts/community/ortho_4x12/jotix/readme.md
@@ -1,7 +1,5 @@
# Jotix ortho 4x12 keymap
-![keymap](https://i.imgur.com/CpZCcuy.png)
-
Tested on:
* Planck/rev4
diff --git a/layouts/community/ortho_4x12/mguterl/config.h b/layouts/community/ortho_4x12/mguterl/config.h
new file mode 100644
index 000000000..6fa31cc8a
--- /dev/null
+++ b/layouts/community/ortho_4x12/mguterl/config.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(PLANCK_SOUND)
+ // #define STARTUP_SONG SONG(NO_SOUND)
+
+ #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+ SONG(COLEMAK_SOUND), \
+ SONG(DVORAK_SOUND) \
+ }
+#endif
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
+
+// Most tactile encoders have detents every 4 stages
+#define ENCODER_RESOLUTION 4
+
diff --git a/layouts/community/ortho_4x12/mguterl/keymap.c b/layouts/community/ortho_4x12/mguterl/keymap.c
new file mode 100644
index 000000000..2be2d449e
--- /dev/null
+++ b/layouts/community/ortho_4x12/mguterl/keymap.c
@@ -0,0 +1,352 @@
+/* Copyright 2015-2017 Jack Humbert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+#include "muse.h"
+#include "mguterl.h"
+
+extern keymap_config_t keymap_config;
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * |HypTab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |EscCtl| A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | GESC | Ctrl | Alt | GUI |Lower |SpcUtl|SpcUtl|Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12(
+ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ ESC_CTL, 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, SFT_ENT,
+ KC_GESC, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SPC_UTL, SPC_UTL, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/*
+ * Gaming is very similar to Qwerty. Certain features from Qwerty are disable
+ * for better gaming experience.
+ */
+[_GAMING] = LAYOUT_ortho_4x12(
+ KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_ESC, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______
+),
+
+/*
+ * Util is accessed by holding Space. The Util layer contains vimkeys and
+ * shortcuts that I find myself needing often.
+ */
+[_UTIL] = LAYOUT_ortho_4x12( \
+ _______, GUI_1, GUI_2, GUI_3, GUI_4, GUI_5, GUI_6, GUI_7, GUI_8, GUI_9, GUI_0, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, GO_BACK, GO_FWD, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
+ BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = 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_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = 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_BSPC,
+ KC_DEL, 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_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Plover layer (http://opensteno.org)
+ * ,-----------------------------------------------------------------------------------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | S | K | W | R | * | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | A | O | | E | U | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_PLOVER] = LAYOUT_ortho_4x12(
+ KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
+ XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * |ToGame| Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12(
+ TG_GAME, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+#ifdef AUDIO_ENABLE
+ float plover_song[][2] = SONG(PLOVER_SOUND);
+ float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
+#endif
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ print("mode just switched to qwerty and this is a huge string\n");
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ #ifdef KEYBOARD_planck_rev5
+ writePinLow(E6);
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ #ifdef KEYBOARD_planck_rev5
+ writePinHigh(E6);
+ #endif
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_SONG(plover_song);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_SONG(plover_gb_song);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+void encoder_update(bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo+=1;
+ } else {
+ muse_tempo-=1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_DOWN);
+ #else
+ tap_code(KC_PGDN);
+ #endif
+ } else {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_UP);
+ #else
+ tap_code(KC_PGUP);
+ #endif
+ }
+ }
+}
+
+void dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0: {
+#ifdef AUDIO_ENABLE
+ static bool play_sound = false;
+#endif
+ if (active) {
+#ifdef AUDIO_ENABLE
+ if (play_sound) { PLAY_SONG(plover_song); }
+#endif
+ layer_on(_ADJUST);
+ } else {
+#ifdef AUDIO_ENABLE
+ if (play_sound) { PLAY_SONG(plover_gb_song); }
+#endif
+ layer_off(_ADJUST);
+ }
+#ifdef AUDIO_ENABLE
+ play_sound = true;
+#endif
+ break;
+ }
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ }
+ }
+}
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ } else {
+ if (muse_counter) {
+ stop_all_notes();
+ muse_counter = 0;
+ }
+ }
+#endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+}
diff --git a/layouts/community/ortho_4x12/mguterl/readme.md b/layouts/community/ortho_4x12/mguterl/readme.md
new file mode 100644
index 000000000..d1328c9aa
--- /dev/null
+++ b/layouts/community/ortho_4x12/mguterl/readme.md
@@ -0,0 +1,20 @@
+# Michael Guterl's Ortho 4x12 Layout
+
+I use this layout for both my Planck and Levinson. I also have a very similar
+[keymap](/keyboards/preonic/keymaps/mguterl) for my Preonic.
+
+Check out my [userspace](/users/mguterl) for the custom keycodes that are used
+in keymap.c.
+
+At a very high level I use 4 layers:
+
+* Qwerty - Letters
+* Util - Vimkeys for navigation and other convenient things
+* Raise - Numbers and F keys
+* Lower - Symbols
+
+```sh
+make planck/rev5:mguterl:flash # For Planck rev5 or earlier and Planck Light
+make planck/rev6:mguterl:flash # For Planck rev6
+make keebio/levinson/rev2:mguterl:dfu # For Levinson rev2
+```
diff --git a/layouts/community/ortho_4x12/mguterl/rules.mk b/layouts/community/ortho_4x12/mguterl/rules.mk
new file mode 100644
index 000000000..dcf16bef3
--- /dev/null
+++ b/layouts/community/ortho_4x12/mguterl/rules.mk
@@ -0,0 +1 @@
+SRC += muse.c
diff --git a/layouts/community/ortho_4x12/xyverz/keymap.c b/layouts/community/ortho_4x12/xyverz/keymap.c
index 681dafacd..a21c143f0 100644
--- a/layouts/community/ortho_4x12/xyverz/keymap.c
+++ b/layouts/community/ortho_4x12/xyverz/keymap.c
@@ -1,34 +1,15 @@
#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "eeconfig.h"
-extern keymap_config_t keymap_config;
+enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
-// 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 _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _ADJUST 16
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- LOWER,
- RAISE,
- ADJUST
-};
+enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUST };
// Aliases to keep the keymap tidy
-#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
-#define RGB_SWR RGB_M_SW // Swirl Animation alias
-#define RGB_SNK RGB_M_SN // Snake Animation alias
+#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
+#define RGB_SWR RGB_M_SW // Swirl Animation alias
+#define RGB_SNK RGB_M_SN // Snake Animation alias
+// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -47,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, 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_RSFT,\
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \
-),
+ ),
/* Colemak
* ,-----------------------------------------------------------------------------------.
@@ -65,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \
-),
+ ),
/* Dvorak
* ,-----------------------------------------------------------------------------------.
@@ -83,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \
-),
+ ),
/* Lower
* ,-----------------------------------------------------------------------------------.
@@ -101,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, \
BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \
-),
+ ),
/* Raise
* ,-----------------------------------------------------------------------------------.
@@ -119,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, \
BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \
-),
+ ),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
@@ -137,77 +118,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, RESET, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
-)
-
-
+ )
};
+// clang-format on
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
+#ifdef AUDIO_ENABLE
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+#endif
void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
- // This will disable the red LEDs on the ProMicros
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
+ // This will disable the red LEDs on the ProMicros
+ setPinInput(D5);
+ writePinLow(D5);
+ setPinInput(B0);
+ writePinLow(B0);
#endif
};
+layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); };
+
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- persistent_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- persistent_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- persistent_default_layer_set(1UL<<_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
-/* case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- return false;
- break; */
- }
- return true;
-}
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QWERTY:
+ set_single_persistent_default_layer(_QWERTY);
+ return false;
+ case COLEMAK:
+ set_single_persistent_default_layer(_COLEMAK);
+ return false;
+ case DVORAK:
+ set_single_persistent_default_layer(_DVORAK);
+ return false;
+ }
+ }
+ return true;
+} \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/xyverz/readme.md b/layouts/community/ortho_4x12/xyverz/readme.md
index 1ec10a0da..d6614d956 100644
--- a/layouts/community/ortho_4x12/xyverz/readme.md
+++ b/layouts/community/ortho_4x12/xyverz/readme.md
@@ -8,6 +8,7 @@ This revision includes this documentation and introduction of the individual RGB
## Still to do:
+ * Update layout files to match current standards.
* Enjoy this revision; figure out new things later.
### Qwerty layer
diff --git a/layouts/community/ortho_5x12/drashna/config.h b/layouts/community/ortho_5x12/drashna/config.h
index 123c284a2..7504338ff 100644
--- a/layouts/community/ortho_5x12/drashna/config.h
+++ b/layouts/community/ortho_5x12/drashna/config.h
@@ -1,21 +1,22 @@
#pragma once
-
/* ws2812 RGB LED */
#if defined(KEYBOARD_fractal)
-# define RGB_DI_PIN D2
-# undef RGBLED_NUM
-# define RGBLIGHT_ANIMATIONS
-# define RGBLED_NUM 29 // Number of LEDs
-# undef RGBLIGHT_HUE_STEP
-# define RGBLIGHT_HUE_STEP 8
-# undef RGBLIGHT_SAT_STEP
-# define RGBLIGHT_SAT_STEP 8
-# undef RGBLIGHT_VAL_STEP
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_LIMIT_VAL 175
-# define RGBLIGHT_SLEEP
+# define RGB_DI_PIN D2
+# undef RGBLED_NUM
+# define RGBLIGHT_ANIMATIONS
+# define RGBLED_NUM 29 // Number of LEDs
+# undef RGBLIGHT_HUE_STEP
+# define RGBLIGHT_HUE_STEP 8
+# undef RGBLIGHT_SAT_STEP
+# define RGBLIGHT_SAT_STEP 8
+# undef RGBLIGHT_VAL_STEP
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_LIMIT_VAL 175
+# define RGBLIGHT_SLEEP
-# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 3
-# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 14
+# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 3
+# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 14
+# define B7_AUDIO
+# define NO_MUSIC_MODE
#endif
diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c
index bf0907a51..0ee9dfb10 100644
--- a/layouts/community/ortho_5x12/drashna/keymap.c
+++ b/layouts/community/ortho_5x12/drashna/keymap.c
@@ -1,24 +1,13 @@
-/* Copyright 2015-2017 Jack Humbert
- * Modified by KeyPCB for the Fractal keyboard
- * Backlight isn't on the Fractal, so I've removed the keycode from the keymaps
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
#include "drashna.h"
+/*
+ * The `LAYOUT_ortho_5x12_base` macro is a template to allow the use of identical
+ * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
+ * that there is no need to set them up for each layout, and modify all of
+ * them if I want to change them. This helps to keep consistency and ease
+ * of use. K## is a placeholder to pass through the individual keycodes
+ */
+// clang-format off
#define LAYOUT_ortho_5x12_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
@@ -26,12 +15,13 @@
K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \
) \
LAYOUT_ortho_5x12_wrapper( \
- KC_GRV, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
- KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \
- KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_QUOT, \
- KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, CTL_T(K3A), KC_ENT, \
+ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
+ LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \
+ KC_C1R3, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, RALT_T(KC_QUOT), \
+ KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, RCTL_T(K3A), KC_ENT, \
KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
)
+
#define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
@@ -131,26 +121,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_ortho_5x12_wrapper( \
KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST,
VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______,
+ _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
_______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
-
-
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- }
- return true;
};
-
-void matrix_init_keymap(void) {
-#ifdef KEYBOARD_fractal
- setPinOutput(D5);
- writePinHigh(D5);
-
- setPinOutput(B0);
- writePinHigh(B0);
-#endif
-}
+// clang-format on
diff --git a/layouts/community/ortho_5x12/drashna/rules.mk b/layouts/community/ortho_5x12/drashna/rules.mk
index 160419fcc..cae4b27ba 100644
--- a/layouts/community/ortho_5x12/drashna/rules.mk
+++ b/layouts/community/ortho_5x12/drashna/rules.mk
@@ -5,19 +5,12 @@ CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
TAP_DANCE_ENABLE = no
AUDIO_ENABLE = yes
-ifneq (,$(findstring fractal,$(KEYBOARD))) # Make sure it IS the Planck Light
- RGB_MATRIX_ENABLE = no
- AUDIO_ENABLE = no
- RGBLIGHT_ENABLE = yes
- RGBLIGHT_TWINKLE = yes
- BOOTLOADER = qmk-dfu
-endif
-
-ifeq ($(strip $(PROTOCOL)), VUSB)
-NKRO_ENABLE = no
-else
NKRO_ENABLE = yes
-endif
-
-MACROS_ENABLED = no
+ifeq ($(strip $(KEYBOARD)), fractal)
+ RGB_MATRIX_ENABLE = no
+ AUDIO_ENABLE = yes
+ RGBLIGHT_ENABLE = yes
+ RGBLIGHT_TWINKLE = yes
+ BOOTLOADER = qmk-dfu
+endif
diff --git a/layouts/community/ortho_5x12/xyverz/keymap.c b/layouts/community/ortho_5x12/xyverz/keymap.c
index bbf1d7bb0..2cca237bb 100644
--- a/layouts/community/ortho_5x12/xyverz/keymap.c
+++ b/layouts/community/ortho_5x12/xyverz/keymap.c
@@ -1,34 +1,15 @@
#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "eeconfig.h"
-extern keymap_config_t keymap_config;
+enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
-// 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 _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _ADJUST 16
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- LOWER,
- RAISE,
- ADJUST,
-};
+enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUST };
// Aliases to keep the keymap tidy
-#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
-#define RGB_SWR RGB_M_SW // Swirl Animation alias
-#define RGB_SNK RGB_M_SN // Snake Animation alias
+#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
+#define RGB_SWR RGB_M_SW // Swirl Animation alias
+#define RGB_SNK RGB_M_SN // Snake Animation alias
+// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -50,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, 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_RSFT, \
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \
-),
+ ),
/* Colemak
* ,-----------------------------------------------------------------------------------.
@@ -71,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \
-),
+ ),
/* Dvorak
* ,-----------------------------------------------------------------------------------.
@@ -92,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \
-),
+ ),
/* Lower
* ,-----------------------------------------------------------------------------------.
@@ -113,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, \
BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \
-),
+ ),
/* Raise
* ,-----------------------------------------------------------------------------------.
@@ -134,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, \
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, \
BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \
-),
+ ),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
@@ -155,92 +136,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
-)
-
-
+ )
};
+// clang-format on
+
#ifdef AUDIO_ENABLE
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
#endif
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
- // This will disable the red LEDs on the ProMicros
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
+ // This will disable the red LEDs on the ProMicros
+ setPinInput(D5);
+ writePinLow(D5);
+ setPinInput(B0);
+ writePinLow(B0);
#endif
};
+layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); };
+
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
- #endif
- persistent_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_colemak, false, 0);
- #endif
- persistent_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
- #endif
- persistent_default_layer_set(1UL<<_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
-/* case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- return false;
- break; */
- }
- return true;
-}
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QWERTY:
+ set_single_persistent_default_layer(_QWERTY);
+ return false;
+ case COLEMAK:
+ set_single_persistent_default_layer(_COLEMAK);
+ return false;
+ case DVORAK:
+ set_single_persistent_default_layer(_DVORAK);
+ return false;
+ }
+ }
+ return true;
+} \ No newline at end of file
diff --git a/layouts/community/ortho_5x14/yet-another-developer/config.h b/layouts/community/ortho_5x14/yet-another-developer/config.h
new file mode 100644
index 000000000..7504338ff
--- /dev/null
+++ b/layouts/community/ortho_5x14/yet-another-developer/config.h
@@ -0,0 +1,22 @@
+#pragma once
+
+/* ws2812 RGB LED */
+#if defined(KEYBOARD_fractal)
+# define RGB_DI_PIN D2
+# undef RGBLED_NUM
+# define RGBLIGHT_ANIMATIONS
+# define RGBLED_NUM 29 // Number of LEDs
+# undef RGBLIGHT_HUE_STEP
+# define RGBLIGHT_HUE_STEP 8
+# undef RGBLIGHT_SAT_STEP
+# define RGBLIGHT_SAT_STEP 8
+# undef RGBLIGHT_VAL_STEP
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_LIMIT_VAL 175
+# define RGBLIGHT_SLEEP
+
+# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 3
+# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 14
+# define B7_AUDIO
+# define NO_MUSIC_MODE
+#endif
diff --git a/layouts/community/ortho_5x14/yet-another-developer/keymap.c b/layouts/community/ortho_5x14/yet-another-developer/keymap.c
new file mode 100644
index 000000000..aea50508d
--- /dev/null
+++ b/layouts/community/ortho_5x14/yet-another-developer/keymap.c
@@ -0,0 +1,208 @@
+#include QMK_KEYBOARD_H
+#include "yet-another-developer.h"
+
+// clang-format off
+
+/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
+#define LAYOUT_ergodash_pretty( \
+ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
+ L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
+ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
+ L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \
+ L40, L41, L42, L43, R43, R44, R45, R46 \
+ L36, R30, \
+ L44, L45, L46, R40, R41, R42, \
+ ) \
+ /* matrix positions */ \
+ { \
+ { L00, L01, L02, L03, L04, L05, L06 }, \
+ { L10, L11, L12, L13, L14, L15, L16 }, \
+ { L20, L21, L22, L23, L24, L25, L26 }, \
+ { L30, L31, L32, L33, L34, L35, L36 }, \
+ { L40, L41, L42, L43, L44, L45, L46 }, \
+ { R06, R05, R04, R03, R02, R01, R00 }, \
+ { R16, R15, R14, R13, R12, R11, R10 }, \
+ { R26, R25, R24, R23, R22, R21, R20 }, \
+ { R36, R35, R34, R33, R32, R31, R30 }, \
+ { R46, R45, R44, R43, R42, R41, R40 } \
+ }
+
+#define LAYOUT_ergodash_pretty_wrapper(...) LAYOUT_ergodash_pretty(__VA_ARGS__)
+
+#define LAYOUT_ergodash_pretty_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_ergodox_pretty_wrapper( \
+ KC_ESC, ________________NUMBER_LEFT________________, KC_LBRC, KC_RBRC, ________________NUMBER_RIGHT_______________, KC_PSCR, \
+ KC_GRV, K01, K02, K03, K04, K05, KC_MINS, KC_EQL, K06, K07, K08, K09, K0A, KC_BSLS, \
+ KC_TAB, ALT_T(K11), K12, K13, K14, K15, KC_DEL, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \
+ KC_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF, \
+ KC_LCTL, KC_LGUI, KC_LALT, EISU, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+ LT(_LOWER, KC_SPC), LT(_RAISE, KC_ENT), \
+ OS_LGUI,LT(_LOWER, KC_SPC),KC_DEL, KC_BSPC, LT(_RAISE, KC_ENT), OS_RGUI \
+ )
+
+#define LAYOUT_ergodash_pretty_base_wrapper(...) LAYOUT_ergodash_pretty_base(__VA_ARGS__)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: QWERTY Layer
+ *
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = + | 1 ! | 2 @ | 3 # | 4 $ | 5 % | TG(4)| | TG(4)| 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | TAB | Q | W | E | R | T | TG(3)| |TG(3) | Y | U | I | O | P | \ | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Bksp | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " |
+ * |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------|
+ * | Shift | Z | X | C | V | B | | | | N | M | , < | . > | ? / | Shift |
+ * |--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------|
+ * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
+ * `-----------------------------' `------------------------------------'
+ * ,--------------. ,--------------.
+ * |Alt/Ap| Win | | Alt |Ctl/Esc|
+ * ,------|------|-------| |------+-------+------.
+ * | | | Home | | PgUp | | |
+ * `---------------------' `---------------------'
+ */
+ [_QWERTY] = LAYOUT_ergodash_pretty_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+ ),
+/* Keymap 0: COLEMAK layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' |
+ * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
+ * `-----------------------------' `------------------------------------'
+ * ,--------------. ,--------------.
+ * |Alt/Ap| Win | | Alt |Ctl/Esc|
+ * ,------|------|-------| |------+-------+------.
+ * | | | Home | | PgUp | | |
+ * `---------------------' `---------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+ [_COLEMAK] = LAYOUT_ergodash_pretty_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+ ),
+
+// Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES)
+ [_MODS] = LAYOUT_ergodash_pretty_wrapper(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
+ _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+
+/* Keymap 4: Customized Overwatch Layout
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | | | | | | | | | F9 | F10 | F11 | F12 | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | F1 | K | Q | W | E | R | T | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | TAB | G | A | S | D | F |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LCTR | LSHFT| Z | X | C | V | | | | N | M | | | | |
+ * |--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------|
+ * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
+ * `-----------------------------' `------------------------------------'
+ * ,--------------. ,--------------.
+ * |Alt/Ap| Win | | Alt |Ctl/Esc|
+ * ,------|------|-------| |------+-------+------.
+ * | | | Home | | PgUp | | |
+ * `---------------------' `---------------------'
+ */
+ [_GAMEPAD] = LAYOUT_ergodash_pretty_wrapper(
+ KC_ESC, KC_NO, KC_1, KC_2, KC_3, HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
+ KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, UC_SHRG, UC_DISA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO,
+ KC_O, KC_P, MAGIC_TOGGLE_NKRO, LALT(KC_PSCR),
+ KC_LGUI, KC_HYPR,
+ KC_V, KC_SPC, KC_H, KC_NO, KC_NO, KC_SWAP_NUM
+ ),
+
+/* Keymap 3:
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | V | D | ALT | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | TAB | S | I | F | M | T | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Q | 1 | 2 | 3 | 4 | G |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | NUMLOCK| NUM1 | NUM2 | NUM3 | NUM4 | Z | | | | | | | | | |
+ * |--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
+ * `-----------------------------' `------------------------------------'
+ * ,--------------. ,--------------.
+ * |Alt/Ap| Win | | Alt |Ctl/Esc|
+ * ,------|------|-------| |------+-------+------.
+ * | | | Home | | PgUp | | |
+ * `---------------------' `---------------------'
+ */
+ [_DIABLO] = LAYOUT_ergodash_pretty_wrapper(
+ KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
+ KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, 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_L, KC_J, KC_NO, KC_NO,
+ KC_F, KC_NO,
+ SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT
+ ),
+
+ [_LOWER] = LAYOUT_ergodash_pretty_wrapper(
+ KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
+ KC_TILD, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, KC_PIPE,
+ _______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_DQUO,
+ _______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, KC_PSCR,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ [_RAISE] = LAYOUT_ergodash_pretty_wrapper(
+ KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
+ KC_GRV, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, KC_BSLS,
+ _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_QUOT,
+ _______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, KC_PSCR,
+ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_SLCK,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ [_ADJUST] = LAYOUT_ergodash_pretty_wrapper(
+ KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
+ VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
+ _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
+ _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG(_MODS),
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+};
+// clang-format on
diff --git a/layouts/community/ortho_5x14/yet-another-developer/rules.mk b/layouts/community/ortho_5x14/yet-another-developer/rules.mk
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/layouts/community/ortho_5x14/yet-another-developer/rules.mk
@@ -0,0 +1 @@
+
diff --git a/layouts/community/tkl_ansi/xyverz/keymap.c b/layouts/community/tkl_ansi/xyverz/keymap.c
new file mode 100644
index 000000000..1f79f87d1
--- /dev/null
+++ b/layouts/community/tkl_ansi/xyverz/keymap.c
@@ -0,0 +1,69 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QW,
+ _DV,
+ _CM,
+ _FL,
+};
+
+enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QW] = LAYOUT_tkl_ansi( /* Layer 0: Qwerty */ \
+ KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \
+ KC_GRV, 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_INS, KC_HOME, KC_PGUP, \
+ 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_DEL, KC_END, KC_PGDN, \
+ 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_UP, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ [_DV] = LAYOUT_tkl_ansi( /* Layer 1: Dvorak */ \
+ KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
+ KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ [_CM] = LAYOUT_tkl_ansi( /* Layer 2: Colemak */ \
+ KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \
+ KC_GRV, 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_INS, KC_HOME, KC_PGUP, \
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
+ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+[_FL] = LAYOUT_tkl_ansi( /* Layer 3: Functions */ \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_MPRV, KC_MPLY, KC_MNXT, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ QWERTY, DVORAK, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+};
+// clang-format on
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case DVORAK:
+ set_single_persistent_default_layer(_DV);
+ return false;
+ case QWERTY:
+ set_single_persistent_default_layer(_QW);
+ return false;
+ case COLEMAK:
+ set_single_persistent_default_layer(_CM);
+ return false;
+ }
+ }
+ return true;
+} \ No newline at end of file
diff --git a/layouts/community/tkl_ansi/xyverz/readme.md b/layouts/community/tkl_ansi/xyverz/readme.md
new file mode 100644
index 000000000..b67b1385d
--- /dev/null
+++ b/layouts/community/tkl_ansi/xyverz/readme.md
@@ -0,0 +1 @@
+2019-10-16 Updated to bring keymap up to current.
diff --git a/layouts/default/60_abnt2/default_60_abnt2/keymap.c b/layouts/default/60_abnt2/default_60_abnt2/keymap.c
new file mode 100644
index 000000000..c66cba7be
--- /dev/null
+++ b/layouts/default/60_abnt2/default_60_abnt2/keymap.c
@@ -0,0 +1,22 @@
+#include QMK_KEYBOARD_H
+#include "keymap_br_abnt2.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_60_abnt2(
+ 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_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, BR_ACUT, BR_LBRC,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, BR_CCDL, BR_TILD, BR_RBRC, KC_ENT,
+ KC_LSFT, BR_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, BR_SCLN, BR_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_RCTL
+ ),
+
+ [1] = LAYOUT_60_abnt2(
+ BR_QUOT, 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,
+ _______, _______, _______, _______, RESET, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/layouts/default/60_abnt2/info.json b/layouts/default/60_abnt2/info.json
new file mode 100644
index 000000000..4e371abdc
--- /dev/null
+++ b/layouts/default/60_abnt2/info.json
@@ -0,0 +1,80 @@
+{
+ "keyboard_name": "60% ABNT2 layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_abnt2": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3},
+ {"x":13.25, "y":3, "w":1.75},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":13.75, "y":4, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_abnt2/layout.json b/layouts/default/60_abnt2/layout.json
new file mode 100644
index 000000000..0a4d8fd58
--- /dev/null
+++ b/layouts/default/60_abnt2/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","","","","","",{w:2},""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""],
+[{w:1.75},"","","","","","","","","","","","",""],
+[{w:1.25},"","","","","","","","","","","","","",{w:1.75},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]
diff --git a/layouts/default/60_abnt2/readme.md b/layouts/default/60_abnt2/readme.md
new file mode 100644
index 000000000..d363e0d5c
--- /dev/null
+++ b/layouts/default/60_abnt2/readme.md
@@ -0,0 +1,3 @@
+# 60_abnt2
+
+![60% ABNT2 layout](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/layouts/default/60_abnt2/keyboard-layout.png)
diff --git a/layouts/default/60_ansi/info.json b/layouts/default/60_ansi/info.json
new file mode 100644
index 000000000..a5c9b5f56
--- /dev/null
+++ b/layouts/default/60_ansi/info.json
@@ -0,0 +1,78 @@
+{
+ "keyboard_name": "60% ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":13.75, "y":4, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_ansi_split_bs_rshift/info.json b/layouts/default/60_ansi_split_bs_rshift/info.json
new file mode 100644
index 000000000..c42c3b047
--- /dev/null
+++ b/layouts/default/60_ansi_split_bs_rshift/info.json
@@ -0,0 +1,80 @@
+{
+ "keyboard_name": "60% ANSI layout with split Backspace and Right Shift",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":13.75, "y":4, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_ansi_split_bs_rshift/layout.json b/layouts/default/60_ansi_split_bs_rshift/layout.json
index ebad5d89d..55bd4531c 100644
--- a/layouts/default/60_ansi_split_bs_rshift/layout.json
+++ b/layouts/default/60_ansi_split_bs_rshift/layout.json
@@ -1,5 +1,5 @@
[{a:7},"","","","","","","","","","","","","","",""],
[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
-[{w:2.25},"","","","","","","","","","","",{w:1.75},"",{w:1},""],
+[{w:2.25},"","","","","","","","","","","",{w:1.75},"",""],
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]
diff --git a/layouts/default/60_ansi_tsangan/info.json b/layouts/default/60_ansi_tsangan/info.json
new file mode 100644
index 000000000..9c21043db
--- /dev/null
+++ b/layouts/default/60_ansi_tsangan/info.json
@@ -0,0 +1,77 @@
+{
+ "keyboard_name": "60% ANSI Tsangan layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_ansi_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":12.5, "y":4},
+ {"x":13.5, "y":4, "w":1.5}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_ansi_tsangan/layout.json b/layouts/default/60_ansi_tsangan/layout.json
index f6a65beb3..6cdacf8de 100644
--- a/layouts/default/60_ansi_tsangan/layout.json
+++ b/layouts/default/60_ansi_tsangan/layout.json
@@ -2,4 +2,4 @@
[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
[{w:2.25},"","","","","","","","","","","",{w:2.75},""],
-[{w:1.5},"",{w:1},"",{w:1.5},"",{w:7},"",{w:1.5},"",{w:1},"",{w:1.5},""]
+[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},""]
diff --git a/layouts/default/60_hhkb/info.json b/layouts/default/60_hhkb/info.json
new file mode 100644
index 000000000..0d9594aff
--- /dev/null
+++ b/layouts/default/60_hhkb/info.json
@@ -0,0 +1,77 @@
+{
+ "keyboard_name": "60% HHKB layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_hhkb": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":12.5, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_hhkb/layout.json b/layouts/default/60_hhkb/layout.json
index 9dce76a2e..5d02648dd 100644
--- a/layouts/default/60_hhkb/layout.json
+++ b/layouts/default/60_hhkb/layout.json
@@ -1,5 +1,5 @@
-["Esc","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=","|\n\\","~\n`"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"Delete"],
-[{w:1.75},"Control","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
-[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:1.75},"Shift","Fn"],
-[{x:1.5},"Os",{w:1.5},"Alt",{a:7,w:7},"",{a:4,w:1.5},"Alt","Os"]
+[{a:7},"","","","","","","","","","","","","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:1.75},"",""],
+[{x:1.5},"",{w:1.5},"",{w:7},"",{w:1.5},"",""]
diff --git a/layouts/default/60_iso/info.json b/layouts/default/60_iso/info.json
new file mode 100644
index 000000000..4e5b485ba
--- /dev/null
+++ b/layouts/default/60_iso/info.json
@@ -0,0 +1,79 @@
+{
+ "keyboard_name": "60% ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":13.75, "y":4, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_iso_tsangan/info.json b/layouts/default/60_iso_tsangan/info.json
new file mode 100644
index 000000000..91a51f285
--- /dev/null
+++ b/layouts/default/60_iso_tsangan/info.json
@@ -0,0 +1,78 @@
+{
+ "keyboard_name": "60% ISO Tsangan layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_iso_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":12.5, "y":4},
+ {"x":13.5, "y":4, "w":1.5}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_iso_tsangan/layout.json b/layouts/default/60_iso_tsangan/layout.json
index e23185935..776a5c0db 100644
--- a/layouts/default/60_iso_tsangan/layout.json
+++ b/layouts/default/60_iso_tsangan/layout.json
@@ -2,4 +2,4 @@
[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""],
[{w:1.75},"","","","","","","","","","","","",""],
[{w:1.25},"","","","","","","","","","","","",{w:2.75},""],
-[{w:1.5},"",{w:1},"",{w:1.5},"",{w:7},"",{w:1.5},"",{w:1},"",{w:1.5},""]
+[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},""]
diff --git a/layouts/default/60_tsangan_hhkb/info.json b/layouts/default/60_tsangan_hhkb/info.json
new file mode 100644
index 000000000..6a7451f88
--- /dev/null
+++ b/layouts/default/60_tsangan_hhkb/info.json
@@ -0,0 +1,79 @@
+{
+ "keyboard_name": "60% ANSI Tsangan HHKB layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_tsangan_hhkb": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":12.5, "y":4},
+ {"x":13.5, "y":4, "w":1.5}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/60_tsangan_hhkb/layout.json b/layouts/default/60_tsangan_hhkb/layout.json
index 117d26d41..c387347d9 100644
--- a/layouts/default/60_tsangan_hhkb/layout.json
+++ b/layouts/default/60_tsangan_hhkb/layout.json
@@ -1,5 +1,5 @@
[{a:7},"","","","","","","","","","","","","","",""],
[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
-[{w:2.25},"","","","","","","","","","","",{w:1.75},"",{w:1},""],
-[{w:1.5},"",{w:1},"",{w:1.5},"",{w:7},"",{w:1.5},"",{w:1},"",{w:1.5},""]
+[{w:2.25},"","","","","","","","","","","",{w:1.75},"",""],
+[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},""]
diff --git a/layouts/default/65_ansi/info.json b/layouts/default/65_ansi/info.json
new file mode 100644
index 000000000..86fbc3ca7
--- /dev/null
+++ b/layouts/default/65_ansi/info.json
@@ -0,0 +1,85 @@
+{
+ "keyboard_name": "65% ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_65_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4},
+ {"x":11, "y":4},
+ {"x":12, "y":4},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/65_ansi/layout.json b/layouts/default/65_ansi/layout.json
index 0fa92b0f2..d8b752ba5 100644
--- a/layouts/default/65_ansi/layout.json
+++ b/layouts/default/65_ansi/layout.json
@@ -1,4 +1,4 @@
-["","","","","","","","","","","","","",{w:2},"",""],
+[{a:7},"","","","","","","","","","","","","",{w:2},"",""],
[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""],
[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""],
[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""],
diff --git a/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c b/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c
new file mode 100644
index 000000000..fedcc0c73
--- /dev/null
+++ b/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c
@@ -0,0 +1,11 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* layer 0: qwerty */
+ [0] = LAYOUT_65_ansi_blocker(\
+ KC_GRV, 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_HOME,
+ 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_PGUP,
+ 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_PGDN,
+ 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_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
+ }; \ No newline at end of file
diff --git a/layouts/default/65_ansi_blocker/info.json b/layouts/default/65_ansi_blocker/info.json
new file mode 100644
index 000000000..bbe1c8c3a
--- /dev/null
+++ b/layouts/default/65_ansi_blocker/info.json
@@ -0,0 +1,84 @@
+{
+ "keyboard_name": "65% ANSI layout with blocker",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_65_ansi_blocker": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/65_ansi_blocker/layout.json b/layouts/default/65_ansi_blocker/layout.json
new file mode 100644
index 000000000..5586e2d0e
--- /dev/null
+++ b/layouts/default/65_ansi_blocker/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","","","","","",{w:2},"",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""],
+[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{x:0.5},"","",""]
diff --git a/layouts/default/65_ansi_blocker/readme.md b/layouts/default/65_ansi_blocker/readme.md
new file mode 100644
index 000000000..9e9a5f454
--- /dev/null
+++ b/layouts/default/65_ansi_blocker/readme.md
@@ -0,0 +1,5 @@
+# 65_blocker_ansi
+
+ LAYOUT_65_blocker_ansi
+
+This is the 65% ANSI layout made popular by boards such as the Percent Canoe. \ No newline at end of file
diff --git a/layouts/default/65_iso/info.json b/layouts/default/65_iso/info.json
new file mode 100644
index 000000000..f5bf43934
--- /dev/null
+++ b/layouts/default/65_iso/info.json
@@ -0,0 +1,86 @@
+{
+ "keyboard_name": "65% ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_65_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4},
+ {"x":11, "y":4},
+ {"x":12, "y":4},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/65_iso/layout.json b/layouts/default/65_iso/layout.json
index 6496e9363..9f9542926 100644
--- a/layouts/default/65_iso/layout.json
+++ b/layouts/default/65_iso/layout.json
@@ -1,4 +1,4 @@
-["","","","","","","","","","","","","",{w:2},"",""],
+[{a:7},"","","","","","","","","","","","","",{w:2},"",""],
[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",""],
[{w:1.75},"","","","","","","","","","","","","",{x:1.25},""],
[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","",""],
diff --git a/layouts/default/66_ansi/info.json b/layouts/default/66_ansi/info.json
new file mode 100644
index 000000000..07f5913f0
--- /dev/null
+++ b/layouts/default/66_ansi/info.json
@@ -0,0 +1,83 @@
+{
+ "keyboard_name": "66% ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16.5,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_66_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15.5, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15.5, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.25},
+ {"x":14.5, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4},
+ {"x":12.25, "y":4, "w":1.25},
+ {"x":13.5, "y":4},
+ {"x":14.5, "y":4},
+ {"x":15.5, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/66_ansi/layout.json b/layouts/default/66_ansi/layout.json
index 60a3a47c0..5ab33eb2f 100644
--- a/layouts/default/66_ansi/layout.json
+++ b/layouts/default/66_ansi/layout.json
@@ -1,5 +1,5 @@
-["~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{x:0.5},"Page Up"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\",{x:0.5},"Page Down"],
-[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
-[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.25},"Shift","Up"],
-[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt","Fn",{w:1.25},"Ctrl","Left","Down","Right"]
+[{a:7},"","","","","","","","","","","","","",{w:2},"",{x:0.5},""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.5},""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:2.25},"",""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"","",{w:1.25},"","","",""]
diff --git a/layouts/default/66_iso/info.json b/layouts/default/66_iso/info.json
new file mode 100644
index 000000000..df20bebc3
--- /dev/null
+++ b/layouts/default/66_iso/info.json
@@ -0,0 +1,84 @@
+{
+ "keyboard_name": "66% ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16.5,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_66_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15.5, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15.5, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.25},
+ {"x":14.5, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4},
+ {"x":12.25, "y":4, "w":1.25},
+ {"x":13.5, "y":4},
+ {"x":14.5, "y":4},
+ {"x":15.5, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/66_iso/layout.json b/layouts/default/66_iso/layout.json
index 1397b37ee..046226fbc 100644
--- a/layouts/default/66_iso/layout.json
+++ b/layouts/default/66_iso/layout.json
@@ -1,5 +1,5 @@
-["~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{x:0.5},"Page Up"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",{x:0.5},"Page Down"],
-[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'","~\n#"],
-[{w:1.25},"Shift","|\n\\","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.25},"Shift","↑"],
-[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt","Fn",{w:1.25},"Ctrl","←","↓","→"]
+[{a:7},"","","","","","","","","","","","","",{w:2},"",{x:0.5},""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.5},""],
+[{w:1.75},"","","","","","","","","","","","",""],
+[{w:1.25},"","","","","","","","","","","","",{w:2.25},"",""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"","",{w:1.25},"","","",""]
diff --git a/layouts/default/68_ansi/info.json b/layouts/default/68_ansi/info.json
new file mode 100644
index 000000000..1aabb1cce
--- /dev/null
+++ b/layouts/default/68_ansi/info.json
@@ -0,0 +1,85 @@
+{
+ "keyboard_name": "68% ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 17.25,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_68_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15.25, "y":1},
+ {"x":16.25, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+ {"x":15.25, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":14.25, "y":4},
+ {"x":15.25, "y":4},
+ {"x":16.25, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/75_ansi/info.json b/layouts/default/75_ansi/info.json
new file mode 100644
index 000000000..4f670fc59
--- /dev/null
+++ b/layouts/default/75_ansi/info.json
@@ -0,0 +1,102 @@
+{
+ "keyboard_name": "75% ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_75_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+ {"x":13, "y":1, "w":2},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.5},
+ {"x":1.5, "y":2},
+ {"x":2.5, "y":2},
+ {"x":3.5, "y":2},
+ {"x":4.5, "y":2},
+ {"x":5.5, "y":2},
+ {"x":6.5, "y":2},
+ {"x":7.5, "y":2},
+ {"x":8.5, "y":2},
+ {"x":9.5, "y":2},
+ {"x":10.5, "y":2},
+ {"x":11.5, "y":2},
+ {"x":12.5, "y":2},
+ {"x":13.5, "y":2, "w":1.5},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.75},
+ {"x":1.75, "y":3},
+ {"x":2.75, "y":3},
+ {"x":3.75, "y":3},
+ {"x":4.75, "y":3},
+ {"x":5.75, "y":3},
+ {"x":6.75, "y":3},
+ {"x":7.75, "y":3},
+ {"x":8.75, "y":3},
+ {"x":9.75, "y":3},
+ {"x":10.75, "y":3},
+ {"x":11.75, "y":3},
+ {"x":12.75, "y":3, "w":2.25},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":2.25},
+ {"x":2.25, "y":4},
+ {"x":3.25, "y":4},
+ {"x":4.25, "y":4},
+ {"x":5.25, "y":4},
+ {"x":6.25, "y":4},
+ {"x":7.25, "y":4},
+ {"x":8.25, "y":4},
+ {"x":9.25, "y":4},
+ {"x":10.25, "y":4},
+ {"x":11.25, "y":4},
+ {"x":12.25, "y":4, "w":1.75},
+ {"x":14, "y":4},
+ {"x":15, "y":4},
+
+ {"x":0, "y":5, "w":1.25},
+ {"x":1.25, "y":5, "w":1.25},
+ {"x":2.5, "y":5, "w":1.25},
+ {"x":3.75, "y":5, "w":6.25},
+ {"x":10, "y":5},
+ {"x":11, "y":5},
+ {"x":12, "y":5},
+ {"x":13, "y":5},
+ {"x":14, "y":5},
+ {"x":15, "y":5}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/75_iso/info.json b/layouts/default/75_iso/info.json
new file mode 100644
index 000000000..14820d6a7
--- /dev/null
+++ b/layouts/default/75_iso/info.json
@@ -0,0 +1,103 @@
+{
+ "keyboard_name": "75% ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_75_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+ {"x":13, "y":1, "w":2},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.5},
+ {"x":1.5, "y":2},
+ {"x":2.5, "y":2},
+ {"x":3.5, "y":2},
+ {"x":4.5, "y":2},
+ {"x":5.5, "y":2},
+ {"x":6.5, "y":2},
+ {"x":7.5, "y":2},
+ {"x":8.5, "y":2},
+ {"x":9.5, "y":2},
+ {"x":10.5, "y":2},
+ {"x":11.5, "y":2},
+ {"x":12.5, "y":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.75},
+ {"x":1.75, "y":3},
+ {"x":2.75, "y":3},
+ {"x":3.75, "y":3},
+ {"x":4.75, "y":3},
+ {"x":5.75, "y":3},
+ {"x":6.75, "y":3},
+ {"x":7.75, "y":3},
+ {"x":8.75, "y":3},
+ {"x":9.75, "y":3},
+ {"x":10.75, "y":3},
+ {"x":11.75, "y":3},
+ {"x":12.75, "y":3},
+ {"x":13.75, "y":2, "w":1.25, "h":2},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4},
+ {"x":2.25, "y":4},
+ {"x":3.25, "y":4},
+ {"x":4.25, "y":4},
+ {"x":5.25, "y":4},
+ {"x":6.25, "y":4},
+ {"x":7.25, "y":4},
+ {"x":8.25, "y":4},
+ {"x":9.25, "y":4},
+ {"x":10.25, "y":4},
+ {"x":11.25, "y":4},
+ {"x":12.25, "y":4, "w":1.75},
+ {"x":14, "y":4},
+ {"x":15, "y":4},
+
+ {"x":0, "y":5, "w":1.25},
+ {"x":1.25, "y":5, "w":1.25},
+ {"x":2.5, "y":5, "w":1.25},
+ {"x":3.75, "y":5, "w":6.25},
+ {"x":10, "y":5},
+ {"x":11, "y":5},
+ {"x":12, "y":5},
+ {"x":13, "y":5},
+ {"x":14, "y":5},
+ {"x":15, "y":5}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ergodox/info.json b/layouts/default/ergodox/info.json
new file mode 100644
index 000000000..49a1f119a
--- /dev/null
+++ b/layouts/default/ergodox/info.json
@@ -0,0 +1,104 @@
+{
+ "keyboard_name": "Ergodox layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 19.75,
+ "height": 7.25,
+ "layouts": {
+ "LAYOUT_ergodox": {
+ "layout": [
+ {"x":0, "y":0.375, "w":1.5},
+ {"x":1.5, "y":0.375},
+ {"x":2.5, "y":0.125},
+ {"x":3.5, "y":0},
+ {"x":4.5, "y":0.125},
+ {"x":5.5, "y":0.25},
+ {"x":6.5, "y":0.25},
+
+ {"x":0, "y":1.375, "w":1.5},
+ {"x":1.5, "y":1.375},
+ {"x":2.5, "y":1.125},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1.125},
+ {"x":5.5, "y":1.25},
+ {"x":6.5, "y":1.25, "h":1.5},
+
+ {"x":0, "y":2.375, "w":1.5},
+ {"x":1.5, "y":2.375},
+ {"x":2.5, "y":2.125},
+ {"x":3.5, "y":2},
+ {"x":4.5, "y":2.125},
+ {"x":5.5, "y":2.25},
+
+ {"x":0, "y":3.375, "w":1.5},
+ {"x":1.5, "y":3.375},
+ {"x":2.5, "y":3.125},
+ {"x":3.5, "y":3},
+ {"x":4.5, "y":3.125},
+ {"x":5.5, "y":3.25},
+ {"x":6.5, "y":2.75, "h":1.5},
+
+ {"x":0.5, "y":4.375},
+ {"x":1.5, "y":4.375},
+ {"x":2.5, "y":4.125},
+ {"x":3.5, "y":4},
+ {"x":4.5, "y":4.125},
+
+ {"x":7.75, "y":4.25},
+ {"x":8.75, "y":4.25},
+
+ {"x":8.75, "y":5.25},
+
+ {"x":6.75, "y":5.25, "h":2},
+ {"x":7.75, "y":5.25, "h":2},
+ {"x":8.75, "y":6.25},
+
+ {"x":12.25, "y":0.25},
+ {"x":13.25, "y":0.25},
+ {"x":14.25, "y":0.125},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0.125},
+ {"x":17.25, "y":0.375},
+ {"x":18.25, "y":0.375, "w":1.5},
+
+ {"x":12.25, "y":1.25, "h":1.5},
+ {"x":13.25, "y":1.25},
+ {"x":14.25, "y":1.125},
+ {"x":15.25, "y":1},
+ {"x":16.25, "y":1.125},
+ {"x":17.25, "y":1.375},
+ {"x":18.25, "y":1.375, "w":1.5},
+
+ {"x":13.25, "y":2.25},
+ {"x":14.25, "y":2.125},
+ {"x":15.25, "y":2},
+ {"x":16.25, "y":2.125},
+ {"x":17.25, "y":2.375},
+ {"x":18.25, "y":2.375, "w":1.5},
+
+ {"x":12.25, "y":2.75, "h":1.5},
+ {"x":13.25, "y":3.25},
+ {"x":14.25, "y":3.125},
+ {"x":15.25, "y":3},
+ {"x":16.25, "y":3.125},
+ {"x":17.25, "y":3.375},
+ {"x":18.25, "y":3.375, "w":1.5},
+
+ {"x":14.25, "y":4.125},
+ {"x":15.25, "y":4},
+ {"x":16.25, "y":4.125},
+ {"x":17.25, "y":4.375},
+ {"x":18.25, "y":4.375},
+
+ {"x":10, "y":4.25},
+ {"x":11, "y":4.25},
+
+ {"x":10, "y":5.25},
+
+ {"x":10, "y":6.25},
+ {"x":11, "y":5.25, "h":2},
+ {"x":12, "y":5.25, "h":2}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/fullsize_ansi/info.json b/layouts/default/fullsize_ansi/info.json
new file mode 100644
index 000000000..ba67fbd4c
--- /dev/null
+++ b/layouts/default/fullsize_ansi/info.json
@@ -0,0 +1,122 @@
+{
+ "keyboard_name": "Fullsize ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 22.5,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_fullsize_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+ {"x":18.5, "y":1.25},
+ {"x":19.5, "y":1.25},
+ {"x":20.5, "y":1.25},
+ {"x":21.5, "y":1.25},
+
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":15.25, "y":2.25},
+ {"x":16.25, "y":2.25},
+ {"x":17.25, "y":2.25},
+ {"x":18.5, "y":2.25},
+ {"x":19.5, "y":2.25},
+ {"x":20.5, "y":2.25},
+ {"x":21.5, "y":2.25, "h": 2},
+
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+ {"x":18.5, "y":3.25},
+ {"x":19.5, "y":3.25},
+ {"x":20.5, "y":3.25},
+
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":18.5, "y":4.25},
+ {"x":19.5, "y":4.25},
+ {"x":20.5, "y":4.25},
+ {"x":21.5, "y":4.25, "h":2},
+
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25},
+ {"x":18.5, "y":5.25, "w":2},
+ {"x":20.5, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/fullsize_ansi/layout.json b/layouts/default/fullsize_ansi/layout.json
index 38db30dfc..bd98daba6 100644
--- a/layouts/default/fullsize_ansi/layout.json
+++ b/layouts/default/fullsize_ansi/layout.json
@@ -1,6 +1,6 @@
-["Esc",{x:1},"F1","F2","F3","F4",{x:0.5},"F5","F6","F7","F8",{x:0.5},"F9","F10","F11","F12",{x:0.25},"PrtSc","Scroll Lock","Pause\nBreak"],
-[{y:0.5},"~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{x:0.25},"Insert","Home","PgUp",{x:0.25},"Num Lock","/","*","-"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\",{x:0.25},"Delete","End","PgDn",{x:0.25},"7\nHome","8\n↑","9\nPgUp",{h:2},"+"],
-[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter",{x:3.5},"4\n←","5","6\n→"],
-[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift",{x:1.25},"↑",{x:1.25},"1\nEnd","2\n↓","3\nPgDn",{h:2},"Enter"],
-[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl",{x:0.25},"←","↓","→",{x:0.25,w:2},"0\nIns",".\nDel"]
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""],
+[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","","",{x:0.25},"","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",{x:3.5},"","",""],
+[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""]
diff --git a/layouts/default/fullsize_iso/info.json b/layouts/default/fullsize_iso/info.json
new file mode 100644
index 000000000..403797a31
--- /dev/null
+++ b/layouts/default/fullsize_iso/info.json
@@ -0,0 +1,123 @@
+{
+ "keyboard_name": "Fullsize ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 22.5,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_fullsize_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+ {"x":18.5, "y":1.25},
+ {"x":19.5, "y":1.25},
+ {"x":20.5, "y":1.25},
+ {"x":21.5, "y":1.25},
+
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":15.25, "y":2.25},
+ {"x":16.25, "y":2.25},
+ {"x":17.25, "y":2.25},
+ {"x":18.5, "y":2.25},
+ {"x":19.5, "y":2.25},
+ {"x":20.5, "y":2.25},
+ {"x":21.5, "y":2.25, "h": 2},
+
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25},
+ {"x":13.75, "y":2.25, "w":1.25, "h":2},
+ {"x":18.5, "y":3.25},
+ {"x":19.5, "y":3.25},
+ {"x":20.5, "y":3.25},
+
+ {"x":0, "y":4.25, "w":1.25},
+ {"x":1.25, "y":4.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":18.5, "y":4.25},
+ {"x":19.5, "y":4.25},
+ {"x":20.5, "y":4.25},
+ {"x":21.5, "y":4.25, "h":2},
+
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25},
+ {"x":18.5, "y":5.25, "w":2},
+ {"x":20.5, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/fullsize_iso/layout.json b/layouts/default/fullsize_iso/layout.json
index 1cead8293..38e197475 100644
--- a/layouts/default/fullsize_iso/layout.json
+++ b/layouts/default/fullsize_iso/layout.json
@@ -1,6 +1,6 @@
-["Esc",{x:1},"F1","F2","F3","F4",{x:0.5},"F5","F6","F7","F8",{x:0.5},"F9","F10","F11","F12",{x:0.25},"PrtSc","Scroll Lock","Pause\nBreak"],
-[{y:0.5},"¬\n`","!\n1","\"\n2","£\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{x:0.25},"Insert","Home","PgUp",{x:0.25},"Num Lock","/","*","-"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",{x:0.25},"Delete","End","PgDn",{x:0.25},"7\nHome","8\n↑","9\nPgUp",{h:2},"+"],
-[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","@\n'","~\n#",{x:4.75},"4\n←","5","6\n→"],
-[{w:1.25},"Shift","|\n\\","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift",{x:1.25},"↑",{x:1.25},"1\nEnd","2\n↓","3\nPgDn",{h:2},"Enter"],
-[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"AltGr",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl",{x:0.25},"←","↓","→",{x:0.25,w:2},"0\nIns",".\nDel"]
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""],
+[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","","",{x:0.25},"","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""],
+[{w:1.75},"","","","","","","","","","","","","",{x:4.75},"","",""],
+[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""]
diff --git a/layouts/default/numpad_4x4/info.json b/layouts/default/numpad_4x4/info.json
new file mode 100644
index 000000000..79a6af771
--- /dev/null
+++ b/layouts/default/numpad_4x4/info.json
@@ -0,0 +1,29 @@
+{
+ "keyboard_name": "4x4 number pad layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_numpad_4x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0, "h":2},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2, "h":2},
+
+ {"x":0, "y":3, "w":2},
+ {"x":2, "y":3}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/numpad_4x4/layout.json b/layouts/default/numpad_4x4/layout.json
index a39ed6f46..68ecbc5ce 100644
--- a/layouts/default/numpad_4x4/layout.json
+++ b/layouts/default/numpad_4x4/layout.json
@@ -1,4 +1,4 @@
-["","","",{h:2},""],
+[{a:7},"","","",{h:2},""],
["","",""],
["","","",{h:2},""],
[{w:2},"",""]
diff --git a/layouts/default/numpad_5x4/info.json b/layouts/default/numpad_5x4/info.json
new file mode 100644
index 000000000..f14a7d7c3
--- /dev/null
+++ b/layouts/default/numpad_5x4/info.json
@@ -0,0 +1,34 @@
+{
+ "keyboard_name": "5x4 number pad layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_numpad_5x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":1, "h":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+
+ {"x":0, "y":4, "w":2},
+ {"x":2, "y":4},
+ {"x":3, "y":3, "h":2}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/numpad_5x4/layout.json b/layouts/default/numpad_5x4/layout.json
index deec0abf3..ea3a3dafa 100644
--- a/layouts/default/numpad_5x4/layout.json
+++ b/layouts/default/numpad_5x4/layout.json
@@ -1,4 +1,4 @@
-["","","",""],
+[{a:7},"","","",""],
["","","",{h:2},""],
["","",""],
["","","",{h:2},""],
diff --git a/layouts/default/numpad_5x6/info.json b/layouts/default/numpad_5x6/info.json
new file mode 100644
index 000000000..fa88c5e97
--- /dev/null
+++ b/layouts/default/numpad_5x6/info.json
@@ -0,0 +1,44 @@
+{
+ "keyboard_name": "5x6 number pad layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 6,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_numpad_5x6": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":1, "h":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4, "w":2},
+ {"x":4, "y":4},
+ {"x":5, "y":3, "h":2}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/numpad_5x6/layout.json b/layouts/default/numpad_5x6/layout.json
index 7264cd5a6..7a4f715de 100644
--- a/layouts/default/numpad_5x6/layout.json
+++ b/layouts/default/numpad_5x6/layout.json
@@ -1,6 +1,5 @@
-["","","",""],
-[{y:0.5},"","","",""],
-["","","",{h:2},""],
-["","",""],
-["","","",{h:2},""],
-[{w:2},"",""]
+[{a:7},"","","","","",""],
+["","","","","",{h:2},""],
+["","","","",""],
+["","","","","",{h:2},""],
+["","",{w:2},"",""]
diff --git a/layouts/default/numpad_6x4/info.json b/layouts/default/numpad_6x4/info.json
new file mode 100644
index 000000000..f8548621f
--- /dev/null
+++ b/layouts/default/numpad_6x4/info.json
@@ -0,0 +1,39 @@
+{
+ "keyboard_name": "6x4 number pad layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_numpad_6x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":2, "h":2},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+
+ {"x":0, "y":5, "w":2},
+ {"x":2, "y":5},
+ {"x":3, "y":4, "h":2}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/numpad_6x4/layout.json b/layouts/default/numpad_6x4/layout.json
index 7264cd5a6..ee6f4fc96 100644
--- a/layouts/default/numpad_6x4/layout.json
+++ b/layouts/default/numpad_6x4/layout.json
@@ -1,5 +1,5 @@
+[{a:7},"","","",""],
["","","",""],
-[{y:0.5},"","","",""],
["","","",{h:2},""],
["","",""],
["","","",{h:2},""],
diff --git a/layouts/default/ortho_3x10/info.json b/layouts/default/ortho_3x10/info.json
new file mode 100644
index 000000000..f28e70a3f
--- /dev/null
+++ b/layouts/default/ortho_3x10/info.json
@@ -0,0 +1,45 @@
+{
+ "keyboard_name": "3x10 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 10,
+ "height": 3,
+ "layouts": {
+ "LAYOUT_ortho_3x10": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_3x10/layout.json b/layouts/default/ortho_3x10/layout.json
index 6600f32a6..352a42263 100644
--- a/layouts/default/ortho_3x10/layout.json
+++ b/layouts/default/ortho_3x10/layout.json
@@ -1,3 +1,3 @@
-["","","","","","","","","",""],
+[{a:7},"","","","","","","","","",""],
["","","","","","","","","",""],
["","","","","","","","","",""]
diff --git a/layouts/default/ortho_4x10/info.json b/layouts/default/ortho_4x10/info.json
new file mode 100644
index 000000000..0e17121c6
--- /dev/null
+++ b/layouts/default/ortho_4x10/info.json
@@ -0,0 +1,56 @@
+{
+ "keyboard_name": "4x10 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 10,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_ortho_4x10": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":6, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_4x10/layout.json b/layouts/default/ortho_4x10/layout.json
index 86f098e27..c6f72eb77 100644
--- a/layouts/default/ortho_4x10/layout.json
+++ b/layouts/default/ortho_4x10/layout.json
@@ -1,4 +1,4 @@
-["","","","","","","","","",""],
+[{a:7},"","","","","","","","","",""],
["","","","","","","","","",""],
["","","","","","","","","",""],
["","","","","","","","","",""]
diff --git a/layouts/default/ortho_4x12/info.json b/layouts/default/ortho_4x12/info.json
new file mode 100644
index 000000000..b642cc6b4
--- /dev/null
+++ b/layouts/default/ortho_4x12/info.json
@@ -0,0 +1,64 @@
+{
+ "keyboard_name": "4x12 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_ortho_4x12": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":6, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_4x12/layout.json b/layouts/default/ortho_4x12/layout.json
index 9439b6e0b..48fb47540 100644
--- a/layouts/default/ortho_4x12/layout.json
+++ b/layouts/default/ortho_4x12/layout.json
@@ -1,4 +1,4 @@
+[{a:7},"","","","","","","","","","","",""],
["","","","","","","","","","","",""],
["","","","","","","","","","","",""],
-["","","","","","","","","","","",""],
-["","","","","","","","","","","",""] \ No newline at end of file
+["","","","","","","","","","","",""]
diff --git a/layouts/default/ortho_4x4/info.json b/layouts/default/ortho_4x4/info.json
new file mode 100644
index 000000000..2bf6376db
--- /dev/null
+++ b/layouts/default/ortho_4x4/info.json
@@ -0,0 +1,32 @@
+{
+ "keyboard_name": "4x4 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_ortho_4x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_4x4/layout.json b/layouts/default/ortho_4x4/layout.json
index ef2a09526..acecc8ab6 100644
--- a/layouts/default/ortho_4x4/layout.json
+++ b/layouts/default/ortho_4x4/layout.json
@@ -1,4 +1,4 @@
-["","","",""],
+[{a:7},"","","",""],
["","","",""],
["","","",""],
["","","",""]
diff --git a/layouts/default/ortho_5x12/info.json b/layouts/default/ortho_5x12/info.json
new file mode 100644
index 000000000..9579bf98b
--- /dev/null
+++ b/layouts/default/ortho_5x12/info.json
@@ -0,0 +1,77 @@
+{
+ "keyboard_name": "5x12 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x12": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":6, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4},
+ {"x":4, "y":4},
+ {"x":5, "y":4},
+ {"x":6, "y":4},
+ {"x":7, "y":4},
+ {"x":8, "y":4},
+ {"x":9, "y":4},
+ {"x":10, "y":4},
+ {"x":11, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_5x12/layout.json b/layouts/default/ortho_5x12/layout.json
index 9b12fa182..c67e8470d 100644
--- a/layouts/default/ortho_5x12/layout.json
+++ b/layouts/default/ortho_5x12/layout.json
@@ -1,4 +1,4 @@
-["","","","","","","","","","","",""],
+[{a:7},"","","","","","","","","","","",""],
["","","","","","","","","","","",""],
["","","","","","","","","","","",""],
["","","","","","","","","","","",""],
diff --git a/layouts/default/ortho_5x14/info.json b/layouts/default/ortho_5x14/info.json
new file mode 100644
index 000000000..c9e403d63
--- /dev/null
+++ b/layouts/default/ortho_5x14/info.json
@@ -0,0 +1,87 @@
+{
+ "keyboard_name": "5x14 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 14,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x14": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+ {"x":13, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+ {"x":13, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":6, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3},
+ {"x":12, "y":3},
+ {"x":13, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4},
+ {"x":4, "y":4},
+ {"x":5, "y":4},
+ {"x":6, "y":4},
+ {"x":7, "y":4},
+ {"x":8, "y":4},
+ {"x":9, "y":4},
+ {"x":10, "y":4},
+ {"x":11, "y":4},
+ {"x":12, "y":4},
+ {"x":13, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_5x14/layout.json b/layouts/default/ortho_5x14/layout.json
index e7703827e..f67e197d5 100644
--- a/layouts/default/ortho_5x14/layout.json
+++ b/layouts/default/ortho_5x14/layout.json
@@ -1,5 +1,5 @@
-["","","","","","","","","","","","","","",""],
-["","","","","","","","","","","","","","",""],
-["","","","","","","","","","","","","","",""],
-["","","","","","","","","","","","","","",""],
-["","","","","","","","","","","","","","",""]
+[{a:7},"","","","","","","","","","","","","",""],
+["","","","","","","","","","","","","",""],
+["","","","","","","","","","","","","",""],
+["","","","","","","","","","","","","",""],
+["","","","","","","","","","","","","",""]
diff --git a/layouts/default/ortho_5x15/info.json b/layouts/default/ortho_5x15/info.json
new file mode 100644
index 000000000..0286fd25a
--- /dev/null
+++ b/layouts/default/ortho_5x15/info.json
@@ -0,0 +1,92 @@
+{
+ "keyboard_name": "5x15 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x15": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+ {"x":13, "y":1},
+ {"x":14, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+ {"x":13, "y":2},
+ {"x":14, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":6, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3},
+ {"x":12, "y":3},
+ {"x":13, "y":3},
+ {"x":14, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4},
+ {"x":4, "y":4},
+ {"x":5, "y":4},
+ {"x":6, "y":4},
+ {"x":7, "y":4},
+ {"x":8, "y":4},
+ {"x":9, "y":4},
+ {"x":10, "y":4},
+ {"x":11, "y":4},
+ {"x":12, "y":4},
+ {"x":13, "y":4},
+ {"x":14, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_5x15/layout.json b/layouts/default/ortho_5x15/layout.json
index e7703827e..42a20657a 100644
--- a/layouts/default/ortho_5x15/layout.json
+++ b/layouts/default/ortho_5x15/layout.json
@@ -1,4 +1,4 @@
-["","","","","","","","","","","","","","",""],
+[{a:7},"","","","","","","","","","","","","","",""],
["","","","","","","","","","","","","","",""],
["","","","","","","","","","","","","","",""],
["","","","","","","","","","","","","","",""],
diff --git a/layouts/default/ortho_5x4/info.json b/layouts/default/ortho_5x4/info.json
new file mode 100644
index 000000000..c85ad02d6
--- /dev/null
+++ b/layouts/default/ortho_5x4/info.json
@@ -0,0 +1,37 @@
+{
+ "keyboard_name": "5x4 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_5x4/layout.json b/layouts/default/ortho_5x4/layout.json
index 861634477..67a96a7be 100644
--- a/layouts/default/ortho_5x4/layout.json
+++ b/layouts/default/ortho_5x4/layout.json
@@ -1,4 +1,4 @@
-["","","",""],
+[{a:7},"","","",""],
["","","",""],
["","","",""],
["","","",""],
diff --git a/layouts/default/ortho_6x4/info.json b/layouts/default/ortho_6x4/info.json
new file mode 100644
index 000000000..d9a937e73
--- /dev/null
+++ b/layouts/default/ortho_6x4/info.json
@@ -0,0 +1,42 @@
+{
+ "keyboard_name": "6x4 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_ortho_6x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4},
+
+ {"x":0, "y":5},
+ {"x":1, "y":5},
+ {"x":2, "y":5},
+ {"x":3, "y":5}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_6x4/layout.json b/layouts/default/ortho_6x4/layout.json
index 4db1bb0fd..a575306d2 100644
--- a/layouts/default/ortho_6x4/layout.json
+++ b/layouts/default/ortho_6x4/layout.json
@@ -1,6 +1,6 @@
+[{a:7},"","","",""],
["","","",""],
["","","",""],
["","","",""],
["","","",""],
-["","","",""],
-["","","",""],
+["","","",""]
diff --git a/layouts/default/planck_mit/info.json b/layouts/default/planck_mit/info.json
new file mode 100644
index 000000000..9ac260cb6
--- /dev/null
+++ b/layouts/default/planck_mit/info.json
@@ -0,0 +1,63 @@
+{
+ "keyboard_name": "Planck MIT (4x12) layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_planck_mit": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3, "w":2},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/planck_mit/layout.json b/layouts/default/planck_mit/layout.json
index 91250bb7b..b214e073c 100644
--- a/layouts/default/planck_mit/layout.json
+++ b/layouts/default/planck_mit/layout.json
@@ -1,4 +1,4 @@
-["","","","","","","","","","","",""],
+[{a:7},"","","","","","","","","","","",""],
["","","","","","","","","","","",""],
["","","","","","","","","","","",""],
["","","","","",{w:2},"","","","","",""]
diff --git a/layouts/default/tkl_ansi/info.json b/layouts/default/tkl_ansi/info.json
new file mode 100644
index 000000000..944f93d39
--- /dev/null
+++ b/layouts/default/tkl_ansi/info.json
@@ -0,0 +1,105 @@
+{
+ "keyboard_name": "Tenkeyless ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 18.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_tkl_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":15.25, "y":2.25},
+ {"x":16.25, "y":2.25},
+ {"x":17.25, "y":2.25},
+
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/tkl_ansi/layout.json b/layouts/default/tkl_ansi/layout.json
index 54492b98f..dda9ae58a 100644
--- a/layouts/default/tkl_ansi/layout.json
+++ b/layouts/default/tkl_ansi/layout.json
@@ -1,6 +1,6 @@
-["Esc",{x:1},"F1","F2","F3","F4",{x:0.5},"F5","F6","F7","F8",{x:0.5},"F9","F10","F11","F12",{x:0.25},"PrtSc","Scroll Lock","Pause\nBreak"],
-[{y:0.5},"~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{x:0.25},"Insert","Home","PgUp"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\",{x:0.25},"Delete","End","PgDn"],
-[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
-[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift",{x:1.25},"↑"],
-[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl",{x:0.25},"←","↓","→"]
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""],
+[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""]
diff --git a/layouts/default/tkl_iso/info.json b/layouts/default/tkl_iso/info.json
new file mode 100644
index 000000000..524f28c88
--- /dev/null
+++ b/layouts/default/tkl_iso/info.json
@@ -0,0 +1,106 @@
+{
+ "keyboard_name": "Tenkeyless ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 18.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_tkl_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":15.25, "y":2.25},
+ {"x":16.25, "y":2.25},
+ {"x":17.25, "y":2.25},
+
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25},
+ {"x":13.75, "y":2.25, "w":1.25, "h":2},
+
+ {"x":0, "y":4.25, "w":1.25},
+ {"x":1.25, "y":4.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/tkl_iso/layout.json b/layouts/default/tkl_iso/layout.json
index d0b8d5d3d..b551da6c0 100644
--- a/layouts/default/tkl_iso/layout.json
+++ b/layouts/default/tkl_iso/layout.json
@@ -1,6 +1,6 @@
-["Esc",{x:1},"F1","F2","F3","F4",{x:0.5},"F5","F6","F7","F8",{x:0.5},"F9","F10","F11","F12",{x:0.25},"PrtSc","Scroll Lock","Pause\nBreak"],
-[{y:0.5},"¬\n`","!\n1","\"\n2","£\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{x:0.25},"Insert","Home","PgUp"],
-[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",{x:0.25},"Delete","End","PgDn"],
-[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","@\n'","~\n#"],
-[{w:1.25},"Shift","|\n\\","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift",{x:1.25},"↑"],
-[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"AltGr",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl",{x:0.25},"←","↓","→"]
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""],
+[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""],
+[{w:1.75},"","","","","","","","","","","","",""],
+[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""]