From 05dfe9f9c5ee370d85ce25f1adc0d7e2dd94fa96 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Tue, 19 Sep 2023 23:35:37 -0700
Subject: [PATCH] Alchemist Keyboards OGRN Layout Addition (#22080)

* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Add `LAYOUT_ortho_5x4`

[enhancement]

* Touch-up keymaps

- update grid-alignment (layer-to-layer consistency)
- fix box drawings

[style]

* Extend Community Layout support

Add `ortho_5x4` to supported Community Layouts.

[enhancement]
---
 keyboards/akb/ogrn/info.json                | 45 ++++++++++++++++++---
 keyboards/akb/ogrn/keymaps/default/keymap.c | 12 +++---
 keyboards/akb/ogrn/keymaps/via/keymap.c     | 10 ++---
 keyboards/akb/ogrn/matrix_diagram.md        | 18 +++++++++
 4 files changed, 68 insertions(+), 17 deletions(-)
 create mode 100644 keyboards/akb/ogrn/matrix_diagram.md

diff --git a/keyboards/akb/ogrn/info.json b/keyboards/akb/ogrn/info.json
index 42efe55c2a..780c353747 100644
--- a/keyboards/akb/ogrn/info.json
+++ b/keyboards/akb/ogrn/info.json
@@ -30,29 +30,62 @@
         "pid": "0x4F4E",
         "vid": "0x414B"
     },
-  "community_layouts": [
-    "numpad_5x4"
-  ],
+    "community_layouts": [
+        "ortho_5x4",
+        "numpad_5x4"
+    ],
     "layouts": {
+        "LAYOUT_ortho_5x4": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 4}
+            ]
+        },
         "LAYOUT_numpad_5x4": {
             "layout": [
                 {"matrix": [0, 0], "x": 0, "y": 0},
                 {"matrix": [0, 1], "x": 1, "y": 0},
                 {"matrix": [0, 2], "x": 2, "y": 0},
                 {"matrix": [0, 3], "x": 3, "y": 0},
+
                 {"matrix": [1, 0], "x": 0, "y": 1},
                 {"matrix": [1, 1], "x": 1, "y": 1},
                 {"matrix": [1, 2], "x": 2, "y": 1},
+
                 {"matrix": [2, 0], "x": 0, "y": 2},
                 {"matrix": [2, 1], "x": 1, "y": 2},
                 {"matrix": [2, 2], "x": 2, "y": 2},
-                {"h": 2, "matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1, "h": 2},
+
                 {"matrix": [3, 0], "x": 0, "y": 3},
                 {"matrix": [3, 1], "x": 1, "y": 3},
                 {"matrix": [3, 2], "x": 2, "y": 3},
-                {"matrix": [4, 0], "w": 2, "x": 0, "y": 4},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 2},
                 {"matrix": [4, 2], "x": 2, "y": 4},
-                {"h": 2, "matrix": [3, 3], "x": 3, "y": 3}
+                {"matrix": [3, 3], "x": 3, "y": 3, "h": 2}
             ]
         }
     }
diff --git a/keyboards/akb/ogrn/keymaps/default/keymap.c b/keyboards/akb/ogrn/keymaps/default/keymap.c
index 35a275d055..f3901ec7fb 100644
--- a/keyboards/akb/ogrn/keymaps/default/keymap.c
+++ b/keyboards/akb/ogrn/keymaps/default/keymap.c
@@ -6,7 +6,7 @@
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     /*
      * ┌───┬───┬───┬───┐
-     * │TG1│ / │ * │ - │
+     * │NUM│ / │ * │ - │
      * ├───┼───┼───┼───┤
      * │ 7 │ 8 │ 9 │   │
      * ├───┼───┼───┤ + │
@@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_P7,   KC_P8,   KC_P9,
         KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
         KC_P1,   KC_P2,   KC_P3,
-        KC_P0,   KC_PDOT,          KC_PENT
+        KC_P0,            KC_PDOT, KC_PENT
     ),
 
     /*
      * ┌───┬───┬───┬───┐
-     * │TG1│ / │ * │ - │
-     * ┌───┬───┬───┐───┤
+     * │NUM│ / │ * │ - │
+     * ├───┼───┼───┼───┤
      * │Hom│ ↑ │PgU│   │
      * ├───┼───┼───┤ + │
      * │ ← │   │ → │   │
-     * ├───┼───┼───┤───┤
+     * ├───┼───┼───┼───┤
      * │End│ ↓ │PgD│   │
      * ├───┴───┼───┤Ent│
      * │Insert │Del│   │
-     * └───────┴───┘───┘
+     * └───────┴───┴───┘
      */
     [1] = LAYOUT_numpad_5x4(
         _______, _______, _______, _______,
diff --git a/keyboards/akb/ogrn/keymaps/via/keymap.c b/keyboards/akb/ogrn/keymaps/via/keymap.c
index 7aec87a623..f3901ec7fb 100644
--- a/keyboards/akb/ogrn/keymaps/via/keymap.c
+++ b/keyboards/akb/ogrn/keymaps/via/keymap.c
@@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_P7,   KC_P8,   KC_P9,
         KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
         KC_P1,   KC_P2,   KC_P3,
-        KC_P0,   KC_PDOT,          KC_PENT
+        KC_P0,            KC_PDOT, KC_PENT
     ),
 
     /*
      * ┌───┬───┬───┬───┐
-     * │   │ / │ * │ - │
-     * ┌───┬───┬───┐───┤
+     * │NUM│ / │ * │ - │
+     * ├───┼───┼───┼───┤
      * │Hom│ ↑ │PgU│   │
      * ├───┼───┼───┤ + │
      * │ ← │   │ → │   │
-     * ├───┼───┼───┤───┤
+     * ├───┼───┼───┼───┤
      * │End│ ↓ │PgD│   │
      * ├───┴───┼───┤Ent│
      * │Insert │Del│   │
-     * └───────┴───┘───┘
+     * └───────┴───┴───┘
      */
     [1] = LAYOUT_numpad_5x4(
         _______, _______, _______, _______,
diff --git a/keyboards/akb/ogrn/matrix_diagram.md b/keyboards/akb/ogrn/matrix_diagram.md
new file mode 100644
index 0000000000..03e4f99def
--- /dev/null
+++ b/keyboards/akb/ogrn/matrix_diagram.md
@@ -0,0 +1,18 @@
+# Matrix Diagram for Alchemist Keyboards OGRN
+
+```
+        ┌───┬───┬───┬───┐
+        │00 │01 │02 │03 │
+┌───┐   ├───┼───┼───┼───┤   ┌───┐
+│   │   │10 │11 │12 │13 │   │   │
+│10 │   ├───┼───┼───┼───┤   │13 │ 2u Numpad Plus
+│   │   │20 │21 │22 │23 │   │   │
+├───┤   ├───┼───┼───┼───┤   ├───┤
+│   │   │30 │31 │32 │33 │   │   │
+│30 │   ├───┼───┼───┼───┤   │33 │ 2u Numpad Enter
+│   │   │40 │41 │42 │43 │   │   │
+└───┘   └───┴───┴───┴───┘   └───┘
+        ┌───────┬───────┐
+        │41     │42     │
+        └───────┴───────┘
+```