aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorReFil <[email protected]>2024-09-09 12:57:02 +0100
committerPete Johanson <[email protected]>2024-09-26 11:53:24 -0600
commit0a25fa2f95c0d7f5c93ad15ff12f634b11ec2537 (patch)
tree8cb7a26535d3df8c4111363365a793c4740765f7
parent1f900bfc9cd8d8946c8855d1ca869dffa45e2a1f (diff)
downloadzmk-0a25fa2f95c0d7f5c93ad15ff12f634b11ec2537.tar.gz
zmk-0a25fa2f95c0d7f5c93ad15ff12f634b11ec2537.zip
feat(boards): add common keyboard layouts
-rw-r--r--app/dts/layouts/common/60percent/60percent.dtsi72
-rw-r--r--app/dts/layouts/common/60percent/all1u.dtsi77
-rw-r--r--app/dts/layouts/common/60percent/ansi.dtsi72
-rw-r--r--app/dts/layouts/common/60percent/hhkb.dtsi71
-rw-r--r--app/dts/layouts/common/60percent/iso.dtsi73
-rw-r--r--app/dts/layouts/common/65percent/65percent.dtsi72
-rw-r--r--app/dts/layouts/common/65percent/all1u.dtsi85
-rw-r--r--app/dts/layouts/common/65percent/ansi.dtsi79
-rw-r--r--app/dts/layouts/common/65percent/hhkb.dtsi76
-rw-r--r--app/dts/layouts/common/65percent/iso.dtsi80
-rw-r--r--app/dts/layouts/common/75percent/75percent.dtsi59
-rw-r--r--app/dts/layouts/common/75percent/all1u.dtsi98
-rw-r--r--app/dts/layouts/common/75percent/ansi.dtsi95
-rw-r--r--app/dts/layouts/common/75percent/iso.dtsi96
-rw-r--r--app/dts/layouts/common/ortho_4x12/1x2u.dtsi58
-rw-r--r--app/dts/layouts/common/ortho_4x12/2x2u.dtsi57
-rw-r--r--app/dts/layouts/common/ortho_4x12/all1u.dtsi59
-rw-r--r--app/dts/layouts/common/ortho_4x12/ortho_4x12.dtsi53
-rw-r--r--app/dts/layouts/common/ortho_5x12/1x2u.dtsi70
-rw-r--r--app/dts/layouts/common/ortho_5x12/2x2u.dtsi69
-rw-r--r--app/dts/layouts/common/ortho_5x12/all1u.dtsi71
-rw-r--r--app/dts/layouts/common/ortho_5x12/ortho_5x12.dtsi56
-rw-r--r--app/dts/layouts/common/tkl/ansi.dtsi98
23 files changed, 1696 insertions, 0 deletions
diff --git a/app/dts/layouts/common/60percent/60percent.dtsi b/app/dts/layouts/common/60percent/60percent.dtsi
new file mode 100644
index 0000000000..03f42e2a1b
--- /dev/null
+++ b/app/dts/layouts/common/60percent/60percent.dtsi
@@ -0,0 +1,72 @@
+#include <layouts/common/60percent/ansi.dtsi>
+#include <layouts/common/60percent/iso.dtsi>
+#include <layouts/common/60percent/all1u.dtsi>
+#include <layouts/common/60percent/hhkb.dtsi>
+
+&layout_60_ansi {
+ status = "disabled";
+};
+
+&layout_60_iso {
+ status = "disabled";
+};
+
+&layout_60_all1u {
+ status = "disabled";
+};
+
+&layout_60_hhkb {
+ status = "disabled";
+};
+
+/ {
+ layouts_common_60_percent_position_map: layouts_common_60_percent_position_map {
+ compatible = "zmk,physical-layout-position-map";
+
+ complete;
+
+ layout_60_all1u {
+ physical-layout = <&layout_60_all1u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14>
+ , <15 16 17 18 19 20 21 22 23 24 25 26 27 28>
+ , <29 30 31 32 33 34 35 36 37 38 39 40 41>
+ , <42 43 44 45 46 47 48 49 50 51 52 53 54 55 56>
+ , <57 58 59 60 61 62 64 63 65>
+ ;
+ };
+
+ layout_60_ansi {
+ physical-layout = <&layout_60_ansi>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 61>
+ , <14 15 16 17 18 19 20 21 22 23 24 25 26 27>
+ , <28 29 30 31 32 33 34 35 36 37 38 39 40>
+ , <41 62 42 43 44 45 46 47 48 49 50 51 52 63 64>
+ , <53 54 55 56 57 58 60 59 65>
+ ;
+ };
+
+ layout_60_hhkb {
+ physical-layout = <&layout_60_hhkb>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 60>
+ , <14 15 16 17 18 19 20 21 22 23 24 25 26 27>
+ , <28 29 30 31 32 33 34 35 36 37 38 39 40>
+ , <41 61 42 43 44 45 46 47 48 49 50 51 52 62 63>
+ , <53 54 55 56 57 58 59 64 65>
+ ;
+ };
+
+ layout_60_iso {
+ physical-layout = <&layout_60_iso>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 62>
+ , <14 15 16 17 18 19 20 21 22 23 24 25 26 63>
+ , <27 28 29 30 31 32 33 34 35 36 37 38 40>
+ , <41 42 43 44 45 46 47 48 49 50 51 52 53 64 65>
+ , <54 55 56 57 58 59 61 60 39>
+ ;
+ };
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/60percent/all1u.dtsi b/app/dts/layouts/common/60percent/all1u.dtsi
new file mode 100644
index 0000000000..47e3ad3824
--- /dev/null
+++ b/app/dts/layouts/common/60percent/all1u.dtsi
@@ -0,0 +1,77 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_60_all1u: layout_60_all1u {
+ compatible = "zmk,physical-layout";
+ display-name = "60% All 1U";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 100 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1400 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 150 100 1350 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 225 100 1275 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 100 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ , <&key_physical_attrs 100 100 1200 300 0 0 0>
+ , <&key_physical_attrs 100 100 1300 300 0 0 0>
+ , <&key_physical_attrs 100 100 1400 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 125 100 125 400 0 0 0>
+ , <&key_physical_attrs 125 100 250 400 0 0 0>
+ , <&key_physical_attrs 625 100 375 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1200 400 0 0 0>
+ , <&key_physical_attrs 100 100 1300 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/60percent/ansi.dtsi b/app/dts/layouts/common/60percent/ansi.dtsi
new file mode 100644
index 0000000000..2c8074bc72
--- /dev/null
+++ b/app/dts/layouts/common/60percent/ansi.dtsi
@@ -0,0 +1,72 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_60_ansi: layout_60_ansi {
+ compatible = "zmk,physical-layout";
+ display-name = "60% ANSI";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 200 100 1300 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 150 100 1350 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 225 100 1275 200 0 0 0>
+ , <&key_physical_attrs 225 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 225 300 0 0 0>
+ , <&key_physical_attrs 100 100 325 300 0 0 0>
+ , <&key_physical_attrs 100 100 425 300 0 0 0>
+ , <&key_physical_attrs 100 100 525 300 0 0 0>
+ , <&key_physical_attrs 100 100 625 300 0 0 0>
+ , <&key_physical_attrs 100 100 725 300 0 0 0>
+ , <&key_physical_attrs 100 100 825 300 0 0 0>
+ , <&key_physical_attrs 100 100 925 300 0 0 0>
+ , <&key_physical_attrs 100 100 1025 300 0 0 0>
+ , <&key_physical_attrs 100 100 1125 300 0 0 0>
+ , <&key_physical_attrs 275 100 1225 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 125 100 125 400 0 0 0>
+ , <&key_physical_attrs 125 100 250 400 0 0 0>
+ , <&key_physical_attrs 625 100 375 400 0 0 0>
+ , <&key_physical_attrs 125 100 1000 400 0 0 0>
+ , <&key_physical_attrs 125 100 1125 400 0 0 0>
+ , <&key_physical_attrs 125 100 1250 400 0 0 0>
+ , <&key_physical_attrs 125 100 1375 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/60percent/hhkb.dtsi b/app/dts/layouts/common/60percent/hhkb.dtsi
new file mode 100644
index 0000000000..f14e72be46
--- /dev/null
+++ b/app/dts/layouts/common/60percent/hhkb.dtsi
@@ -0,0 +1,71 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_60_hhkb: layout_60_hhkb {
+ compatible = "zmk,physical-layout";
+ display-name = "60% HHKB/Tsangan layout";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 200 100 1300 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 150 100 1350 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 225 100 1275 200 0 0 0>
+ , <&key_physical_attrs 225 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 225 300 0 0 0>
+ , <&key_physical_attrs 100 100 325 300 0 0 0>
+ , <&key_physical_attrs 100 100 425 300 0 0 0>
+ , <&key_physical_attrs 100 100 525 300 0 0 0>
+ , <&key_physical_attrs 100 100 625 300 0 0 0>
+ , <&key_physical_attrs 100 100 725 300 0 0 0>
+ , <&key_physical_attrs 100 100 825 300 0 0 0>
+ , <&key_physical_attrs 100 100 925 300 0 0 0>
+ , <&key_physical_attrs 100 100 1025 300 0 0 0>
+ , <&key_physical_attrs 100 100 1125 300 0 0 0>
+ , <&key_physical_attrs 275 100 1225 300 0 0 0>
+ , <&key_physical_attrs 150 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 150 400 0 0 0>
+ , <&key_physical_attrs 150 100 250 400 0 0 0>
+ , <&key_physical_attrs 700 100 400 400 0 0 0>
+ , <&key_physical_attrs 150 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1250 400 0 0 0>
+ , <&key_physical_attrs 150 100 1350 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/60percent/iso.dtsi b/app/dts/layouts/common/60percent/iso.dtsi
new file mode 100644
index 0000000000..2e3a00d820
--- /dev/null
+++ b/app/dts/layouts/common/60percent/iso.dtsi
@@ -0,0 +1,73 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_60_iso: layout_60_iso {
+ compatible = "zmk,physical-layout";
+ display-name = "60% ISO";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 200 100 1300 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 100 100 1275 200 0 0 0>
+ , <&key_physical_attrs 125 200 1375 100 0 0 0>
+ , <&key_physical_attrs 125 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 125 300 0 0 0>
+ , <&key_physical_attrs 100 100 225 300 0 0 0>
+ , <&key_physical_attrs 100 100 325 300 0 0 0>
+ , <&key_physical_attrs 100 100 425 300 0 0 0>
+ , <&key_physical_attrs 100 100 525 300 0 0 0>
+ , <&key_physical_attrs 100 100 625 300 0 0 0>
+ , <&key_physical_attrs 100 100 725 300 0 0 0>
+ , <&key_physical_attrs 100 100 825 300 0 0 0>
+ , <&key_physical_attrs 100 100 925 300 0 0 0>
+ , <&key_physical_attrs 100 100 1025 300 0 0 0>
+ , <&key_physical_attrs 100 100 1125 300 0 0 0>
+ , <&key_physical_attrs 275 100 1225 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 125 100 125 400 0 0 0>
+ , <&key_physical_attrs 125 100 250 400 0 0 0>
+ , <&key_physical_attrs 625 100 375 400 0 0 0>
+ , <&key_physical_attrs 125 100 1000 400 0 0 0>
+ , <&key_physical_attrs 125 100 1125 400 0 0 0>
+ , <&key_physical_attrs 125 100 1250 400 0 0 0>
+ , <&key_physical_attrs 125 100 1375 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/65percent/65percent.dtsi b/app/dts/layouts/common/65percent/65percent.dtsi
new file mode 100644
index 0000000000..9e46d315e9
--- /dev/null
+++ b/app/dts/layouts/common/65percent/65percent.dtsi
@@ -0,0 +1,72 @@
+#include <layouts/common/65percent/ansi.dtsi>
+#include <layouts/common/65percent/iso.dtsi>
+#include <layouts/common/65percent/all1u.dtsi>
+#include <layouts/common/65percent/hhkb.dtsi>
+
+&layout_65_ansi {
+ status = "disabled";
+};
+
+&layout_65_iso {
+ status = "disabled";
+};
+
+&layout_65_all1u {
+ status = "disabled";
+};
+
+&layout_65_hhkb {
+ status = "disabled";
+};
+
+/ {
+ layouts_common_65_percent_position_map: layouts_common_65_percent_position_map {
+ compatible = "zmk,physical-layout-position-map";
+
+ complete;
+
+ layout_65_all1u {
+ physical-layout = <&layout_65_all1u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>
+ , <16 17 18 19 20 21 22 23 24 25 26 27 28 29 30>
+ , <31 32 33 34 35 36 37 38 39 40 41 42 43 44>
+ , <45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60>
+ , <61 62 63 64 65 66 67 68 69 70>
+ ;
+ };
+
+ layout_65_ansi {
+ physical-layout = <&layout_65_ansi>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 68 14>
+ , <15 16 17 18 19 20 21 22 23 24 25 26 27 28 29>
+ , <30 31 32 33 34 35 36 37 38 39 40 41 42 43>
+ , <44 69 45 46 47 48 49 50 51 52 53 54 55 70 56 57>
+ , <58 59 60 61 62 63 64 65 66 67>
+ ;
+ };
+
+ layout_65_hhkb {
+ physical-layout = <&layout_65_hhkb>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 65 14>
+ , <15 16 17 18 19 20 21 22 23 24 25 26 27 28 29>
+ , <30 31 32 33 34 35 36 37 38 39 40 41 42 43>
+ , <44 66 45 46 47 48 49 50 51 52 53 54 55 67 68 56>
+ , <57 58 59 60 61 62 63 69 70 64>
+ ;
+ };
+
+ layout_65_iso {
+ physical-layout = <&layout_65_iso>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 69 14>
+ , <15 16 17 18 19 20 21 22 23 24 25 26 27 70 28>
+ , <29 30 31 32 33 34 35 36 37 38 39 40 42 43>
+ , <44 45 46 47 48 49 50 51 52 53 54 55 56 41 57 58>
+ , <59 60 61 62 63 64 65 66 67 68>
+ ;
+ };
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/65percent/all1u.dtsi b/app/dts/layouts/common/65percent/all1u.dtsi
new file mode 100644
index 0000000000..8ab62ef286
--- /dev/null
+++ b/app/dts/layouts/common/65percent/all1u.dtsi
@@ -0,0 +1,85 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_65_all1u: layout_65_all1u {
+ compatible = "zmk,physical-layout";
+ display-name = "65% All 1U";
+
+ kscan = <&kscan0>;
+ transform = <&matrix_transform_65_all1u>;
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 100 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1400 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 150 100 1350 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 225 100 1275 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 100 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ , <&key_physical_attrs 100 100 1200 300 0 0 0>
+ , <&key_physical_attrs 100 100 1300 300 0 0 0>
+ , <&key_physical_attrs 100 100 1400 300 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 125 100 125 400 0 0 0>
+ , <&key_physical_attrs 125 100 250 400 0 0 0>
+ , <&key_physical_attrs 625 100 375 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1200 400 0 0 0>
+ , <&key_physical_attrs 100 100 1300 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/65percent/ansi.dtsi b/app/dts/layouts/common/65percent/ansi.dtsi
new file mode 100644
index 0000000000..9685515c4b
--- /dev/null
+++ b/app/dts/layouts/common/65percent/ansi.dtsi
@@ -0,0 +1,79 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_65_ansi: layout_65_ansi {
+ compatible = "zmk,physical-layout";
+ display-name = "65% ANSI";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 200 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 150 100 1350 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 225 100 1275 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 225 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 225 300 0 0 0>
+ , <&key_physical_attrs 100 100 325 300 0 0 0>
+ , <&key_physical_attrs 100 100 425 300 0 0 0>
+ , <&key_physical_attrs 100 100 525 300 0 0 0>
+ , <&key_physical_attrs 100 100 625 300 0 0 0>
+ , <&key_physical_attrs 100 100 725 300 0 0 0>
+ , <&key_physical_attrs 100 100 825 300 0 0 0>
+ , <&key_physical_attrs 100 100 925 300 0 0 0>
+ , <&key_physical_attrs 100 100 1025 300 0 0 0>
+ , <&key_physical_attrs 100 100 1125 300 0 0 0>
+ , <&key_physical_attrs 175 100 1225 300 0 0 0>
+ , <&key_physical_attrs 100 100 1400 300 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 125 100 125 400 0 0 0>
+ , <&key_physical_attrs 125 100 250 400 0 0 0>
+ , <&key_physical_attrs 625 100 375 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1200 400 0 0 0>
+ , <&key_physical_attrs 100 100 1300 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/65percent/hhkb.dtsi b/app/dts/layouts/common/65percent/hhkb.dtsi
new file mode 100644
index 0000000000..cbadad96e5
--- /dev/null
+++ b/app/dts/layouts/common/65percent/hhkb.dtsi
@@ -0,0 +1,76 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_65_hhkb: layout_65_hhkb {
+ compatible = "zmk,physical-layout";
+ display-name = "65% HHKB/Tsangan";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 200 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 150 100 1350 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 225 100 1275 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 225 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 225 300 0 0 0>
+ , <&key_physical_attrs 100 100 325 300 0 0 0>
+ , <&key_physical_attrs 100 100 425 300 0 0 0>
+ , <&key_physical_attrs 100 100 525 300 0 0 0>
+ , <&key_physical_attrs 100 100 625 300 0 0 0>
+ , <&key_physical_attrs 100 100 725 300 0 0 0>
+ , <&key_physical_attrs 100 100 825 300 0 0 0>
+ , <&key_physical_attrs 100 100 925 300 0 0 0>
+ , <&key_physical_attrs 100 100 1025 300 0 0 0>
+ , <&key_physical_attrs 100 100 1125 300 0 0 0>
+ , <&key_physical_attrs 275 100 1225 300 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 150 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 150 400 0 0 0>
+ , <&key_physical_attrs 150 100 250 400 0 0 0>
+ , <&key_physical_attrs 700 100 400 400 0 0 0>
+ , <&key_physical_attrs 150 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1250 400 0 0 0>
+ , <&key_physical_attrs 150 100 1350 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/65percent/iso.dtsi b/app/dts/layouts/common/65percent/iso.dtsi
new file mode 100644
index 0000000000..3395c614e3
--- /dev/null
+++ b/app/dts/layouts/common/65percent/iso.dtsi
@@ -0,0 +1,80 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_65_iso: layout_65_iso {
+ compatible = "zmk,physical-layout";
+ display-name = "65% ISO";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 200 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 150 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 150 100 0 0 0>
+ , <&key_physical_attrs 100 100 250 100 0 0 0>
+ , <&key_physical_attrs 100 100 350 100 0 0 0>
+ , <&key_physical_attrs 100 100 450 100 0 0 0>
+ , <&key_physical_attrs 100 100 550 100 0 0 0>
+ , <&key_physical_attrs 100 100 650 100 0 0 0>
+ , <&key_physical_attrs 100 100 750 100 0 0 0>
+ , <&key_physical_attrs 100 100 850 100 0 0 0>
+ , <&key_physical_attrs 100 100 950 100 0 0 0>
+ , <&key_physical_attrs 100 100 1050 100 0 0 0>
+ , <&key_physical_attrs 100 100 1150 100 0 0 0>
+ , <&key_physical_attrs 100 100 1250 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 175 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 175 200 0 0 0>
+ , <&key_physical_attrs 100 100 275 200 0 0 0>
+ , <&key_physical_attrs 100 100 375 200 0 0 0>
+ , <&key_physical_attrs 100 100 475 200 0 0 0>
+ , <&key_physical_attrs 100 100 575 200 0 0 0>
+ , <&key_physical_attrs 100 100 675 200 0 0 0>
+ , <&key_physical_attrs 100 100 775 200 0 0 0>
+ , <&key_physical_attrs 100 100 875 200 0 0 0>
+ , <&key_physical_attrs 100 100 975 200 0 0 0>
+ , <&key_physical_attrs 100 100 1075 200 0 0 0>
+ , <&key_physical_attrs 100 100 1175 200 0 0 0>
+ , <&key_physical_attrs 100 100 1275 200 0 0 0>
+ , <&key_physical_attrs 125 200 1375 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 125 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 125 300 0 0 0>
+ , <&key_physical_attrs 100 100 225 300 0 0 0>
+ , <&key_physical_attrs 100 100 325 300 0 0 0>
+ , <&key_physical_attrs 100 100 425 300 0 0 0>
+ , <&key_physical_attrs 100 100 525 300 0 0 0>
+ , <&key_physical_attrs 100 100 625 300 0 0 0>
+ , <&key_physical_attrs 100 100 725 300 0 0 0>
+ , <&key_physical_attrs 100 100 825 300 0 0 0>
+ , <&key_physical_attrs 100 100 925 300 0 0 0>
+ , <&key_physical_attrs 100 100 1025 300 0 0 0>
+ , <&key_physical_attrs 100 100 1125 300 0 0 0>
+ , <&key_physical_attrs 175 100 1225 300 0 0 0>
+ , <&key_physical_attrs 100 100 1400 300 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 125 100 125 400 0 0 0>
+ , <&key_physical_attrs 125 100 250 400 0 0 0>
+ , <&key_physical_attrs 625 100 375 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1200 400 0 0 0>
+ , <&key_physical_attrs 100 100 1300 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/75percent/75percent.dtsi b/app/dts/layouts/common/75percent/75percent.dtsi
new file mode 100644
index 0000000000..1781fbd3ba
--- /dev/null
+++ b/app/dts/layouts/common/75percent/75percent.dtsi
@@ -0,0 +1,59 @@
+#include <layouts/common/75percent/ansi.dtsi>
+#include <layouts/common/75percent/iso.dtsi>
+#include <layouts/common/75percent/all1u.dtsi>
+
+&layout_75_ansi {
+ status = "disabled";
+};
+
+&layout_75_iso {
+ status = "disabled";
+};
+
+&layout_75_all1u {
+ status = "disabled";
+};
+
+/ {
+ layouts_common_75_percent_position_map: layouts_common_75_percent_position_map {
+ compatible = "zmk,physical-layout-position-map";
+
+ complete;
+
+ layout_75_all1u {
+ physical-layout = <&layout_75_all1u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>
+ , <16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31>
+ , <32 33 34 35 36 37 38 39 40 41 42 43 44 45 46>
+ , <47 48 49 50 51 52 53 54 55 56 57 58 59 60>
+ , <61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76>
+ , <77 78 79 80 81 82 83 84 85 86>
+ ;
+ };
+
+ layout_75_ansi {
+ physical-layout = <&layout_75_ansi>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>
+ , <16 17 18 19 20 21 22 23 24 25 26 27 28 29 84 30>
+ , <31 32 33 34 35 36 37 38 39 40 41 42 43 44 45>
+ , <46 47 48 49 50 51 52 53 54 55 56 57 58 59>
+ , <60 85 61 62 63 64 65 66 67 68 69 70 71 86 72 73>
+ , <74 75 76 77 78 79 80 81 82 83>
+ ;
+ };
+
+ layout_75_iso {
+ physical-layout = <&layout_75_iso>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>
+ , <16 17 18 19 20 21 22 23 24 25 26 27 28 29 85 30>
+ , <31 32 33 34 35 36 37 38 39 40 41 42 43 86 44>
+ , <45 46 47 48 49 50 51 52 53 54 55 56 58 59>
+ , <60 61 62 63 64 65 66 67 68 69 70 71 72 57 73 74>
+ , <75 76 77 78 79 80 81 82 83 84>
+ ;
+ };
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/75percent/all1u.dtsi b/app/dts/layouts/common/75percent/all1u.dtsi
new file mode 100644
index 0000000000..04c12bdbb1
--- /dev/null
+++ b/app/dts/layouts/common/75percent/all1u.dtsi
@@ -0,0 +1,98 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_75_all1u: layout_75_all1u {
+ compatible = "zmk,physical-layout";
+ display-name = "75% All 1U";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 100 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1400 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 1200 100 0 0 0>
+ , <&key_physical_attrs 100 100 1300 100 0 0 0>
+ , <&key_physical_attrs 100 100 1400 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 150 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 150 200 0 0 0>
+ , <&key_physical_attrs 100 100 250 200 0 0 0>
+ , <&key_physical_attrs 100 100 350 200 0 0 0>
+ , <&key_physical_attrs 100 100 450 200 0 0 0>
+ , <&key_physical_attrs 100 100 550 200 0 0 0>
+ , <&key_physical_attrs 100 100 650 200 0 0 0>
+ , <&key_physical_attrs 100 100 750 200 0 0 0>
+ , <&key_physical_attrs 100 100 850 200 0 0 0>
+ , <&key_physical_attrs 100 100 950 200 0 0 0>
+ , <&key_physical_attrs 100 100 1050 200 0 0 0>
+ , <&key_physical_attrs 100 100 1150 200 0 0 0>
+ , <&key_physical_attrs 100 100 1250 200 0 0 0>
+ , <&key_physical_attrs 150 100 1350 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 175 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 175 300 0 0 0>
+ , <&key_physical_attrs 100 100 275 300 0 0 0>
+ , <&key_physical_attrs 100 100 375 300 0 0 0>
+ , <&key_physical_attrs 100 100 475 300 0 0 0>
+ , <&key_physical_attrs 100 100 575 300 0 0 0>
+ , <&key_physical_attrs 100 100 675 300 0 0 0>
+ , <&key_physical_attrs 100 100 775 300 0 0 0>
+ , <&key_physical_attrs 100 100 875 300 0 0 0>
+ , <&key_physical_attrs 100 100 975 300 0 0 0>
+ , <&key_physical_attrs 100 100 1075 300 0 0 0>
+ , <&key_physical_attrs 100 100 1175 300 0 0 0>
+ , <&key_physical_attrs 225 100 1275 300 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 100 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 100 400 0 0 0>
+ , <&key_physical_attrs 100 100 200 400 0 0 0>
+ , <&key_physical_attrs 100 100 300 400 0 0 0>
+ , <&key_physical_attrs 100 100 400 400 0 0 0>
+ , <&key_physical_attrs 100 100 500 400 0 0 0>
+ , <&key_physical_attrs 100 100 600 400 0 0 0>
+ , <&key_physical_attrs 100 100 700 400 0 0 0>
+ , <&key_physical_attrs 100 100 800 400 0 0 0>
+ , <&key_physical_attrs 100 100 900 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ , <&key_physical_attrs 100 100 1200 400 0 0 0>
+ , <&key_physical_attrs 100 100 1300 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ , <&key_physical_attrs 125 100 0 500 0 0 0>
+ , <&key_physical_attrs 125 100 125 500 0 0 0>
+ , <&key_physical_attrs 125 100 250 500 0 0 0>
+ , <&key_physical_attrs 625 100 375 500 0 0 0>
+ , <&key_physical_attrs 100 100 1000 500 0 0 0>
+ , <&key_physical_attrs 100 100 1100 500 0 0 0>
+ , <&key_physical_attrs 100 100 1200 500 0 0 0>
+ , <&key_physical_attrs 100 100 1300 500 0 0 0>
+ , <&key_physical_attrs 100 100 1400 500 0 0 0>
+ , <&key_physical_attrs 100 100 1500 500 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/75percent/ansi.dtsi b/app/dts/layouts/common/75percent/ansi.dtsi
new file mode 100644
index 0000000000..6c9a65c765
--- /dev/null
+++ b/app/dts/layouts/common/75percent/ansi.dtsi
@@ -0,0 +1,95 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_75_ansi: layout_75_ansi {
+ compatible = "zmk,physical-layout";
+ display-name = "75% ANSI";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 100 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1400 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 1200 100 0 0 0>
+ , <&key_physical_attrs 200 100 1300 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 150 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 150 200 0 0 0>
+ , <&key_physical_attrs 100 100 250 200 0 0 0>
+ , <&key_physical_attrs 100 100 350 200 0 0 0>
+ , <&key_physical_attrs 100 100 450 200 0 0 0>
+ , <&key_physical_attrs 100 100 550 200 0 0 0>
+ , <&key_physical_attrs 100 100 650 200 0 0 0>
+ , <&key_physical_attrs 100 100 750 200 0 0 0>
+ , <&key_physical_attrs 100 100 850 200 0 0 0>
+ , <&key_physical_attrs 100 100 950 200 0 0 0>
+ , <&key_physical_attrs 100 100 1050 200 0 0 0>
+ , <&key_physical_attrs 100 100 1150 200 0 0 0>
+ , <&key_physical_attrs 100 100 1250 200 0 0 0>
+ , <&key_physical_attrs 150 100 1350 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 175 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 175 300 0 0 0>
+ , <&key_physical_attrs 100 100 275 300 0 0 0>
+ , <&key_physical_attrs 100 100 375 300 0 0 0>
+ , <&key_physical_attrs 100 100 475 300 0 0 0>
+ , <&key_physical_attrs 100 100 575 300 0 0 0>
+ , <&key_physical_attrs 100 100 675 300 0 0 0>
+ , <&key_physical_attrs 100 100 775 300 0 0 0>
+ , <&key_physical_attrs 100 100 875 300 0 0 0>
+ , <&key_physical_attrs 100 100 975 300 0 0 0>
+ , <&key_physical_attrs 100 100 1075 300 0 0 0>
+ , <&key_physical_attrs 100 100 1175 300 0 0 0>
+ , <&key_physical_attrs 225 100 1275 300 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 225 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 225 400 0 0 0>
+ , <&key_physical_attrs 100 100 325 400 0 0 0>
+ , <&key_physical_attrs 100 100 425 400 0 0 0>
+ , <&key_physical_attrs 100 100 525 400 0 0 0>
+ , <&key_physical_attrs 100 100 625 400 0 0 0>
+ , <&key_physical_attrs 100 100 725 400 0 0 0>
+ , <&key_physical_attrs 100 100 825 400 0 0 0>
+ , <&key_physical_attrs 100 100 925 400 0 0 0>
+ , <&key_physical_attrs 100 100 1025 400 0 0 0>
+ , <&key_physical_attrs 100 100 1125 400 0 0 0>
+ , <&key_physical_attrs 175 100 1225 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ , <&key_physical_attrs 125 100 0 500 0 0 0>
+ , <&key_physical_attrs 125 100 125 500 0 0 0>
+ , <&key_physical_attrs 125 100 250 500 0 0 0>
+ , <&key_physical_attrs 625 100 375 500 0 0 0>
+ , <&key_physical_attrs 100 100 1000 500 0 0 0>
+ , <&key_physical_attrs 100 100 1100 500 0 0 0>
+ , <&key_physical_attrs 100 100 1200 500 0 0 0>
+ , <&key_physical_attrs 100 100 1300 500 0 0 0>
+ , <&key_physical_attrs 100 100 1400 500 0 0 0>
+ , <&key_physical_attrs 100 100 1500 500 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/75percent/iso.dtsi b/app/dts/layouts/common/75percent/iso.dtsi
new file mode 100644
index 0000000000..f3ee0c5107
--- /dev/null
+++ b/app/dts/layouts/common/75percent/iso.dtsi
@@ -0,0 +1,96 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_75_iso: layout_75_iso {
+ compatible = "zmk,physical-layout";
+ display-name = "75% ISO";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 100 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1400 0 0 0 0>
+ , <&key_physical_attrs 100 100 1500 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 1200 100 0 0 0>
+ , <&key_physical_attrs 200 100 1300 100 0 0 0>
+ , <&key_physical_attrs 100 100 1500 100 0 0 0>
+ , <&key_physical_attrs 150 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 150 200 0 0 0>
+ , <&key_physical_attrs 100 100 250 200 0 0 0>
+ , <&key_physical_attrs 100 100 350 200 0 0 0>
+ , <&key_physical_attrs 100 100 450 200 0 0 0>
+ , <&key_physical_attrs 100 100 550 200 0 0 0>
+ , <&key_physical_attrs 100 100 650 200 0 0 0>
+ , <&key_physical_attrs 100 100 750 200 0 0 0>
+ , <&key_physical_attrs 100 100 850 200 0 0 0>
+ , <&key_physical_attrs 100 100 950 200 0 0 0>
+ , <&key_physical_attrs 100 100 1050 200 0 0 0>
+ , <&key_physical_attrs 100 100 1150 200 0 0 0>
+ , <&key_physical_attrs 100 100 1250 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 200 0 0 0>
+ , <&key_physical_attrs 175 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 175 300 0 0 0>
+ , <&key_physical_attrs 100 100 275 300 0 0 0>
+ , <&key_physical_attrs 100 100 375 300 0 0 0>
+ , <&key_physical_attrs 100 100 475 300 0 0 0>
+ , <&key_physical_attrs 100 100 575 300 0 0 0>
+ , <&key_physical_attrs 100 100 675 300 0 0 0>
+ , <&key_physical_attrs 100 100 775 300 0 0 0>
+ , <&key_physical_attrs 100 100 875 300 0 0 0>
+ , <&key_physical_attrs 100 100 975 300 0 0 0>
+ , <&key_physical_attrs 100 100 1075 300 0 0 0>
+ , <&key_physical_attrs 100 100 1175 300 0 0 0>
+ , <&key_physical_attrs 100 100 1275 300 0 0 0>
+ , <&key_physical_attrs 125 200 1375 200 0 0 0>
+ , <&key_physical_attrs 100 100 1500 300 0 0 0>
+ , <&key_physical_attrs 125 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 125 400 0 0 0>
+ , <&key_physical_attrs 100 100 225 400 0 0 0>
+ , <&key_physical_attrs 100 100 325 400 0 0 0>
+ , <&key_physical_attrs 100 100 425 400 0 0 0>
+ , <&key_physical_attrs 100 100 525 400 0 0 0>
+ , <&key_physical_attrs 100 100 625 400 0 0 0>
+ , <&key_physical_attrs 100 100 725 400 0 0 0>
+ , <&key_physical_attrs 100 100 825 400 0 0 0>
+ , <&key_physical_attrs 100 100 925 400 0 0 0>
+ , <&key_physical_attrs 100 100 1025 400 0 0 0>
+ , <&key_physical_attrs 100 100 1125 400 0 0 0>
+ , <&key_physical_attrs 175 100 1225 400 0 0 0>
+ , <&key_physical_attrs 100 100 1400 400 0 0 0>
+ , <&key_physical_attrs 100 100 1500 400 0 0 0>
+ , <&key_physical_attrs 125 100 0 500 0 0 0>
+ , <&key_physical_attrs 125 100 125 500 0 0 0>
+ , <&key_physical_attrs 125 100 250 500 0 0 0>
+ , <&key_physical_attrs 625 100 375 500 0 0 0>
+ , <&key_physical_attrs 100 100 1000 500 0 0 0>
+ , <&key_physical_attrs 100 100 1100 500 0 0 0>
+ , <&key_physical_attrs 100 100 1200 500 0 0 0>
+ , <&key_physical_attrs 100 100 1300 500 0 0 0>
+ , <&key_physical_attrs 100 100 1400 500 0 0 0>
+ , <&key_physical_attrs 100 100 1500 500 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_4x12/1x2u.dtsi b/app/dts/layouts/common/ortho_4x12/1x2u.dtsi
new file mode 100644
index 0000000000..23646afc9c
--- /dev/null
+++ b/app/dts/layouts/common/ortho_4x12/1x2u.dtsi
@@ -0,0 +1,58 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_ortho_4x12_1x2u: layout_ortho_4x12_1x2u {
+ compatible = "zmk,physical-layout";
+ display-name = "40% 1x2U Space";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 100 200 0 0 0>
+ , <&key_physical_attrs 100 100 200 200 0 0 0>
+ , <&key_physical_attrs 100 100 300 200 0 0 0>
+ , <&key_physical_attrs 100 100 400 200 0 0 0>
+ , <&key_physical_attrs 100 100 500 200 0 0 0>
+ , <&key_physical_attrs 100 100 600 200 0 0 0>
+ , <&key_physical_attrs 100 100 700 200 0 0 0>
+ , <&key_physical_attrs 100 100 800 200 0 0 0>
+ , <&key_physical_attrs 100 100 900 200 0 0 0>
+ , <&key_physical_attrs 100 100 1000 200 0 0 0>
+ , <&key_physical_attrs 100 100 1100 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 200 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_4x12/2x2u.dtsi b/app/dts/layouts/common/ortho_4x12/2x2u.dtsi
new file mode 100644
index 0000000000..d091786938
--- /dev/null
+++ b/app/dts/layouts/common/ortho_4x12/2x2u.dtsi
@@ -0,0 +1,57 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_ortho_4x12_2x2u: layout_ortho_4x12_2x2u {
+ compatible = "zmk,physical-layout";
+ display-name = "40% 2x2U Space";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 100 200 0 0 0>
+ , <&key_physical_attrs 100 100 200 200 0 0 0>
+ , <&key_physical_attrs 100 100 300 200 0 0 0>
+ , <&key_physical_attrs 100 100 400 200 0 0 0>
+ , <&key_physical_attrs 100 100 500 200 0 0 0>
+ , <&key_physical_attrs 100 100 600 200 0 0 0>
+ , <&key_physical_attrs 100 100 700 200 0 0 0>
+ , <&key_physical_attrs 100 100 800 200 0 0 0>
+ , <&key_physical_attrs 100 100 900 200 0 0 0>
+ , <&key_physical_attrs 100 100 1000 200 0 0 0>
+ , <&key_physical_attrs 100 100 1100 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 200 100 400 300 0 0 0>
+ , <&key_physical_attrs 200 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_4x12/all1u.dtsi b/app/dts/layouts/common/ortho_4x12/all1u.dtsi
new file mode 100644
index 0000000000..323821d466
--- /dev/null
+++ b/app/dts/layouts/common/ortho_4x12/all1u.dtsi
@@ -0,0 +1,59 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_ortho_4x12_all1u: layout_ortho_4x12_all1u {
+ compatible = "zmk,physical-layout";
+ display-name = "40% All 1U/Grid";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 100 200 0 0 0>
+ , <&key_physical_attrs 100 100 200 200 0 0 0>
+ , <&key_physical_attrs 100 100 300 200 0 0 0>
+ , <&key_physical_attrs 100 100 400 200 0 0 0>
+ , <&key_physical_attrs 100 100 500 200 0 0 0>
+ , <&key_physical_attrs 100 100 600 200 0 0 0>
+ , <&key_physical_attrs 100 100 700 200 0 0 0>
+ , <&key_physical_attrs 100 100 800 200 0 0 0>
+ , <&key_physical_attrs 100 100 900 200 0 0 0>
+ , <&key_physical_attrs 100 100 1000 200 0 0 0>
+ , <&key_physical_attrs 100 100 1100 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 100 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_4x12/ortho_4x12.dtsi b/app/dts/layouts/common/ortho_4x12/ortho_4x12.dtsi
new file mode 100644
index 0000000000..0c361b109b
--- /dev/null
+++ b/app/dts/layouts/common/ortho_4x12/ortho_4x12.dtsi
@@ -0,0 +1,53 @@
+#include <layouts/common/ortho_4x12/1x2u.dtsi>
+#include <layouts/common/ortho_4x12/2x2u.dtsi>
+#include <layouts/common/ortho_4x12/all1u.dtsi>
+
+&layout_ortho_4x12_all1u {
+ status = "disabled";
+};
+
+&layout_ortho_4x12_1x2u {
+ status = "disabled";
+};
+
+&layout_ortho_4x12_2x2u {
+ status = "disabled";
+};
+
+/ {
+ layouts_common_ortho_4x12_position_map: layouts_common_ortho_4x12_position_map {
+ compatible = "zmk,physical-layout-position-map";
+
+ complete;
+
+ layout_ortho_4x12_all1u {
+ physical-layout = <&layout_ortho_4x12_all1u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11>
+ , <12 13 14 15 16 17 18 19 20 21 22 23>
+ , <24 25 26 27 28 29 30 31 32 33 34 35>
+ , <36 37 38 39 40 41 42 43 44 45 46 47>
+ ;
+ };
+
+ layout_ortho_4x12_2x2u {
+ physical-layout = <&layout_ortho_4x12_2x2u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11>
+ , <12 13 14 15 16 17 18 19 20 21 22 23>
+ , <24 25 26 27 28 29 30 31 32 33 34 35>
+ , <36 37 38 39 40 46 47 41 42 43 44 45>
+ ;
+ };
+
+ layout_ortho_4x12_1x2u {
+ physical-layout = <&layout_ortho_4x12_1x2u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11>
+ , <12 13 14 15 16 17 18 19 20 21 22 23>
+ , <24 25 26 27 28 29 30 31 32 33 34 35>
+ , <36 37 38 39 40 41 47 42 43 44 45 46>
+ ;
+ };
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_5x12/1x2u.dtsi b/app/dts/layouts/common/ortho_5x12/1x2u.dtsi
new file mode 100644
index 0000000000..2072cc35dd
--- /dev/null
+++ b/app/dts/layouts/common/ortho_5x12/1x2u.dtsi
@@ -0,0 +1,70 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_ortho_5x12_1x2u: layout_ortho_5x12_1x2u {
+ compatible = "zmk,physical-layout";
+ display-name = "50% 1x2U Space";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 100 200 0 0 0>
+ , <&key_physical_attrs 100 100 200 200 0 0 0>
+ , <&key_physical_attrs 100 100 300 200 0 0 0>
+ , <&key_physical_attrs 100 100 400 200 0 0 0>
+ , <&key_physical_attrs 100 100 500 200 0 0 0>
+ , <&key_physical_attrs 100 100 600 200 0 0 0>
+ , <&key_physical_attrs 100 100 700 200 0 0 0>
+ , <&key_physical_attrs 100 100 800 200 0 0 0>
+ , <&key_physical_attrs 100 100 900 200 0 0 0>
+ , <&key_physical_attrs 100 100 1000 200 0 0 0>
+ , <&key_physical_attrs 100 100 1100 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 100 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ , <&key_physical_attrs 100 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 100 400 0 0 0>
+ , <&key_physical_attrs 100 100 200 400 0 0 0>
+ , <&key_physical_attrs 100 100 300 400 0 0 0>
+ , <&key_physical_attrs 100 100 400 400 0 0 0>
+ , <&key_physical_attrs 200 100 500 400 0 0 0>
+ , <&key_physical_attrs 100 100 700 400 0 0 0>
+ , <&key_physical_attrs 100 100 800 400 0 0 0>
+ , <&key_physical_attrs 100 100 900 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_5x12/2x2u.dtsi b/app/dts/layouts/common/ortho_5x12/2x2u.dtsi
new file mode 100644
index 0000000000..5e55f734e1
--- /dev/null
+++ b/app/dts/layouts/common/ortho_5x12/2x2u.dtsi
@@ -0,0 +1,69 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_ortho_5x12_2x2u: layout_ortho_5x12_2x2u {
+ compatible = "zmk,physical-layout";
+ display-name = "50% 2x2U Space";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 100 200 0 0 0>
+ , <&key_physical_attrs 100 100 200 200 0 0 0>
+ , <&key_physical_attrs 100 100 300 200 0 0 0>
+ , <&key_physical_attrs 100 100 400 200 0 0 0>
+ , <&key_physical_attrs 100 100 500 200 0 0 0>
+ , <&key_physical_attrs 100 100 600 200 0 0 0>
+ , <&key_physical_attrs 100 100 700 200 0 0 0>
+ , <&key_physical_attrs 100 100 800 200 0 0 0>
+ , <&key_physical_attrs 100 100 900 200 0 0 0>
+ , <&key_physical_attrs 100 100 1000 200 0 0 0>
+ , <&key_physical_attrs 100 100 1100 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 100 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ , <&key_physical_attrs 100 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 100 400 0 0 0>
+ , <&key_physical_attrs 100 100 200 400 0 0 0>
+ , <&key_physical_attrs 100 100 300 400 0 0 0>
+ , <&key_physical_attrs 200 100 400 400 0 0 0>
+ , <&key_physical_attrs 200 100 600 400 0 0 0>
+ , <&key_physical_attrs 100 100 800 400 0 0 0>
+ , <&key_physical_attrs 100 100 900 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ ;
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/ortho_5x12/all1u.dtsi b/app/dts/layouts/common/ortho_5x12/all1u.dtsi
new file mode 100644
index 0000000000..53afb469f8
--- /dev/null
+++ b/app/dts/layouts/common/ortho_5x12/all1u.dtsi
@@ -0,0 +1,71 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_ortho_5x12_all1u: layout_ortho_5x12_all1u {
+ compatible = "zmk,physical-layout";
+ display-name = "50% All 1U/Grid";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 100 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 600 0 0 0 0>
+ , <&key_physical_attrs 100 100 700 0 0 0 0>
+ , <&key_physical_attrs 100 100 800 0 0 0 0>
+ , <&key_physical_attrs 100 100 900 0 0 0 0>
+ , <&key_physical_attrs 100 100 1000 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 100 0 0 0>
+ , <&key_physical_attrs 100 100 100 100 0 0 0>
+ , <&key_physical_attrs 100 100 200 100 0 0 0>
+ , <&key_physical_attrs 100 100 300 100 0 0 0>
+ , <&key_physical_attrs 100 100 400 100 0 0 0>
+ , <&key_physical_attrs 100 100 500 100 0 0 0>
+ , <&key_physical_attrs 100 100 600 100 0 0 0>
+ , <&key_physical_attrs 100 100 700 100 0 0 0>
+ , <&key_physical_attrs 100 100 800 100 0 0 0>
+ , <&key_physical_attrs 100 100 900 100 0 0 0>
+ , <&key_physical_attrs 100 100 1000 100 0 0 0>
+ , <&key_physical_attrs 100 100 1100 100 0 0 0>
+ , <&key_physical_attrs 100 100 0 200 0 0 0>
+ , <&key_physical_attrs 100 100 100 200 0 0 0>
+ , <&key_physical_attrs 100 100 200 200 0 0 0>
+ , <&key_physical_attrs 100 100 300 200 0 0 0>
+ , <&key_physical_attrs 100 100 400 200 0 0 0>
+ , <&key_physical_attrs 100 100 500 200 0 0 0>
+ , <&key_physical_attrs 100 100 600 200 0 0 0>
+ , <&key_physical_attrs 100 100 700 200 0 0 0>
+ , <&key_physical_attrs 100 100 800 200 0 0 0>
+ , <&key_physical_attrs 100 100 900 200 0 0 0>
+ , <&key_physical_attrs 100 100 1000 200 0 0 0>
+ , <&key_physical_attrs 100 100 1100 200 0 0 0>
+ , <&key_physical_attrs 100 100 0 300 0 0 0>
+ , <&key_physical_attrs 100 100 100 300 0 0 0>
+ , <&key_physical_attrs 100 100 200 300 0 0 0>
+ , <&key_physical_attrs 100 100 300 300 0 0 0>
+ , <&key_physical_attrs 100 100 400 300 0 0 0>
+ , <&key_physical_attrs 100 100 500 300 0 0 0>
+ , <&key_physical_attrs 100 100 600 300 0 0 0>
+ , <&key_physical_attrs 100 100 700 300 0 0 0>
+ , <&key_physical_attrs 100 100 800 300 0 0 0>
+ , <&key_physical_attrs 100 100 900 300 0 0 0>
+ , <&key_physical_attrs 100 100 1000 300 0 0 0>
+ , <&key_physical_attrs 100 100 1100 300 0 0 0>
+ , <&key_physical_attrs 100 100 0 400 0 0 0>
+ , <&key_physical_attrs 100 100 100 400 0 0 0>
+ , <&key_physical_attrs 100 100 200 400 0 0 0>
+ , <&key_physical_attrs 100 100 300 400 0 0 0>
+ , <&key_physical_attrs 100 100 400 400 0 0 0>
+ , <&key_physical_attrs 100 100 500 400 0 0 0>
+ , <&key_physical_attrs 100 100 600 400 0 0 0>
+ , <&key_physical_attrs 100 100 700 400 0 0 0>
+ , <&key_physical_attrs 100 100 800 400 0 0 0>
+ , <&key_physical_attrs 100 100 900 400 0 0 0>
+ , <&key_physical_attrs 100 100 1000 400 0 0 0>
+ , <&key_physical_attrs 100 100 1100 400 0 0 0>
+ ;
+ };
+};
diff --git a/app/dts/layouts/common/ortho_5x12/ortho_5x12.dtsi b/app/dts/layouts/common/ortho_5x12/ortho_5x12.dtsi
new file mode 100644
index 0000000000..d1a6df7e81
--- /dev/null
+++ b/app/dts/layouts/common/ortho_5x12/ortho_5x12.dtsi
@@ -0,0 +1,56 @@
+#include <layouts/common/ortho_5x12/1x2u.dtsi>
+#include <layouts/common/ortho_5x12/2x2u.dtsi>
+#include <layouts/common/ortho_5x12/all1u.dtsi>
+
+&layout_ortho_5x12_all1u {
+ status = "disabled";
+};
+
+&layout_ortho_5x12_1x2u {
+ status = "disabled";
+};
+
+&layout_ortho_5x12_2x2u {
+ status = "disabled";
+};
+
+/ {
+ layouts_common_ortho_5x12_position_map: layouts_common_ortho_5x12_position_map {
+ compatible = "zmk,physical-layout-position-map";
+
+ complete;
+
+ layout_ortho_5x12_all1u {
+ physical-layout = <&layout_ortho_5x12_all1u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11>
+ , <12 13 14 15 16 17 18 19 20 21 22 23>
+ , <24 25 26 27 28 29 30 31 32 33 34 35>
+ , <36 37 38 39 40 41 42 43 44 45 46 47>
+ , <48 49 50 51 52 53 54 55 56 57 58 59>
+ ;
+ };
+
+ layout_ortho_5x12_2x2u {
+ physical-layout = <&layout_ortho_5x12_2x2u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11>
+ , <12 13 14 15 16 17 18 19 20 21 22 23>
+ , <24 25 26 27 28 29 30 31 32 33 34 35>
+ , <36 37 38 39 40 41 42 43 44 45 46 47>
+ , <48 49 50 51 52 58 59 53 54 55 56 57>
+ ;
+ };
+
+ layout_ortho_5x12_1x2u {
+ physical-layout = <&layout_ortho_5x12_1x2u>;
+ positions
+ = < 0 1 2 3 4 5 6 7 8 9 10 11>
+ , <12 13 14 15 16 17 18 19 20 21 22 23>
+ , <24 25 26 27 28 29 30 31 32 33 34 35>
+ , <36 37 38 39 40 41 42 43 44 45 46 47>
+ , <48 49 50 51 52 53 59 54 55 56 57 58>
+ ;
+ };
+ };
+}; \ No newline at end of file
diff --git a/app/dts/layouts/common/tkl/ansi.dtsi b/app/dts/layouts/common/tkl/ansi.dtsi
new file mode 100644
index 0000000000..639ac471a6
--- /dev/null
+++ b/app/dts/layouts/common/tkl/ansi.dtsi
@@ -0,0 +1,98 @@
+#include <physical_layouts.dtsi>
+
+/ {
+ layout_tkl_ansi: layout_tkl_ansi {
+ compatible = "zmk,physical-layout";
+ display-name = "TKL 87 Key ANSI";
+
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 0 0 0 0>
+ , <&key_physical_attrs 100 100 200 0 0 0 0>
+ , <&key_physical_attrs 100 100 300 0 0 0 0>
+ , <&key_physical_attrs 100 100 400 0 0 0 0>
+ , <&key_physical_attrs 100 100 500 0 0 0 0>
+ , <&key_physical_attrs 100 100 650 0 0 0 0>
+ , <&key_physical_attrs 100 100 750 0 0 0 0>
+ , <&key_physical_attrs 100 100 850 0 0 0 0>
+ , <&key_physical_attrs 100 100 950 0 0 0 0>
+ , <&key_physical_attrs 100 100 1100 0 0 0 0>
+ , <&key_physical_attrs 100 100 1200 0 0 0 0>
+ , <&key_physical_attrs 100 100 1300 0 0 0 0>
+ , <&key_physical_attrs 100 100 1400 0 0 0 0>
+ , <&key_physical_attrs 100 100 1525 0 0 0 0>
+ , <&key_physical_attrs 100 100 1625 0 0 0 0>
+ , <&key_physical_attrs 100 100 1725 0 0 0 0>
+ , <&key_physical_attrs 100 100 0 150 0 0 0>
+ , <&key_physical_attrs 100 100 100 150 0 0 0>
+ , <&key_physical_attrs 100 100 200 150 0 0 0>
+ , <&key_physical_attrs 100 100 300 150 0 0 0>
+ , <&key_physical_attrs 100 100 400 150 0 0 0>
+ , <&key_physical_attrs 100 100 500 150 0 0 0>
+ , <&key_physical_attrs 100 100 600 150 0 0 0>
+ , <&key_physical_attrs 100 100 700 150 0 0 0>
+ , <&key_physical_attrs 100 100 800 150 0 0 0>
+ , <&key_physical_attrs 100 100 900 150 0 0 0>
+ , <&key_physical_attrs 100 100 1000 150 0 0 0>
+ , <&key_physical_attrs 100 100 1100 150 0 0 0>
+ , <&key_physical_attrs 100 100 1200 150 0 0 0>
+ , <&key_physical_attrs 200 100 1300 150 0 0 0>
+ , <&key_physical_attrs 100 100 1525 150 0 0 0>
+ , <&key_physical_attrs 100 100 1625 150 0 0 0>
+ , <&key_physical_attrs 100 100 1725 150 0 0 0>
+ , <&key_physical_attrs 150 100 0 250 0 0 0>
+ , <&key_physical_attrs 100 100 150 250 0 0 0>
+ , <&key_physical_attrs 100 100 250 250 0 0 0>
+ , <&key_physical_attrs 100 100 350 250 0 0 0>
+ , <&key_physical_attrs 100 100 450 250 0 0 0>
+ , <&key_physical_attrs 100 100 550 250 0 0 0>
+ , <&key_physical_attrs 100 100 650 250 0 0 0>
+ , <&key_physical_attrs 100 100 750 250 0 0 0>
+ , <&key_physical_attrs 100 100 850 250 0 0 0>
+ , <&key_physical_attrs 100 100 950 250 0 0 0>
+ , <&key_physical_attrs 100 100 1050 250 0 0 0>
+ , <&key_physical_attrs 100 100 1150 250 0 0 0>
+ , <&key_physical_attrs 100 100 1250 250 0 0 0>
+ , <&key_physical_attrs 150 100 1350 250 0 0 0>
+ , <&key_physical_attrs 100 100 1525 250 0 0 0>
+ , <&key_physical_attrs 100 100 1625 250 0 0 0>
+ , <&key_physical_attrs 100 100 1725 250 0 0 0>
+ , <&key_physical_attrs 175 100 0 350 0 0 0>
+ , <&key_physical_attrs 100 100 175 350 0 0 0>
+ , <&key_physical_attrs 100 100 275 350 0 0 0>
+ , <&key_physical_attrs 100 100 375 350 0 0 0>
+ , <&key_physical_attrs 100 100 475 350 0 0 0>
+ , <&key_physical_attrs 100 100 575 350 0 0 0>
+ , <&key_physical_attrs 100 100 675 350 0 0 0>
+ , <&key_physical_attrs 100 100 775 350 0 0 0>
+ , <&key_physical_attrs 100 100 875 350 0 0 0>
+ , <&key_physical_attrs 100 100 975 350 0 0 0>
+ , <&key_physical_attrs 100 100 1075 350 0 0 0>
+ , <&key_physical_attrs 100 100 1175 350 0 0 0>
+ , <&key_physical_attrs 225 100 1275 350 0 0 0>
+ , <&key_physical_attrs 225 100 0 450 0 0 0>
+ , <&key_physical_attrs 100 100 225 450 0 0 0>
+ , <&key_physical_attrs 100 100 325 450 0 0 0>
+ , <&key_physical_attrs 100 100 425 450 0 0 0>
+ , <&key_physical_attrs 100 100 525 450 0 0 0>
+ , <&key_physical_attrs 100 100 625 450 0 0 0>
+ , <&key_physical_attrs 100 100 725 450 0 0 0>
+ , <&key_physical_attrs 100 100 825 450 0 0 0>
+ , <&key_physical_attrs 100 100 925 450 0 0 0>
+ , <&key_physical_attrs 100 100 1025 450 0 0 0>
+ , <&key_physical_attrs 100 100 1125 450 0 0 0>
+ , <&key_physical_attrs 275 100 1225 450 0 0 0>
+ , <&key_physical_attrs 100 100 1625 450 0 0 0>
+ , <&key_physical_attrs 125 100 0 550 0 0 0>
+ , <&key_physical_attrs 125 100 125 550 0 0 0>
+ , <&key_physical_attrs 125 100 250 550 0 0 0>
+ , <&key_physical_attrs 625 100 375 550 0 0 0>
+ , <&key_physical_attrs 125 100 1000 550 0 0 0>
+ , <&key_physical_attrs 125 100 1125 550 0 0 0>
+ , <&key_physical_attrs 125 100 1250 550 0 0 0>
+ , <&key_physical_attrs 125 100 1375 550 0 0 0>
+ , <&key_physical_attrs 100 100 1525 550 0 0 0>
+ , <&key_physical_attrs 100 100 1625 550 0 0 0>
+ , <&key_physical_attrs 100 100 1725 550 0 0 0>
+ ;
+ };
+};