summaryrefslogtreecommitdiffstats
path: root/keyboards/mode
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mode')
-rw-r--r--keyboards/mode/m65hi_alpha/info.json167
-rwxr-xr-xkeyboards/mode/m65hi_alpha/keymaps/default/keymap.c49
-rwxr-xr-xkeyboards/mode/m65hi_alpha/keymaps/via/keymap.c49
-rw-r--r--keyboards/mode/m65hi_alpha/m65hi_alpha.h69
4 files changed, 334 insertions, 0 deletions
diff --git a/keyboards/mode/m65hi_alpha/info.json b/keyboards/mode/m65hi_alpha/info.json
new file mode 100644
index 0000000000..7869008f8d
--- /dev/null
+++ b/keyboards/mode/m65hi_alpha/info.json
@@ -0,0 +1,167 @@
+{
+ "keyboard_name": "SixtyFive HI",
+ "manufacturer": "Mode",
+ "url": "",
+ "maintainer": "Gondolindrim",
+ "usb": {
+ "vid": "0x00DE",
+ "pid": "0x6574",
+ "device_version": "0.6.5"
+ },
+ "layout_aliases": {
+ "LAYOUT_all": "LAYOUT_65_iso_blocker"
+ },
+ "layouts": {
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ { "label": "K00", "x": 0, "y": 0 },
+ { "label": "K01", "x": 1, "y": 0 },
+ { "label": "K02", "x": 2, "y": 0 },
+ { "label": "K03", "x": 3, "y": 0 },
+ { "label": "K04", "x": 4, "y": 0 },
+ { "label": "K05", "x": 5, "y": 0 },
+ { "label": "K06", "x": 6, "y": 0 },
+ { "label": "K07", "x": 7, "y": 0 },
+ { "label": "K08", "x": 8, "y": 0 },
+ { "label": "K09", "x": 9, "y": 0 },
+ { "label": "K0A", "x": 10, "y": 0 },
+ { "label": "K0B", "x": 11, "y": 0 },
+ { "label": "K0C", "x": 12, "y": 0 },
+ { "label": "K0D", "x": 13, "y": 0, "w": 2 },
+ { "label": "K0E", "x": 15, "y": 0 },
+
+ { "label": "K10", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "K11", "x": 1.5, "y": 1 },
+ { "label": "K12", "x": 2.5, "y": 1 },
+ { "label": "K13", "x": 3.5, "y": 1 },
+ { "label": "K14", "x": 4.5, "y": 1 },
+ { "label": "K15", "x": 5.5, "y": 1 },
+ { "label": "K16", "x": 6.5, "y": 1 },
+ { "label": "K17", "x": 7.5, "y": 1 },
+ { "label": "K18", "x": 8.5, "y": 1 },
+ { "label": "K19", "x": 9.5, "y": 1 },
+ { "label": "K1A", "x": 10.5, "y": 1 },
+ { "label": "K1B", "x": 11.5, "y": 1 },
+ { "label": "K1C", "x": 12.5, "y": 1 },
+ { "label": "K1E", "x": 15, "y": 1 },
+
+ { "label": "K20", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "K21", "x": 1.75, "y": 2 },
+ { "label": "K22", "x": 2.75, "y": 2 },
+ { "label": "K23", "x": 3.75, "y": 2 },
+ { "label": "K24", "x": 4.75, "y": 2 },
+ { "label": "K25", "x": 5.75, "y": 2 },
+ { "label": "K26", "x": 6.75, "y": 2 },
+ { "label": "K27", "x": 7.75, "y": 2 },
+ { "label": "K28", "x": 8.75, "y": 2 },
+ { "label": "K29", "x": 9.75, "y": 2 },
+ { "label": "K2A", "x": 10.75, "y": 2 },
+ { "label": "K2B", "x": 11.75, "y": 2 },
+ { "label": "K2C", "x": 12.75, "y": 2 },
+ { "label": "K2D", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
+ { "label": "K2E", "x": 15, "y": 2 },
+
+ { "label": "K30", "x": 0, "y": 3, "w": 1.25 },
+ { "label": "K31", "x": 1.25, "y": 3 },
+ { "label": "K32", "x": 2.25, "y": 3 },
+ { "label": "K33", "x": 3.25, "y": 3 },
+ { "label": "K34", "x": 4.25, "y": 3 },
+ { "label": "K35", "x": 5.25, "y": 3 },
+ { "label": "K36", "x": 6.25, "y": 3 },
+ { "label": "K37", "x": 7.25, "y": 3 },
+ { "label": "K38", "x": 8.25, "y": 3 },
+ { "label": "K39", "x": 9.25, "y": 3 },
+ { "label": "K3A", "x": 10.25, "y": 3 },
+ { "label": "K3B", "x": 11.25, "y": 3 },
+ { "label": "K3C", "x": 12.25, "y": 3, "w": 1.75 },
+ { "label": "K3D", "x": 14, "y": 3 },
+ { "label": "K3E", "x": 15, "y": 3 },
+
+ { "label": "K40", "x": 0, "y": 4, "w": 1.25 },
+ { "label": "K41", "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "K42", "x": 2.5, "y": 4, "w": 1.25 },
+ { "label": "K56", "x": 3.75, "y": 4, "w": 6.25 },
+ { "label": "K5A", "x": 10, "y": 4, "w": 1.25 },
+ { "label": "K5B", "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "K5C", "x": 13, "y": 4 },
+ { "label": "K5D", "x": 14, "y": 4 },
+ { "label": "K5E", "x": 15, "y": 4 }
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan": {
+ "layout": [
+ { "label": "K00", "x": 0, "y": 0 },
+ { "label": "K01", "x": 1, "y": 0 },
+ { "label": "K02", "x": 2, "y": 0 },
+ { "label": "K03", "x": 3, "y": 0 },
+ { "label": "K04", "x": 4, "y": 0 },
+ { "label": "K05", "x": 5, "y": 0 },
+ { "label": "K06", "x": 6, "y": 0 },
+ { "label": "K07", "x": 7, "y": 0 },
+ { "label": "K08", "x": 8, "y": 0 },
+ { "label": "K09", "x": 9, "y": 0 },
+ { "label": "K0A", "x": 10, "y": 0 },
+ { "label": "K0B", "x": 11, "y": 0 },
+ { "label": "K0C", "x": 12, "y": 0 },
+ { "label": "K0D", "x": 13, "y": 0, "w": 2 },
+ { "label": "K0E", "x": 15, "y": 0 },
+
+ { "label": "K10", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "K11", "x": 1.5, "y": 1 },
+ { "label": "K12", "x": 2.5, "y": 1 },
+ { "label": "K13", "x": 3.5, "y": 1 },
+ { "label": "K14", "x": 4.5, "y": 1 },
+ { "label": "K15", "x": 5.5, "y": 1 },
+ { "label": "K16", "x": 6.5, "y": 1 },
+ { "label": "K17", "x": 7.5, "y": 1 },
+ { "label": "K18", "x": 8.5, "y": 1 },
+ { "label": "K19", "x": 9.5, "y": 1 },
+ { "label": "K1A", "x": 10.5, "y": 1 },
+ { "label": "K1B", "x": 11.5, "y": 1 },
+ { "label": "K1C", "x": 12.5, "y": 1 },
+ { "label": "K1E", "x": 15, "y": 1 },
+
+ { "label": "K20", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "K21", "x": 1.75, "y": 2 },
+ { "label": "K22", "x": 2.75, "y": 2 },
+ { "label": "K23", "x": 3.75, "y": 2 },
+ { "label": "K24", "x": 4.75, "y": 2 },
+ { "label": "K25", "x": 5.75, "y": 2 },
+ { "label": "K26", "x": 6.75, "y": 2 },
+ { "label": "K27", "x": 7.75, "y": 2 },
+ { "label": "K28", "x": 8.75, "y": 2 },
+ { "label": "K29", "x": 9.75, "y": 2 },
+ { "label": "K2A", "x": 10.75, "y": 2 },
+ { "label": "K2B", "x": 11.75, "y": 2 },
+ { "label": "K2C", "x": 12.75, "y": 2 },
+ { "label": "K2D", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
+ { "label": "K2E", "x": 15, "y": 2 },
+
+ { "label": "K30", "x": 0, "y": 3, "w": 1.25 },
+ { "label": "K31", "x": 1.25, "y": 3 },
+ { "label": "K32", "x": 2.25, "y": 3 },
+ { "label": "K33", "x": 3.25, "y": 3 },
+ { "label": "K34", "x": 4.25, "y": 3 },
+ { "label": "K35", "x": 5.25, "y": 3 },
+ { "label": "K36", "x": 6.25, "y": 3 },
+ { "label": "K37", "x": 7.25, "y": 3 },
+ { "label": "K38", "x": 8.25, "y": 3 },
+ { "label": "K39", "x": 9.25, "y": 3 },
+ { "label": "K3A", "x": 10.25, "y": 3 },
+ { "label": "K3B", "x": 11.25, "y": 3 },
+ { "label": "K3C", "x": 12.25, "y": 3, "w": 1.75 },
+ { "label": "K3D", "x": 14, "y": 3 },
+ { "label": "K3E", "x": 15, "y": 3 },
+
+ { "label": "K40", "x": 0, "y": 4, "w": 1.5 },
+ { "label": "K41", "x": 1.5, "y": 4 },
+ { "label": "K42", "x": 2.5, "y": 4, "w": 1.5 },
+ { "label": "K56", "x": 4, "y": 4, "w": 7 },
+ { "label": "K5B", "x": 11, "y": 4, "w": 1.5 },
+ { "label": "K5C", "x": 13, "y": 4 },
+ { "label": "K5D", "x": 14, "y": 4 },
+ { "label": "K5E", "x": 15, "y": 4 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/mode/m65hi_alpha/keymaps/default/keymap.c b/keyboards/mode/m65hi_alpha/keymaps/default/keymap.c
new file mode 100755
index 0000000000..5b3cb847f9
--- /dev/null
+++ b/keyboards/mode/m65hi_alpha/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
+/*
+Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_65_iso_blocker(
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL ,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_PGUP,
+ KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGDN,
+ KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END ,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_65_iso_blocker(
+ QK_BOOT, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_TRNS, KC_MUTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_65_iso_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_65_iso_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/mode/m65hi_alpha/keymaps/via/keymap.c b/keyboards/mode/m65hi_alpha/keymaps/via/keymap.c
new file mode 100755
index 0000000000..b2bce9ffb8
--- /dev/null
+++ b/keyboards/mode/m65hi_alpha/keymaps/via/keymap.c
@@ -0,0 +1,49 @@
+/*
+Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_65_iso_blocker(
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL ,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_PGUP,
+ KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGDN,
+ KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END ,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_65_iso_blocker(
+ QK_BOOT , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_TRNS, KC_MUTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_65_iso_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_65_iso_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/mode/m65hi_alpha/m65hi_alpha.h b/keyboards/mode/m65hi_alpha/m65hi_alpha.h
new file mode 100644
index 0000000000..a4360e6ef0
--- /dev/null
+++ b/keyboards/mode/m65hi_alpha/m65hi_alpha.h
@@ -0,0 +1,69 @@
+/*
+Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │ │1E │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2D ├───┤
+ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │2E │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │40 │41 │42 │56 │5A │5B │ │5C │5D │5E │
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┐
+ * │40 │41 │42 │56 │5B │ Tsangan
+ * └─────┴───┴─────┴───────────────────────────┴─────┘
+ */
+
+#define LAYOUT_65_iso_blocker( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K56, K5A, K5B, K5C, K5D, K5E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
+ { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E } \
+}
+
+#define LAYOUT_65_iso_blocker_tsangan( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K56, K5B, K5C, K5D, K5E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
+ { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D, K5E } \
+}