diff --git a/keyboards/40percentclub/5x5/info.json b/keyboards/40percentclub/5x5/info.json
index 1c1df8eda9..1e7bac7a69 100644
--- a/keyboards/40percentclub/5x5/info.json
+++ b/keyboards/40percentclub/5x5/info.json
@@ -1,5 +1,5 @@
{
- "keyboard_name": "40percent.club 4x4",
+ "keyboard_name": "40percent.club 5x5",
"url": "",
"maintainer": "qmk",
"height": 4,
diff --git a/keyboards/40percentclub/6lit/rules.mk b/keyboards/40percentclub/6lit/rules.mk
index 8d32d2c3fb..7ff281ecc6 100644
--- a/keyboards/40percentclub/6lit/rules.mk
+++ b/keyboards/40percentclub/6lit/rules.mk
@@ -32,3 +32,5 @@ AUDIO_ENABLE = no # Audio output on port C6
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
+
+LAYOUTS = ortho_2x3 ortho_2x6
diff --git a/keyboards/40percentclub/sixpack/config.h b/keyboards/40percentclub/sixpack/config.h
index db91ca7b80..2ec676018c 100644
--- a/keyboards/40percentclub/sixpack/config.h
+++ b/keyboards/40percentclub/sixpack/config.h
@@ -40,8 +40,6 @@ along with this program. If not, see .
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
-// #define MATRIX_ROW_PINS { B0 } // B0 equivalents the ground pin
-// #define MATRIX_COL_PINS { E6, D7, C6, D4 }
#define DIRECT_PINS { \
{ D4, C6, D7 }, \
{ E6, B4, B5 } \
@@ -56,6 +54,11 @@ along with this program. If not, see .
#define BACKLIGHT_LEVELS 6
#define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row
+/* LED Indicators */
+#define LED_PIN_ON_STATE 0
+#define LED_CAPS_LOCK_PIN B0 // RX Led
+#define LED_NUM_LOCK_PIN D5 // TX Led
+
// #define RGB_DI_PIN B1 // PB1 on expansion connector
// #ifdef RGB_DI_PIN
// #define RGBLED_NUM 16
diff --git a/keyboards/40percentclub/sixpack/info.json b/keyboards/40percentclub/sixpack/info.json
index 3c78e26fbc..0d85f09257 100644
--- a/keyboards/40percentclub/sixpack/info.json
+++ b/keyboards/40percentclub/sixpack/info.json
@@ -1,5 +1,5 @@
{
- "keyboard_name": "sixpack",
+ "keyboard_name": "Six Pack",
"url": "https://www.40percent.club/2017/05/six-pack-11.html",
"maintainer": "qmk",
"width": 3,
diff --git a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c
index f3268a22ab..e2eaaa1d0a 100644
--- a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c
+++ b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c
@@ -33,9 +33,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
- [4] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
- [5] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
};
diff --git a/keyboards/40percentclub/sixpack/rules.mk b/keyboards/40percentclub/sixpack/rules.mk
index 9d7d9a2cf0..84e3ea5ea0 100644
--- a/keyboards/40percentclub/sixpack/rules.mk
+++ b/keyboards/40percentclub/sixpack/rules.mk
@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = ortho_2x3
diff --git a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c
index b4fcfc1bc1..63fbb1b94c 100644
--- a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c
+++ b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c
@@ -24,7 +24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_ortho_2x3(
KC_F1, KC_F2, KC_F3,
- KC_F4, KC_F5,KC_F6
+ KC_F4, KC_F5, KC_F6
),
};
-
diff --git a/keyboards/boardsource/holiday/spooky/rules.mk b/keyboards/boardsource/holiday/spooky/rules.mk
index d23e955126..2fd07c2415 100644
--- a/keyboards/boardsource/holiday/spooky/rules.mk
+++ b/keyboards/boardsource/holiday/spooky/rules.mk
@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = ortho_2x3
diff --git a/keyboards/handwired/stream_cheap/2x3/readme.md b/keyboards/handwired/stream_cheap/2x3/readme.md
new file mode 100644
index 0000000000..69ce022f6d
--- /dev/null
+++ b/keyboards/handwired/stream_cheap/2x3/readme.md
@@ -0,0 +1,3 @@
+# Stream Cheap
+
+An ortholinear macropad, 2x3 configuration.
diff --git a/keyboards/handwired/stream_cheap/2x3/rules.mk b/keyboards/handwired/stream_cheap/2x3/rules.mk
index e4ffb10d04..2d79fa4352 100644
--- a/keyboards/handwired/stream_cheap/2x3/rules.mk
+++ b/keyboards/handwired/stream_cheap/2x3/rules.mk
@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = ortho_2x3
diff --git a/keyboards/handwired/stream_cheap/2x4/readme.md b/keyboards/handwired/stream_cheap/2x4/readme.md
new file mode 100644
index 0000000000..d15fcaeaf2
--- /dev/null
+++ b/keyboards/handwired/stream_cheap/2x4/readme.md
@@ -0,0 +1,3 @@
+# Stream Cheap
+
+An ortholinear macropad, 2x4 configuration.
diff --git a/keyboards/handwired/stream_cheap/2x5/readme.md b/keyboards/handwired/stream_cheap/2x5/readme.md
new file mode 100644
index 0000000000..99aab61e4b
--- /dev/null
+++ b/keyboards/handwired/stream_cheap/2x5/readme.md
@@ -0,0 +1,3 @@
+# Stream Cheap
+
+An ortholinear macropad, 2x5 configuration.
diff --git a/keyboards/sixkeyboard/info.json b/keyboards/sixkeyboard/info.json
index 55239fc6cc..17815afa1b 100644
--- a/keyboards/sixkeyboard/info.json
+++ b/keyboards/sixkeyboard/info.json
@@ -5,7 +5,7 @@
"width": 3,
"height": 2,
"layouts": {
- "LAYOUT": {
+ "LAYOUT_ortho_2x3": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}]
}
}
diff --git a/keyboards/sixkeyboard/keymaps/default/keymap.c b/keyboards/sixkeyboard/keymaps/default/keymap.c
index 3b39892a93..0c9b519353 100644
--- a/keyboards/sixkeyboard/keymaps/default/keymap.c
+++ b/keyboards/sixkeyboard/keymaps/default/keymap.c
@@ -3,7 +3,7 @@
#include "matrix.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
+ [0] = LAYOUT_ortho_2x3(
KC_A, KC_B, KC_C, \
KC_D, KC_E, KC_F \
)
diff --git a/keyboards/sixkeyboard/keymaps/via/keymap.c b/keyboards/sixkeyboard/keymaps/via/keymap.c
index fed341595c..39282b9b5a 100644
--- a/keyboards/sixkeyboard/keymaps/via/keymap.c
+++ b/keyboards/sixkeyboard/keymaps/via/keymap.c
@@ -17,22 +17,22 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
+ [0] = LAYOUT_ortho_2x3(
KC_A, KC_B, KC_C,
KC_D, KC_E, KC_F
),
- [1] = LAYOUT(
+ [1] = LAYOUT_ortho_2x3(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
- [2] = LAYOUT(
+ [2] = LAYOUT_ortho_2x3(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
- [3] = LAYOUT(
+ [3] = LAYOUT_ortho_2x3(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
)
diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk
index 889ea2fd10..0e0239af0f 100644
--- a/keyboards/sixkeyboard/rules.mk
+++ b/keyboards/sixkeyboard/rules.mk
@@ -28,4 +28,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
CUSTOM_MATRIX = yes
-SRC = matrix.c
+SRC += matrix.c
+LAYOUTS = ortho_2x3
diff --git a/keyboards/sixkeyboard/sixkeyboard.h b/keyboards/sixkeyboard/sixkeyboard.h
index e0eb896ce4..353e2a78c8 100644
--- a/keyboards/sixkeyboard/sixkeyboard.h
+++ b/keyboards/sixkeyboard/sixkeyboard.h
@@ -22,7 +22,7 @@
* │ D │ E │ F │
* └───┴───┴───┘
*/
-#define LAYOUT( \
+#define LAYOUT_ortho_2x3( \
k00, k01, k02, \
k10, k11, k12 \
) { \
diff --git a/layouts/community/ortho_1x4/readme.md b/layouts/community/ortho_1x4/readme.md
new file mode 100644
index 0000000000..6ef30dd0a6
--- /dev/null
+++ b/layouts/community/ortho_1x4/readme.md
@@ -0,0 +1,3 @@
+# ortho_1x4
+
+ LAYOUT_ortho_1x4
diff --git a/layouts/community/ortho_2x3/layout.json b/layouts/community/ortho_2x3/layout.json
new file mode 100644
index 0000000000..255792193e
--- /dev/null
+++ b/layouts/community/ortho_2x3/layout.json
@@ -0,0 +1,2 @@
+["","",""],
+["","",""]
diff --git a/layouts/community/ortho_2x3/readme.md b/layouts/community/ortho_2x3/readme.md
new file mode 100644
index 0000000000..47ae0f6864
--- /dev/null
+++ b/layouts/community/ortho_2x3/readme.md
@@ -0,0 +1,3 @@
+# ortho_2x3
+
+ LAYOUT_ortho_2x3
diff --git a/layouts/community/ortho_2x6/layout.json b/layouts/community/ortho_2x6/layout.json
new file mode 100644
index 0000000000..ce609ee590
--- /dev/null
+++ b/layouts/community/ortho_2x6/layout.json
@@ -0,0 +1,2 @@
+["","","","","",""],
+["","","","","",""]
diff --git a/layouts/community/ortho_2x6/readme.md b/layouts/community/ortho_2x6/readme.md
new file mode 100644
index 0000000000..5e7c148a72
--- /dev/null
+++ b/layouts/community/ortho_2x6/readme.md
@@ -0,0 +1,3 @@
+# ortho_2x6
+
+ LAYOUT_ortho_2x6
diff --git a/layouts/community/ortho_5x5/layout.json b/layouts/community/ortho_5x5/layout.json
index ab4eef8e1b..71f77df6ed 100644
--- a/layouts/community/ortho_5x5/layout.json
+++ b/layouts/community/ortho_5x5/layout.json
@@ -1 +1,5 @@
-["","","","",""],["","","","",""],["","","","",""],["","","","",""],["","","","",""]
+["","","","",""],
+["","","","",""],
+["","","","",""],
+["","","","",""],
+["","","","",""]
diff --git a/layouts/default/ortho_2x3/default_ortho_2x3/keymap.c b/layouts/default/ortho_2x3/default_ortho_2x3/keymap.c
new file mode 100644
index 0000000000..a38146d020
--- /dev/null
+++ b/layouts/default/ortho_2x3/default_ortho_2x3/keymap.c
@@ -0,0 +1,15 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┐
+ * │ A │ B │ C │
+ * ├───┼───┼───┤
+ * │ D │ E │ F │
+ * └───┴───┴───┘
+ */
+ [0] = LAYOUT_ortho_2x3(
+ KC_A, KC_B, KC_C,
+ KC_D, KC_E, KC_F
+ )
+};
diff --git a/layouts/default/ortho_2x3/info.json b/layouts/default/ortho_2x3/info.json
new file mode 100644
index 0000000000..d39e5cc8d4
--- /dev/null
+++ b/layouts/default/ortho_2x3/info.json
@@ -0,0 +1,20 @@
+{
+ "keyboard_name": "2x3 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 3,
+ "height": 2,
+ "layouts": {
+ "LAYOUT_ortho_2x3": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_2x3/layout.json b/layouts/default/ortho_2x3/layout.json
new file mode 100644
index 0000000000..255792193e
--- /dev/null
+++ b/layouts/default/ortho_2x3/layout.json
@@ -0,0 +1,2 @@
+["","",""],
+["","",""]
diff --git a/layouts/default/ortho_2x3/readme.md b/layouts/default/ortho_2x3/readme.md
new file mode 100644
index 0000000000..47ae0f6864
--- /dev/null
+++ b/layouts/default/ortho_2x3/readme.md
@@ -0,0 +1,3 @@
+# ortho_2x3
+
+ LAYOUT_ortho_2x3
diff --git a/layouts/default/ortho_2x6/default_ortho_2x6/keymap.c b/layouts/default/ortho_2x6/default_ortho_2x6/keymap.c
new file mode 100644
index 0000000000..1c8a6b7ef9
--- /dev/null
+++ b/layouts/default/ortho_2x6/default_ortho_2x6/keymap.c
@@ -0,0 +1,15 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┐
+ * │ A │ B │ C │ D │ E │ F │
+ * ├───┼───┼───┼───┼───┼───┤
+ * │ G │ H │ I │ J │ K │ L │
+ * └───┴───┴───┴───┴───┴───┘
+ */
+ [0] = LAYOUT_ortho_2x6(
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F,
+ KC_G, KC_H, KC_I, KC_J, KC_K, KC_L
+ )
+};
diff --git a/layouts/default/ortho_2x6/info.json b/layouts/default/ortho_2x6/info.json
new file mode 100644
index 0000000000..5a421ed903
--- /dev/null
+++ b/layouts/default/ortho_2x6/info.json
@@ -0,0 +1,26 @@
+{
+ "keyboard_name": "2x6 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 6,
+ "height": 2,
+ "layouts": {
+ "LAYOUT_ortho_2x6": {
+ "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":5, "y":1}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_2x6/layout.json b/layouts/default/ortho_2x6/layout.json
new file mode 100644
index 0000000000..ce609ee590
--- /dev/null
+++ b/layouts/default/ortho_2x6/layout.json
@@ -0,0 +1,2 @@
+["","","","","",""],
+["","","","","",""]
diff --git a/layouts/default/ortho_2x6/readme.md b/layouts/default/ortho_2x6/readme.md
new file mode 100644
index 0000000000..5e7c148a72
--- /dev/null
+++ b/layouts/default/ortho_2x6/readme.md
@@ -0,0 +1,3 @@
+# ortho_2x6
+
+ LAYOUT_ortho_2x6
diff --git a/layouts/default/ortho_5x10/default_ortho_5x10/keymap.c b/layouts/default/ortho_5x10/default_ortho_5x10/keymap.c
new file mode 100644
index 0000000000..1f935473e2
--- /dev/null
+++ b/layouts/default/ortho_5x10/default_ortho_5x10/keymap.c
@@ -0,0 +1,24 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [0] = LAYOUT_ortho_5x10(
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J
+ )
+};
diff --git a/layouts/default/ortho_5x10/info.json b/layouts/default/ortho_5x10/info.json
new file mode 100644
index 0000000000..bd79e6ad91
--- /dev/null
+++ b/layouts/default/ortho_5x10/info.json
@@ -0,0 +1,67 @@
+{
+ "keyboard_name": "5x10 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 10,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x10": {
+ "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},
+
+ {"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},
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_5x10/layout.json b/layouts/default/ortho_5x10/layout.json
new file mode 100644
index 0000000000..79dde3e742
--- /dev/null
+++ b/layouts/default/ortho_5x10/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""]
diff --git a/layouts/default/ortho_5x10/readme.md b/layouts/default/ortho_5x10/readme.md
new file mode 100644
index 0000000000..5c94f8eca8
--- /dev/null
+++ b/layouts/default/ortho_5x10/readme.md
@@ -0,0 +1,3 @@
+# ortho_5x10
+
+ LAYOUT_ortho_5x10
diff --git a/layouts/default/ortho_5x5/info.json b/layouts/default/ortho_5x5/info.json
new file mode 100644
index 0000000000..ecc41d9437
--- /dev/null
+++ b/layouts/default/ortho_5x5/info.json
@@ -0,0 +1,42 @@
+{
+ "keyboard_name": "5x5 ortholinear layout",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 5,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x5": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "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":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},
+ {"x":3, "y":4},
+ {"x":4, "y":4}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/ortho_5x5/layout.json b/layouts/default/ortho_5x5/layout.json
new file mode 100644
index 0000000000..71f77df6ed
--- /dev/null
+++ b/layouts/default/ortho_5x5/layout.json
@@ -0,0 +1,5 @@
+["","","","",""],
+["","","","",""],
+["","","","",""],
+["","","","",""],
+["","","","",""]
diff --git a/layouts/default/ortho_5x5/readme.md b/layouts/default/ortho_5x5/readme.md
new file mode 100644
index 0000000000..3dd75765d1
--- /dev/null
+++ b/layouts/default/ortho_5x5/readme.md
@@ -0,0 +1,3 @@
+# ortho_5x5
+
+ LAYOUT_ortho_5x5
\ No newline at end of file
diff --git a/layouts/default/readme.md b/layouts/default/readme.md
index eca77e6930..1acc16d94f 100644
--- a/layouts/default/readme.md
+++ b/layouts/default/readme.md
@@ -660,6 +660,24 @@ LAYOUT_numpad_6x4
### Ortholinear Layouts
+```
+LAYOUT_ortho_2x3
+┌───┬───┬───┐
+│ │ │ │
+├───┼───┼───┤
+│ │ │ │
+└───┴───┴───┘
+```
+
+```
+LAYOUT_ortho_2x6
+┌───┬───┬───┬───┬───┬───┐
+│ │ │ │ │ │ │
+├───┼───┼───┼───┼───┼───┤
+│ │ │ │ │ │ │
+└───┴───┴───┴───┴───┴───┘
+```
+
```
LAYOUT_ortho_3x10
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
@@ -710,6 +728,36 @@ LAYOUT_ortho_4x4
└───┴───┴───┴───┘
```
+```
+LAYOUT_ortho_5x5
+┌───┬───┬───┬───┬───┐
+│ │ │ │ │ │
+├───┼───┼───┼───┼───┤
+│ │ │ │ │ │
+├───┼───┼───┼───┼───┤
+│ │ │ │ │ │
+├───┼───┼───┼───┼───┤
+│ │ │ │ │ │
+├───┼───┼───┼───┼───┤
+│ │ │ │ │ │
+└───┴───┴───┴───┴───┘
+```
+
+```
+LAYOUT_ortho_5x10
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │
+├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │
+├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │
+├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │
+├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │
+└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+```
+
```
LAYOUT_ortho_5x12
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐