From b31df1af94abdf26bb7bcbf5183c05be1c500005 Mon Sep 17 00:00:00 2001
From: MechMerlin <30334081+mechmerlin@users.noreply.github.com>
Date: Thu, 1 Oct 2020 12:36:52 -0700
Subject: [PATCH] KBDFans KBD19x: VIA Support & LAYOUT macro fixing (#10401)
* first pass at fixing the key labeling
* second pass of fixing key labeling
* third pass of this key naming
* another pass of changing key naming
* another pass
* another pass
* another pass
* renamed it all
* give a good vid and pid
* add via keymap
* add on to the comments
* update readme and comments
* one more small change
---
keyboards/kbdfans/kbd19x/config.h | 4 +-
keyboards/kbdfans/kbd19x/kbd19x.h | 77 ++++++++++---------
keyboards/kbdfans/kbd19x/keymaps/via/keymap.c | 56 ++++++++++++++
keyboards/kbdfans/kbd19x/keymaps/via/rules.mk | 2 +
keyboards/kbdfans/kbd19x/readme.md | 6 +-
5 files changed, 102 insertions(+), 43 deletions(-)
create mode 100644 keyboards/kbdfans/kbd19x/keymaps/via/keymap.c
create mode 100644 keyboards/kbdfans/kbd19x/keymaps/via/rules.mk
diff --git a/keyboards/kbdfans/kbd19x/config.h b/keyboards/kbdfans/kbd19x/config.h
index 3fcda998c22..1146afa628b 100644
--- a/keyboards/kbdfans/kbd19x/config.h
+++ b/keyboards/kbdfans/kbd19x/config.h
@@ -20,8 +20,8 @@ along with this program. If not, see .
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x0000
+#define VENDOR_ID 0x4B42
+#define PRODUCT_ID 0x0191
#define DEVICE_VER 0x0001
#define MANUFACTURER KBDFans
#define PRODUCT kbd19x
diff --git a/keyboards/kbdfans/kbd19x/kbd19x.h b/keyboards/kbdfans/kbd19x/kbd19x.h
index 73f3cbe16c8..28ad831589c 100644
--- a/keyboards/kbdfans/kbd19x/kbd19x.h
+++ b/keyboards/kbdfans/kbd19x/kbd19x.h
@@ -41,61 +41,62 @@ inline void kbd19x_nmlk_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
* represents the switch matrix.
*/
-// 2u backspace: XXX, k1e
-// split backspace: k1d, k1e
+// 2u backspace: XXX, k71
+// split backspace: k70, k71
-// 2u numpad +: k2i, XXX
-// split numpad +: k2i, k3i
+// 2u numpad +: k2c, XXX
+// split numpad +: k2c, k3c
-// 2u numpad enter: k4i, XXX
-// split numpad enter: k4i, k5i
+// 2u numpad enter: k4c, XXX
+// split numpad enter: k4c, k5c
// 2.25u lshift: k40, XXX
// split (1.25u, 1u) lshift: k40, k41
-// ANSI enter or ISO enter: k3e
-// backslash or NUHS: k2e
+// ANSI enter or ISO enter: k38
+// Key next to ISO enter: k72
+// backslash or NUHS: k73
// left winkey: k50, k51, k52
// left WKL: k50, XXX, k52
-// right winkey: k59, k5a, k5b
-// right WKL: k59, XXX, k5b
+// right winkey: k55, k56, k57
+// right WKL: k55, XXX, k57
#define LAYOUT_all( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, k0h, k0i, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, k1i, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, k2h, k2i, \
- k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3e, k3f, k3g, k3h, k3i, \
- k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4e, k4f, k4g, k4h, k4i, \
- k50, k51, k52, k56, k59, k5a, k5b, k5d, k5e, k5f, k5g, k5h, k5i \
+ k00, k01, k02, k03, k04, k60, k61, k62, k63, k05, k06, k07, k08, k72, k09, k0a, k0b, k0c, \
+ k10, k11, k12, k13, k14, k64, k65, k66, k67, k15, k16, k17, k18, k70, k71, k19, k1a, k1b, k1c, \
+ k20, k21, k22, k23, k24, k68, k69, k6a, k6b, k25, k26, k27, k28, k73, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k6c, k75, k76, k77, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k78, k79, k7a, k7b, k45, k46, k47, k48, k74, k49, k4a, k4b, k4c, \
+ k50, k51, k52, k59, k55, k56, k57, k58, k53, k54, k5a, k5b, k5c \
)\
{\
- {k00, k01, k02, k03, k04, k09, k0a, k0b, k0c, k0f, k0g, k0h, k0i},\
- {k10, k11, k12, k13, k14, k19, k1a, k1b, k1c, k1f, k1g, k1h, k1i},\
- {k20, k21, k22, k23, k24, k29, k2a, k2b, k2c, k2f, k2g, k2h, k2i},\
- {k30, k32, k33, k34, k35, k3a, k3b, k3c, k3e, k3f, k3g, k3h, k3i},\
- {k40, k41, k42, k43, k44, k49, k4a, k4b, k4c, k4f, k4g, k4h, k4i},\
- {k50, k51, k52, k5e, k5f, k59, k5a, k5b, k5d, k56, k5g, k5h, k5i},\
- {k05, k06, k07, k08, k15, k16, k17, k18, k25, k26, k27, k28, k36},\
- {k1d, k1e, k0e, k2e, k4e, k37, k38, k39, k45, k46, k47, k48, XXX},\
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c},\
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c},\
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c},\
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c},\
+ {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c},\
+ {k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c},\
+ {k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, k6b, k6c},\
+ {k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, k7b, XXX},\
}
#define LAYOUT_ansi( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, k0h, k0i, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, k1h, k1i, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, k2h, k2i, \
- k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3e, k3f, k3g, k3h, \
- k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4e, k4f, k4g, k4h, k4i, \
- k50, k51, k52, k56, k59, k5a, k5b, k5d, k5e, k5f, k5g, k5h \
+ k00, k01, k02, k03, k04, k60, k61, k62, k63, k05, k06, k07, k08, k72, k09, k0a, k0b, k0c, \
+ k10, k11, k12, k13, k14, k64, k65, k66, k67, k15, k16, k17, k18, k71, k19, k1a, k1b, k1c, \
+ k20, k21, k22, k23, k24, k68, k69, k6a, k6b, k25, k26, k27, k28, k73, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k6c, k75, k76, k77, k35, k36, k37, k38, k39, k3a, k3b, \
+ k40, k42, k43, k44, k78, k79, k7a, k7b, k45, k46, k47, k48, k74, k49, k4a, k4b, k4c, \
+ k50, k51, k52, k59, k55, k56, k57, k58, k53, k54, k5a, k5b \
)\
{\
- {k00, k01, k02, k03, k04, k09, k0a, k0b, k0c, k0f, k0g, k0h, k0i},\
- {k10, k11, k12, k13, k14, k19, k1a, k1b, k1c, k1f, k1g, k1h, k1i},\
- {k20, k21, k22, k23, k24, k29, k2a, k2b, k2c, k2f, k2g, k2h, k2i},\
- {k30, k32, k33, k34, k35, k3a, k3b, k3c, k3e, k3f, k3g, k3h, XXX},\
- {k40, XXX, k42, k43, k44, k49, k4a, k4b, k4c, k4f, k4g, k4h, k4i},\
- {k50, k51, k52, k5e, k5f, k59, k5a, k5b, k5d, k56, k5g, k5h, XXX},\
- {k05, k06, k07, k08, k15, k16, k17, k18, k25, k26, k27, k28, k36},\
- {XXX, k1e, k0e, k2e, k4e, k37, k38, k39, k45, k46, k47, k48, XXX},\
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c},\
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c},\
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c},\
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX},\
+ {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c},\
+ {k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, XXX},\
+ {k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, k6b, k6c},\
+ {XXX, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, k7b, XXX},\
}
diff --git a/keyboards/kbdfans/kbd19x/keymaps/via/keymap.c b/keyboards/kbdfans/kbd19x/keymaps/via/keymap.c
new file mode 100644
index 00000000000..138fe97f1b2
--- /dev/null
+++ b/keyboards/kbdfans/kbd19x/keymaps/via/keymap.c
@@ -0,0 +1,56 @@
+/*
+Copyright 2020 MechMerlin
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ansi( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, BL_STEP, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGDN, \
+ KC_GRV, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
+ 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_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, \
+ 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_ENT, KC_P4, KC_P5, KC_P6, \
+ KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
+ ),
+ [1] = LAYOUT_ansi( /* Func */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, \
+ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+ [2] = LAYOUT_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+ [3] = LAYOUT_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+};
+
+
diff --git a/keyboards/kbdfans/kbd19x/keymaps/via/rules.mk b/keyboards/kbdfans/kbd19x/keymaps/via/rules.mk
new file mode 100644
index 00000000000..36b7ba9cbc9
--- /dev/null
+++ b/keyboards/kbdfans/kbd19x/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/kbdfans/kbd19x/readme.md b/keyboards/kbdfans/kbd19x/readme.md
index 50adfb77f0a..da37474adc8 100644
--- a/keyboards/kbdfans/kbd19x/readme.md
+++ b/keyboards/kbdfans/kbd19x/readme.md
@@ -10,9 +10,9 @@ The KBD19x is a compact-1800 keyboard kit produced by KBDfans, offering a number
**Reset Sequence:** Using this firmware sets `BOOTLOADER_ENABLE` to `lite`. While plugging in, hold the top left key, commonly programmed as `Esc` to put your board into bootloader mode.
-Keyboard Maintainer: [jshuf](https://github.com/jshuf)
-Hardware Supported: KBD19x PCB
-Hardware Availability: [KBDfans](https://kbdfans.cn)
+* Keyboard Maintainer: [jshuf](https://github.com/jshuf), [MechMerlin](https://github.com/mechmerlin)
+* Hardware Supported: KBD19x PCB
+* Hardware Availability: [KBDfans](https://kbdfans.cn)
Make example for this keyboard (after setting up your build environment):