|
|
@@ -0,0 +1,167 @@
|
|
|
+/* Copyright 2020 noroadsleft
|
|
|
+ *
|
|
|
+ * 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"
|
|
|
+
|
|
|
+/*
|
|
|
+ * So... to be perfectly honest, I'm guessing at these based on a KBFirmware
|
|
|
+ * JSON file and photos of the PCB from a user on QMK Discord.
|
|
|
+ *
|
|
|
+ * This board has the most unusual matrix wiring I've seen on any mechanical
|
|
|
+ * keyboard PCB. The 2u Backspace doesn't share its matrix position with either
|
|
|
+ * of the keys used in a split Backspace. Left GUI and Left Alt are on
|
|
|
+ * different columns depending on how large the Left Ctrl key is (which could be
|
|
|
+ * as wide as 1.75u). I don't have much idea what's going on in the bottom right
|
|
|
+ * corner. Pretty much everything in the drawings below is basically a
|
|
|
+ * semi-educated guess.
|
|
|
+ *
|
|
|
+ * Sorry if you're coming in here after the fact. I don't have the PCB on-hand.
|
|
|
+ *
|
|
|
+ * - noroadsleft
|
|
|
+ *
|
|
|
+ * ┌───────┐
|
|
|
+ * 2u Backspace │0E │
|
|
|
+ * └───────┘
|
|
|
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ANSI Enter ISO Enter
|
|
|
+ * ANSI LSft │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0F │ ┌─────┐ ┌─────┐
|
|
|
+ * ┌────────┐ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │1D │ │2D │
|
|
|
+ * │30 │ ─┐ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ ┌──┴─────┤ ┌──┴┐ │
|
|
|
+ * └────────┘ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2D │ │2C │ │
|
|
|
+ * ISO LSft │ │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ └────────┘ └───┴────┘
|
|
|
+ * ┌────┬───┐ │ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬──┴┬───┤ ┌──────────┐
|
|
|
+ * │30 │31 │ ─┼> │LSft │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │3D │3F │ │3D │ ANSI RSft
|
|
|
+ * └────┴───┘ │ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ └──────────┘
|
|
|
+ * 2u LSft │ │40 │41 │43 │48 │4A │4B │4C │4E │4F │ ┌───┬───┬───┐
|
|
|
+ * ┌───────┐ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ │3B │3D │3F │ 3x1u "RSft"
|
|
|
+ * │30 │ ─┘ └───┴───┴───┘
|
|
|
+ * └───────┘ ┌──────┬───┐
|
|
|
+ * │3E │3F │ HHKB RSft
|
|
|
+ * └──────┴───┘
|
|
|
+ * ┌──────┬────┬────┬────┬───────────┬────┬────┬───┬───┬───┬───┐
|
|
|
+ * │40 │42 │44 │45 │48 │49 │4A │4B │4C │4E │4F │ Minila
|
|
|
+ * └──────┴────┴────┴────┴───────────┴────┴────┴───┴───┴───┴───┘
|
|
|
+ * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
|
|
|
+ * │40 │41 │43 │48 │4A │4B │4D │4F │ Standard
|
|
|
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
|
|
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
|
|
+ * │40 │41 │43 │48 │4B │4D │4F │ Tsangan/HHKB
|
|
|
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
|
|
+ * ┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐
|
|
|
+ * │40 │41 │43 │48 │4B │4C │4E │4F │
|
|
|
+ * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
|
|
|
+ * ┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐
|
|
|
+ * │40 │41 │43 │48 │4A │4C │4E │4F │
|
|
|
+ * └─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘
|
|
|
+ */
|
|
|
+
|
|
|
+#define LAYOUT_all( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
|
|
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \
|
|
|
+ K40, K41, K42, K43, K44, K45, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
|
|
|
+ { K40, K41, K42, K43, K44, K45, KC_NO, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \
|
|
|
+}
|
|
|
+
|
|
|
+#define LAYOUT_60_ansi( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
|
|
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
|
|
+ K40, K41, K43, K48, K4A, K4B, K4D, K4F \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO }, \
|
|
|
+ { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, KC_NO, K4D, KC_NO, K4F }, \
|
|
|
+}
|
|
|
+
|
|
|
+#define LAYOUT_60_ansi_arrow( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
|
|
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3F, \
|
|
|
+ K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, KC_NO, K3F }, \
|
|
|
+ { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \
|
|
|
+}
|
|
|
+
|
|
|
+#define LAYOUT_60_ansi_arrow_split_bs( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
|
|
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3F, \
|
|
|
+ K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, KC_NO, K3F }, \
|
|
|
+ { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \
|
|
|
+}
|
|
|
+
|
|
|
+#define LAYOUT_60_ansi_tsangan( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
|
|
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
|
|
+ K40, K41, K43, K48, K4B, K4D, K4F \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO }, \
|
|
|
+ { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, K4D, KC_NO, K4F }, \
|
|
|
+}
|
|
|
+
|
|
|
+#define LAYOUT_60_hhkb( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
|
|
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E, K3F, \
|
|
|
+ K41, K43, K48, K4B, K4D \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, KC_NO, K3E, K3F }, \
|
|
|
+ { KC_NO, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, K4D, KC_NO, KC_NO }, \
|
|
|
+}
|
|
|
+
|
|
|
+#define LAYOUT_64_ansi( \
|
|
|
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
|
|
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
|
|
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
|
|
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
|
|
|
+ K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \
|
|
|
+) { \
|
|
|
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
|
|
|
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
|
|
|
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
|
|
|
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, K3F }, \
|
|
|
+ { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \
|
|
|
+}
|