aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/dztech/dz60rgb
diff options
context:
space:
mode:
authorGravatar moyi4681 <moyi4681@users.noreply.github.com>2019-03-02 11:40:08 +0800
committerGravatar Drashna Jaelre <drashna@live.com>2019-03-01 19:40:08 -0800
commit681db534f3e0e8efa3a9a03ae11b995e4a443ca9 (patch)
tree600407bc78dc16feca010fa915baf55dfd1a3b8c /keyboards/dztech/dz60rgb
parentd8ccabeeef6e2a2fc3c26b2e3da8b75306f98c4d (diff)
downloadqmk_firmware-681db534f3e0e8efa3a9a03ae11b995e4a443ca9.tar.gz
[Keyboard] add dz60rgb ansi and hhkb support; add dz40rgb (#5231)
* add dz60rgb keyboard * add info.json * Update config.h * Update rules.mk * Update dz60rgb.h * Update dz60rgb.c * Update keymap.c * Update dz60rgb.h * Create readme.md * Update readme.md * Update keymap.c * Update dz60rgb.h * Update info.json * Update info.json * Update dz60rgb.c add dz60rgb ansi, iso and hhkb support * Update dz60rgb.h add dz60rgb ansi, iso and hhkb support * Add files via upload * Add files via upload * Delete config.h * Delete keymap.c * add ansi,iso and hhkb layout * add dz60rgb ansi,iso and hhkb layout * Update keyboards/dztech/dz40rgb/dz40rgb.c Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz60rgb/keymaps/hhkb/config.h Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz60rgb/keymaps/hhkb_iso/config.h Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz60rgb/keymaps/iso/config.h Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz40rgb/rules.mk Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz60rgb/keymaps/ansi/config.h Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz60rgb/keymaps/default/config.h Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update keyboards/dztech/dz40rgb/keymaps/default/config.h Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com> * Update dz40rgb.c
Diffstat (limited to 'keyboards/dztech/dz60rgb')
-rw-r--r--keyboards/dztech/dz60rgb/config.h8
-rw-r--r--keyboards/dztech/dz60rgb/dz60rgb.c588
-rw-r--r--keyboards/dztech/dz60rgb/dz60rgb.h56
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/ansi/config.h4
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c83
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/default/config.h3
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/default/keymap.c2
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/hhkb/config.h4
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c84
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/hhkb_iso/config.h4
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c84
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/iso/config.h4
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/iso/keymap.c83
13 files changed, 999 insertions, 8 deletions
diff --git a/keyboards/dztech/dz60rgb/config.h b/keyboards/dztech/dz60rgb/config.h
index 167b67a87..814cb6520 100644
--- a/keyboards/dztech/dz60rgb/config.h
+++ b/keyboards/dztech/dz60rgb/config.h
@@ -6,7 +6,8 @@
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1219
#define DEVICE_VER 0x0001
-#define MANUFACTURER DOU
+#define MANUFACTURER DZTECH
+
#define PRODUCT DZ60RGB
#define DESCRIPTION DZ60 ARM RGB keyboard
#define MATRIX_ROWS 5
@@ -20,7 +21,6 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_SKIP_FRAMES 0
@@ -30,7 +30,5 @@
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons.
-
#define DRIVER_COUNT 2
-#define DRIVER_1_LED_TOTAL 63
-#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
+
diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c
index 4a4893b8e..99e3b5646 100644
--- a/keyboards/dztech/dz60rgb/dz60rgb.c
+++ b/keyboards/dztech/dz60rgb/dz60rgb.c
@@ -1,4 +1,587 @@
#include "dz60rgb.h"
+#include "config.h"
+#if defined (dzrgb60_iso)
+
+const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, K_14, J_14, L_14},
+ {0, K_13, J_13, L_13},
+ {0, K_12, J_12, L_12},
+ {0, K_11, J_11, L_11},
+ {0, K_10, J_10, L_10},
+ {0, K_9, J_9, L_9},
+ {0, K_8, J_8, L_8},
+ {0, K_7, J_7, L_7},
+ {0, K_6, J_6, L_6},
+ {0, K_5, J_5, L_5},
+ {0, K_4, J_4, L_4},
+ {0, K_3, J_3, L_3},
+ {0, K_2, J_2, L_2},
+ {0, K_1, J_1, L_1},
+
+ {0, H_15, G_15, I_15},
+ {0, H_13, G_13, I_13},
+ {0, H_12, G_12, I_12},
+ {0, H_11, G_11, I_11},
+ {0, H_10, G_10, I_10},
+ {0, H_9, G_9, I_9},
+ {0, H_8, G_8, I_8},
+ {0, H_7, G_7, I_7},
+ {0, H_6, G_6, I_6},
+ {0, H_5, G_5, I_5},
+ {0, H_4, G_4, I_4},
+ {0, H_3, G_3, I_3},
+ {0, H_2, G_2, I_2},
+ {0, H_1, G_1, I_1},
+
+ {0, B_14, A_14, C_14},
+ {0, E_12, D_12, F_12},
+ {0, E_11, D_11, F_11},
+ {0, E_10, D_10, F_10},
+ {0, E_9, D_9, F_9},
+ {0, E_8, D_8, F_8},
+ {0, E_7, D_7, F_7},
+ {0, E_6, D_6, F_6},
+ {0, E_5, D_5, F_5},
+ {0, E_4, D_4, F_4},
+ {0, E_3, D_3, F_3},
+ {0, E_2, D_2, F_2},
+ {0, E_1, D_1, F_1},
+
+ {0, B_13, A_13, C_13},
+ {0, B_11, A_11, C_11},
+ {0, B_10, A_10, C_10},
+ {0, B_9, A_9, C_9},
+ {0, B_8, A_8, C_8},
+ {0, B_7, A_7, C_7},
+ {0, B_6, A_6, C_6},
+ {0, B_5, A_5, C_5},
+ {0, B_4, A_4, C_4},
+ {0, B_3, A_3, C_3},
+ {0, B_2, A_2, C_2},
+ {0, B_1, A_1, C_1},
+
+ {0, B_15, A_15, C_15},
+ {0, E_13, D_13, F_13},
+ {0, B_12, A_12, C_12},
+ {0, E_15, D_15, F_15},
+ {0, B_16, A_16, C_16},
+ {0, E_16, D_16, F_16},
+ {0, H_16, G_16, I_16},
+ {0, K_16, J_16, L_16}
+};
+
+const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+ {{0|(13<<4)}, {16*13.5, 0}, 1},
+ {{0|(12<<4)}, {16*12, 0}, 1},
+ {{0|(11<<4)}, {16*11, 0}, 1},
+ {{0|(10<<4)}, {16*10, 0}, 1},
+ {{0|(9<<4)}, {16*9, 0}, 1},
+ {{0|(8<<4)}, {16*8, 0}, 1},
+ {{0|(7<<4)}, {16*7, 0}, 1},
+ {{0|(6<<4)}, {16*6, 0}, 1},
+ {{0|(5<<4)}, {16*5, 0}, 1},
+ {{0|(4<<4)}, {16*4, 0}, 1},
+ {{0|(3<<4)}, {16*3, 0}, 1},
+ {{0|(2<<4)}, {16*2, 0}, 1},
+ {{0|(1<<4)}, {16*1, 0}, 1},
+ {{0|(0<<4)}, {16*0, 0}, 1},
+
+ {{2|(13<<4)}, {16*13.75, 24}, 1},
+ {{1|(12<<4)}, {16*12.5, 16}, 0},
+ {{1|(11<<4)}, {16*11.5, 16}, 0},
+ {{1|(10<<4)}, {16*10.5, 16}, 0},
+ {{1|(9<<4)}, { 16*9.5, 16}, 0},
+ {{1|(8<<4)}, { 16*8.5, 16}, 0},
+ {{1|(7<<4)}, { 16*7.5, 16}, 0},
+ {{1|(6<<4)}, { 16*6.5, 16}, 0},
+ {{1|(5<<4)}, { 16*5.5, 16}, 0},
+ {{1|(4<<4)}, { 16*4.5, 16}, 0},
+ {{1|(3<<4)}, { 16*3.5, 16}, 0},
+ {{1|(2<<4)}, { 16*2.5, 16}, 0},
+ {{1|(1<<4)}, { 16*1.5, 16}, 0},
+ {{1|(0<<4)}, { 16*0.25, 16}, 1},
+
+ {{1|(13<<4)}, {16*12.75, 32}, 1},
+ {{2|(11<<4)}, {16*11.75, 32}, 0},
+ {{2|(10<<4)}, {16*10.75, 32}, 0},
+ {{2|(9<<4)}, {16*9.75, 32}, 0},
+ {{2|(8<<4)}, {16*8.75, 32}, 0},
+ {{2|(7<<4)}, {16*7.75, 32}, 0},
+ {{2|(6<<4)}, { 16*6.75, 32}, 0},
+ {{2|(5<<4)}, { 16*5.75, 32}, 0},
+ {{2|(4<<4)}, { 16*4.75, 32}, 0},
+ {{2|(3<<4)}, { 16*3.75, 32}, 0},
+ {{2|(2<<4)}, { 16*2.75, 32}, 0},
+ {{2|(1<<4)}, { 16*1.75, 32}, 0},
+ {{2|(0<<4)}, { 16*0.375, 32}, 1},
+
+ {{3|(11<<4)}, {16*13.125, 48}, 1},
+ {{3|(10<<4)}, {16*11.25, 48}, 0},
+ {{3|(9<<4)}, {16*10.25, 48}, 0},
+ {{3|(8<<4)}, {16*9.25, 48}, 0},
+ {{3|(7<<4)}, {16*8.25, 48}, 0},
+ {{3|(6<<4)}, {16*7.25, 48}, 0},
+ {{3|(5<<4)}, {16*6.25, 48}, 0},
+ {{3|(4<<4)}, {16*5.25, 48}, 0},
+ {{3|(3<<4)}, {16*4.25, 48}, 0},
+ {{3|(2<<4)}, {16*3.25, 48}, 0},
+ {{3|(1<<4)}, {16*1.25, 48}, 0},
+ {{3|(0<<4)}, {16*0.625, 48}, 1},
+
+ {{4|(13<<4)}, {16*13.875, 64}, 1},
+ {{4|(11<<4)}, {16*12.625, 64}, 1},
+ {{4|(10<<4)}, {16*11.375, 64}, 1},
+ {{4|(9<<4)}, {16*10.125, 64}, 1},
+ {{4|(5<<4)}, { 16*6.375, 64}, 0},
+ {{4|(2<<4)}, { 16*2.625, 64}, 1},
+ {{4|(1<<4)}, { 16*1.375, 64}, 1},
+ {{4|(0<<4)}, { 16*0.125, 64}, 1}
+
+};
+
+
+
+#elif defined (dzrgb60_hhkb)
+
+const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, H_15, G_15, I_15},
+ {0, K_14, J_14, L_14},
+ {0, K_13, J_13, L_13},
+ {0, K_12, J_12, L_12},
+ {0, K_11, J_11, L_11},
+ {0, K_10, J_10, L_10},
+ {0, K_9, J_9, L_9},
+ {0, K_8, J_8, L_8},
+ {0, K_7, J_7, L_7},
+ {0, K_6, J_6, L_6},
+ {0, K_5, J_5, L_5},
+ {0, K_4, J_4, L_4},
+ {0, K_3, J_3, L_3},
+ {0, K_2, J_2, L_2},
+ {0, K_1, J_1, L_1},
+
+ {0, H_14, G_14, I_14},
+ {0, H_13, G_13, I_13},
+ {0, H_12, G_12, I_12},
+ {0, H_11, G_11, I_11},
+ {0, H_10, G_10, I_10},
+ {0, H_9, G_9, I_9},
+ {0, H_8, G_8, I_8},
+ {0, H_7, G_7, I_7},
+ {0, H_6, G_6, I_6},
+ {0, H_5, G_5, I_5},
+ {0, H_4, G_4, I_4},
+ {0, H_3, G_3, I_3},
+ {0, H_2, G_2, I_2},
+ {0, H_1, G_1, I_1},
+
+ {0, E_14, D_14, F_14},
+ {0, E_12, D_12, F_12},
+ {0, E_11, D_11, F_11},
+ {0, E_10, D_10, F_10},
+ {0, E_9, D_9, F_9},
+ {0, E_8, D_8, F_8},
+ {0, E_7, D_7, F_7},
+ {0, E_6, D_6, F_6},
+ {0, E_5, D_5, F_5},
+ {0, E_4, D_4, F_4},
+ {0, E_3, D_3, F_3},
+ {0, E_2, D_2, F_2},
+ {0, E_1, D_1, F_1},
+
+ {0, B_14, A_14, C_14},
+ {0, B_13, A_13, C_13},
+ {0, B_11, A_11, C_11},
+ {0, B_10, A_10, C_10},
+ {0, B_9, A_9, C_9},
+ {0, B_8, A_8, C_8},
+ {0, B_7, A_7, C_7},
+ {0, B_6, A_6, C_6},
+ {0, B_5, A_5, C_5},
+ {0, B_4, A_4, C_4},
+ {0, B_3, A_3, C_3},
+ {0, B_2, A_2, C_2},
+ {0, B_1, A_1, C_1},
+
+ {0, B_15, A_15, C_15},
+ {0, E_13, D_13, F_13},
+ {0, B_12, A_12, C_12},
+ {0, B_16, A_16, C_16},
+ {0, E_16, D_16, F_16},
+ {0, H_16, G_16, I_16},
+ {0, K_16, J_16, L_16}
+};
+
+const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+ {{2|(12<<4)}, {16*14, 0}, 1},
+ {{0|(13<<4)}, {16*13, 0}, 1},
+ {{0|(12<<4)}, {16*12, 0}, 1},
+ {{0|(11<<4)}, {16*11, 0}, 1},
+ {{0|(10<<4)}, {16*10, 0}, 1},
+ {{0|(9<<4)}, {16*9, 0}, 1},
+ {{0|(8<<4)}, {16*8, 0}, 1},
+ {{0|(7<<4)}, {16*7, 0}, 1},
+ {{0|(6<<4)}, {16*6, 0}, 1},
+ {{0|(5<<4)}, {16*5, 0}, 1},
+ {{0|(4<<4)}, {16*4, 0}, 1},
+ {{0|(3<<4)}, {16*3, 0}, 1},
+ {{0|(2<<4)}, {16*2, 0}, 1},
+ {{0|(1<<4)}, {16*1, 0}, 1},
+ {{0|(0<<4)}, {16*0, 0}, 1},
+
+ {{1|(13<<4)}, {16*13.75, 16}, 1},
+ {{1|(12<<4)}, {16*12.5, 16}, 0},
+ {{1|(11<<4)}, {16*11.5, 16}, 0},
+ {{1|(10<<4)}, {16*10.5, 16}, 0},
+ {{1|(9<<4)}, { 16*9.5, 16}, 0},
+ {{1|(8<<4)}, { 16*8.5, 16}, 0},
+ {{1|(7<<4)}, { 16*7.5, 16}, 0},
+ {{1|(6<<4)}, { 16*6.5, 16}, 0},
+ {{1|(5<<4)}, { 16*5.5, 16}, 0},
+ {{1|(4<<4)}, { 16*4.5, 16}, 0},
+ {{1|(3<<4)}, { 16*3.5, 16}, 0},
+ {{1|(2<<4)}, { 16*2.5, 16}, 0},
+ {{1|(1<<4)}, { 16*1.5, 16}, 0},
+ {{1|(0<<4)}, { 16*0.25, 16}, 1},
+
+ {{2|(13<<4)}, {16*12.75, 32}, 1},
+ {{2|(11<<4)}, {16*11.75, 32}, 0},
+ {{2|(10<<4)}, {16*10.75, 32}, 0},
+ {{2|(9<<4)}, {16*9.75, 32}, 0},
+ {{2|(8<<4)}, {16*8.75, 32}, 0},
+ {{2|(7<<4)}, {16*7.75, 32}, 0},
+ {{2|(6<<4)}, { 16*6.75, 32}, 0},
+ {{2|(5<<4)}, { 16*5.75, 32}, 0},
+ {{2|(4<<4)}, { 16*4.75, 32}, 0},
+ {{2|(3<<4)}, { 16*3.75, 32}, 0},
+ {{2|(2<<4)}, { 16*2.75, 32}, 0},
+ {{2|(1<<4)}, { 16*1.75, 32}, 0},
+ {{2|(0<<4)}, { 16*0.375, 32}, 1},
+
+ {{3|(13<<4)}, {16*14, 48}, 1},
+ {{3|(11<<4)}, {16*12.625, 48}, 0},
+ {{3|(10<<4)}, {16*11.25, 48}, 0},
+ {{3|(9<<4)}, {16*10.25, 48}, 0},
+ {{3|(8<<4)}, {16*9.25, 48}, 0},
+ {{3|(7<<4)}, {16*8.25, 48}, 0},
+ {{3|(6<<4)}, {16*7.25, 48}, 0},
+ {{3|(5<<4)}, {16*6.25, 48}, 0},
+ {{3|(4<<4)}, {16*5.25, 48}, 0},
+ {{3|(3<<4)}, {16*4.25, 48}, 0},
+ {{3|(2<<4)}, {16*3.25, 48}, 0},
+ {{3|(1<<4)}, {16*1.25, 48}, 0},
+ {{3|(0<<4)}, {16*0.625, 48}, 1},
+
+ {{4|(13<<4)}, {16*13.625, 64}, 1},
+ {{4|(11<<4)}, {16*12.375, 64}, 1},
+ {{4|(10<<4)}, {16*11.125, 64}, 1},
+ {{4|(5<<4)}, { 16*7, 64}, 0},
+ {{4|(2<<4)}, { 16*2.875, 64}, 1},
+ {{4|(1<<4)}, { 16*1.625, 64}, 1},
+ {{4|(0<<4)}, { 16*0.375, 64}, 1}
+
+};
+#elif defined (dzrgb60_hhkb_iso)
+const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, H_15, G_15, I_15},
+ {0, K_14, J_14, L_14},
+ {0, K_13, J_13, L_13},
+ {0, K_12, J_12, L_12},
+ {0, K_11, J_11, L_11},
+ {0, K_10, J_10, L_10},
+ {0, K_9, J_9, L_9},
+ {0, K_8, J_8, L_8},
+ {0, K_7, J_7, L_7},
+ {0, K_6, J_6, L_6},
+ {0, K_5, J_5, L_5},
+ {0, K_4, J_4, L_4},
+ {0, K_3, J_3, L_3},
+ {0, K_2, J_2, L_2},
+ {0, K_1, J_1, L_1},
+
+ {0, K_15, J_15, L_15},
+ {0, H_13, G_13, I_13},
+ {0, H_12, G_12, I_12},
+ {0, H_11, G_11, I_11},
+ {0, H_10, G_10, I_10},
+ {0, H_9, G_9, I_9},
+ {0, H_8, G_8, I_8},
+ {0, H_7, G_7, I_7},
+ {0, H_6, G_6, I_6},
+ {0, H_5, G_5, I_5},
+ {0, H_4, G_4, I_4},
+ {0, H_3, G_3, I_3},
+ {0, H_2, G_2, I_2},
+ {0, H_1, G_1, I_1},
+
+ {0, E_15, D_15, F_15},
+ {0, E_12, D_12, F_12},
+ {0, E_11, D_11, F_11},
+ {0, E_10, D_10, F_10},
+ {0, E_9, D_9, F_9},
+ {0, E_8, D_8, F_8},
+ {0, E_7, D_7, F_7},
+ {0, E_6, D_6, F_6},
+ {0, E_5, D_5, F_5},
+ {0, E_4, D_4, F_4},
+ {0, E_3, D_3, F_3},
+ {0, E_2, D_2, F_2},
+ {0, E_1, D_1, F_1},
+
+ {0, B_14, A_14, C_14},
+ {0, B_13, A_13, C_13},
+ {0, B_11, A_11, C_11},
+ {0, B_10, A_10, C_10},
+ {0, B_9, A_9, C_9},
+ {0, B_8, A_8, C_8},
+ {0, B_7, A_7, C_7},
+ {0, B_6, A_6, C_6},
+ {0, B_5, A_5, C_5},
+ {0, B_4, A_4, C_4},
+ {0, B_3, A_3, C_3},
+ {0, B_2, A_2, C_2},
+ {0, B_1, A_1, C_1},
+
+ {0, B_15, A_15, C_15},
+ {0, E_13, D_13, F_13},
+ {0, B_12, A_12, C_12},
+ {0, B_16, A_16, C_16},
+ {0, E_16, D_16, F_16},
+ {0, H_16, G_16, I_16},
+ {0, K_16, J_16, L_16}
+};
+
+const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+ {{2|(12<<4)}, {16*14, 0}, 1},
+ {{0|(13<<4)}, {16*13, 0}, 1},
+ {{0|(12<<4)}, {16*12, 0}, 1},
+ {{0|(11<<4)}, {16*11, 0}, 1},
+ {{0|(10<<4)}, {16*10, 0}, 1},
+ {{0|(9<<4)}, {16*9, 0}, 1},
+ {{0|(8<<4)}, {16*8, 0}, 1},
+ {{0|(7<<4)}, {16*7, 0}, 1},
+ {{0|(6<<4)}, {16*6, 0}, 1},
+ {{0|(5<<4)}, {16*5, 0}, 1},
+ {{0|(4<<4)}, {16*4, 0}, 1},
+ {{0|(3<<4)}, {16*3, 0}, 1},
+ {{0|(2<<4)}, {16*2, 0}, 1},
+ {{0|(1<<4)}, {16*1, 0}, 1},
+ {{0|(0<<4)}, {16*0, 0}, 1},
+
+ {{2|(13<<4)}, {16*13.75, 24}, 1},
+ {{1|(12<<4)}, {16*12.5, 16}, 0},
+ {{1|(11<<4)}, {16*11.5, 16}, 0},
+ {{1|(10<<4)}, {16*10.5, 16}, 0},
+ {{1|(9<<4)}, { 16*9.5, 16}, 0},
+ {{1|(8<<4)}, { 16*8.5, 16}, 0},
+ {{1|(7<<4)}, { 16*7.5, 16}, 0},
+ {{1|(6<<4)}, { 16*6.5, 16}, 0},
+ {{1|(5<<4)}, { 16*5.5, 16}, 0},
+ {{1|(4<<4)}, { 16*4.5, 16}, 0},
+ {{1|(3<<4)}, { 16*3.5, 16}, 0},
+ {{1|(2<<4)}, { 16*2.5, 16}, 0},
+ {{1|(1<<4)}, { 16*1.5, 16}, 0},
+ {{1|(0<<4)}, { 16*0.25, 16}, 1},
+
+ {{1|(13<<4)}, {16*12.75, 32}, 1},
+ {{2|(11<<4)}, {16*11.75, 32}, 0},
+ {{2|(10<<4)}, {16*10.75, 32}, 0},
+ {{2|(9<<4)}, {16*9.75, 32}, 0},
+ {{2|(8<<4)}, {16*8.75, 32}, 0},
+ {{2|(7<<4)}, {16*7.75, 32}, 0},
+ {{2|(6<<4)}, { 16*6.75, 32}, 0},
+ {{2|(5<<4)}, { 16*5.75, 32}, 0},
+ {{2|(4<<4)}, { 16*4.75, 32}, 0},
+ {{2|(3<<4)}, { 16*3.75, 32}, 0},
+ {{2|(2<<4)}, { 16*2.75, 32}, 0},
+ {{2|(1<<4)}, { 16*1.75, 32}, 0},
+ {{2|(0<<4)}, { 16*0.375, 32}, 1},
+
+ {{3|(13<<4)}, {16*14, 48}, 1},
+ {{3|(11<<4)}, {16*12.625, 48}, 0},
+ {{3|(10<<4)}, {16*11.25, 48}, 0},
+ {{3|(9<<4)}, {16*10.25, 48}, 0},
+ {{3|(8<<4)}, {16*9.25, 48}, 0},
+ {{3|(7<<4)}, {16*8.25, 48}, 0},
+ {{3|(6<<4)}, {16*7.25, 48}, 0},
+ {{3|(5<<4)}, {16*6.25, 48}, 0},
+ {{3|(4<<4)}, {16*5.25, 48}, 0},
+ {{3|(3<<4)}, {16*4.25, 48}, 0},
+ {{3|(2<<4)}, {16*3.25, 48}, 0},
+ {{3|(1<<4)}, {16*1.25, 48}, 0},
+ {{3|(0<<4)}, {16*0.625, 48}, 1},
+
+ {{4|(13<<4)}, {16*13.625, 64}, 1},
+ {{4|(11<<4)}, {16*12.375, 64}, 1},
+ {{4|(10<<4)}, {16*11.125, 64}, 1},
+ {{4|(5<<4)}, { 16*7, 64}, 0},
+ {{4|(2<<4)}, { 16*2.875, 64}, 1},
+ {{4|(1<<4)}, { 16*1.625, 64}, 1},
+ {{4|(0<<4)}, { 16*0.375, 64}, 1}
+
+};
+#elif defined (dzrgb60_ansi)
+const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, K_14, J_14, L_14},
+ {0, K_13, J_13, L_13},
+ {0, K_12, J_12, L_12},
+ {0, K_11, J_11, L_11},
+ {0, K_10, J_10, L_10},
+ {0, K_9, J_9, L_9},
+ {0, K_8, J_8, L_8},
+ {0, K_7, J_7, L_7},
+ {0, K_6, J_6, L_6},
+ {0, K_5, J_5, L_5},
+ {0, K_4, J_4, L_4},
+ {0, K_3, J_3, L_3},
+ {0, K_2, J_2, L_2},
+ {0, K_1, J_1, L_1},
+
+ {0, H_14, G_14, I_14},
+ {0, H_13, G_13, I_13},
+ {0, H_12, G_12, I_12},
+ {0, H_11, G_11, I_11},
+ {0, H_10, G_10, I_10},
+ {0, H_9, G_9, I_9},
+ {0, H_8, G_8, I_8},
+ {0, H_7, G_7, I_7},
+ {0, H_6, G_6, I_6},
+ {0, H_5, G_5, I_5},
+ {0, H_4, G_4, I_4},
+ {0, H_3, G_3, I_3},
+ {0, H_2, G_2, I_2},
+ {0, H_1, G_1, I_1},
+
+ {0, E_14, D_14, F_14},
+ {0, E_12, D_12, F_12},
+ {0, E_11, D_11, F_11},
+ {0, E_10, D_10, F_10},
+ {0, E_9, D_9, F_9},
+ {0, E_8, D_8, F_8},
+ {0, E_7, D_7, F_7},
+ {0, E_6, D_6, F_6},
+ {0, E_5, D_5, F_5},
+ {0, E_4, D_4, F_4},
+ {0, E_3, D_3, F_3},
+ {0, E_2, D_2, F_2},
+ {0, E_1, D_1, F_1},
+
+ {0, B_13, A_13, C_13},
+ {0, B_11, A_11, C_11},
+ {0, B_10, A_10, C_10},
+ {0, B_9, A_9, C_9},
+ {0, B_8, A_8, C_8},
+ {0, B_7, A_7, C_7},
+ {0, B_6, A_6, C_6},
+ {0, B_5, A_5, C_5},
+ {0, B_4, A_4, C_4},
+ {0, B_3, A_3, C_3},
+ {0, B_2, A_2, C_2},
+ {0, B_1, A_1, C_1},
+
+ {0, B_15, A_15, C_15},
+ {0, E_13, D_13, F_13},
+ {0, B_12, A_12, C_12},
+ {0, E_15, D_15, F_15},
+ {0, B_16, A_16, C_16},
+ {0, E_16, D_16, F_16},
+ {0, H_16, G_16, I_16},
+ {0, K_16, J_16, L_16}
+};
+
+const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+ {{0|(13<<4)}, {16*13.5, 0}, 1},
+ {{0|(12<<4)}, {16*12, 0}, 1},
+ {{0|(11<<4)}, {16*11, 0}, 1},
+ {{0|(10<<4)}, {16*10, 0}, 1},
+ {{0|(9<<4)}, {16*9, 0}, 1},
+ {{0|(8<<4)}, {16*8, 0}, 1},
+ {{0|(7<<4)}, {16*7, 0}, 1},
+ {{0|(6<<4)}, {16*6, 0}, 1},
+ {{0|(5<<4)}, {16*5, 0}, 1},
+ {{0|(4<<4)}, {16*4, 0}, 1},
+ {{0|(3<<4)}, {16*3, 0}, 1},
+ {{0|(2<<4)}, {16*2, 0}, 1},
+ {{0|(1<<4)}, {16*1, 0}, 1},
+ {{0|(0<<4)}, {16*0, 0}, 1},
+
+ {{1|(13<<4)}, {16*13.75, 16}, 1},
+ {{1|(12<<4)}, {16*12.5, 16}, 0},
+ {{1|(11<<4)}, {16*11.5, 16}, 0},
+ {{1|(10<<4)}, {16*10.5, 16}, 0},
+ {{1|(9<<4)}, { 16*9.5, 16}, 0},
+ {{1|(8<<4)}, { 16*8.5, 16}, 0},
+ {{1|(7<<4)}, { 16*7.5, 16}, 0},
+ {{1|(6<<4)}, { 16*6.5, 16}, 0},
+ {{1|(5<<4)}, { 16*5.5, 16}, 0},
+ {{1|(4<<4)}, { 16*4.5, 16}, 0},
+ {{1|(3<<4)}, { 16*3.5, 16}, 0},
+ {{1|(2<<4)}, { 16*2.5, 16}, 0},
+ {{1|(1<<4)}, { 16*1.5, 16}, 0},
+ {{1|(0<<4)}, { 16*0.25, 16}, 1},
+
+ {{2|(13<<4)}, {16*13.375, 24}, 1},
+ {{2|(11<<4)}, {16*11.75, 32}, 0},
+ {{2|(10<<4)}, {16*10.75, 32}, 0},
+ {{2|(9<<4)}, {16*9.75, 32}, 0},
+ {{2|(8<<4)}, {16*8.75, 32}, 0},
+ {{2|(7<<4)}, {16*7.75, 32}, 0},
+ {{2|(6<<4)}, { 16*6.75, 32}, 0},
+ {{2|(5<<4)}, { 16*5.75, 32}, 0},
+ {{2|(4<<4)}, { 16*4.75, 32}, 0},
+ {{2|(3<<4)}, { 16*3.75, 32}, 0},
+ {{2|(2<<4)}, { 16*2.75, 32}, 0},
+ {{2|(1<<4)}, { 16*1.75, 32}, 0},
+ {{2|(0<<4)}, { 16*0.375, 32}, 1},
+
+ {{3|(11<<4)}, {16*13.125, 48}, 1},
+ {{3|(10<<4)}, {16*11.25, 48}, 0},
+ {{3|(9<<4)}, {16*10.25, 48}, 0},
+ {{3|(8<<4)}, {16*9.25, 48}, 0},
+ {{3|(7<<4)}, {16*8.25, 48}, 0},
+ {{3|(6<<4)}, {16*7.25, 48}, 0},
+ {{3|(5<<4)}, {16*6.25, 48}, 0},
+ {{3|(4<<4)}, {16*5.25, 48}, 0},
+ {{3|(3<<4)}, {16*4.25, 48}, 0},
+ {{3|(2<<4)}, {16*3.25, 48}, 0},
+ {{3|(1<<4)}, {16*1.25, 48}, 0},
+ {{3|(0<<4)}, {16*0.625, 48}, 1},
+
+ {{4|(13<<4)}, {16*13.875, 64}, 1},
+ {{4|(11<<4)}, {16*12.625, 64}, 1},
+ {{4|(10<<4)}, {16*11.375, 64}, 1},
+ {{4|(9<<4)}, {16*10.125, 64}, 1},
+ {{4|(5<<4)}, { 16*6.375, 64}, 0},
+ {{4|(2<<4)}, { 16*2.625, 64}, 1},
+ {{4|(1<<4)}, { 16*1.375, 64}, 1},
+ {{4|(0<<4)}, { 16*0.125, 64}, 1}
+};
+#else
+
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
@@ -72,7 +655,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
{0, B_16, A_16, C_16},
{0, E_16, D_16, F_16},
{0, H_16, G_16, I_16},
- {0, K_16, J_16, L_16},
+ {0, K_16, J_16, L_16}
};
const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
@@ -142,9 +725,10 @@ const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
{{4|(5<<4)}, { 17.23*5, 64}, 0},
{{4|(2<<4)}, { 17.23*2, 64}, 1},
{{4|(1<<4)}, { 17.23*1, 64}, 1},
- {{4|(0<<4)}, { 17.23*0, 64}, 1},
+ {{4|(0<<4)}, { 17.23*0, 64}, 1}
};
+#endif
void matrix_init_kb(void) {
matrix_init_user();
diff --git a/keyboards/dztech/dz60rgb/dz60rgb.h b/keyboards/dztech/dz60rgb/dz60rgb.h
index a029933f1..1884ddfb0 100644
--- a/keyboards/dztech/dz60rgb/dz60rgb.h
+++ b/keyboards/dztech/dz60rgb/dz60rgb.h
@@ -1,6 +1,7 @@
#pragma once
#define XXX KC_NO
#include "quantum.h"
+
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
@@ -14,3 +15,58 @@
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D } \
}
+#define LAYOUT_ISO( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { 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, XXX, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, XXX }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, XXX, K4D } \
+}
+
+#define LAYOUT_HHKB( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,\
+ 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, K3D,\
+ K40, K41, K42, K45, K4A, K4B, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D}, \
+ { 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, XXX, K3D }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D } \
+}
+
+#define LAYOUT_HHKB_ISO( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ 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, K3D, \
+ K40, K41, K42, K45, K4A, K4B, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,}, \
+ { 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, XXX, K3D }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D } \
+}
+
+#define LAYOUT_ANSI( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { 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, XXX, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, XXX }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, XXX, K4D } \
+}
diff --git a/keyboards/dztech/dz60rgb/keymaps/ansi/config.h b/keyboards/dztech/dz60rgb/keymaps/ansi/config.h
new file mode 100644
index 000000000..2e7122b3c
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/ansi/config.h
@@ -0,0 +1,4 @@
+#pragma once
+#define dzrgb60_ansi
+#define DRIVER_1_LED_TOTAL 61
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
diff --git a/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c b/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c
new file mode 100644
index 000000000..fcdf29e4e
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c
@@ -0,0 +1,83 @@
+#include QMK_KEYBOARD_H
+extern bool g_suspend_state;
+#define _LAYER0 0
+#define _LAYER1 1
+#define _LAYER2 2
+#define _LAYER3 3
+#define _LAYER4 4
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_LAYER0] = LAYOUT_ANSI( /* Base */
+ KC_GESC, 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_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_BSLASH,\
+ CTL_T(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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(2), KC_RCTL),
+ [_LAYER1] = LAYOUT_ANSI( /* FN */
+ KC_GESC, 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_DEL ,\
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, \
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ [_LAYER2] = LAYOUT_ANSI( /* FN2 */
+ KC_TRNS, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET ,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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),
+ [_LAYER3] = LAYOUT_ANSI( /* FN3 */
+ KC_GESC, 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_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_BSLASH,\
+ CTL_T(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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TRNS,MO(4), KC_RALT, KC_RCTL),
+ [_LAYER4] = LAYOUT_ANSI( /* FN4 */
+ KC_GESC, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, \
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ };
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
+ rgb_led led;
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ led = g_rgb_leds[i];
+ if (led.matrix_co.raw < 0xFF) {
+ if (led.modifier) {
+ rgb_matrix_set_color( i, red, green, blue );
+ }
+ }
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ uint8_t this_led = host_keyboard_leds();
+ if (!g_suspend_state) {
+ switch (biton32(layer_state)) {
+ case _LAYER1:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+ case _LAYER2:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+ case _LAYER3:
+ rgb_matrix_layer_helper(0x00, 0x00, 0xFF, false); break;
+ case _LAYER4:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+ }
+ }
+ if ( this_led & (1<<USB_LED_CAPS_LOCK)) {
+ rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
+ }
+
+}
+
+void matrix_init_user(void) {
+ //user initialization
+}
+
+void matrix_scan_user(void) {
+ //user matrix
+}
+
+ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+ }
diff --git a/keyboards/dztech/dz60rgb/keymaps/default/config.h b/keyboards/dztech/dz60rgb/keymaps/default/config.h
new file mode 100644
index 000000000..558b6023d
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/default/config.h
@@ -0,0 +1,3 @@
+#pragma once
+#define DRIVER_1_LED_TOTAL 63
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
diff --git a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c
index 8de71848d..2c667ef42 100644
--- a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c
+++ b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c
@@ -10,7 +10,7 @@ extern bool g_suspend_state;
#define _LAYER7 7
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYER0] = LAYOUT( /* Base */
- KC_GESC, 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,\
+ RESET, RGB_MOD, 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_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_BSLASH,\
CTL_T(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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL),\
diff --git a/keyboards/dztech/dz60rgb/keymaps/hhkb/config.h b/keyboards/dztech/dz60rgb/keymaps/hhkb/config.h
new file mode 100644
index 000000000..a0a0e899f
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/hhkb/config.h
@@ -0,0 +1,4 @@
+#pragma once
+#define dzrgb60_hhkb
+#define DRIVER_1_LED_TOTAL 62
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
diff --git a/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c b/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c
new file mode 100644
index 000000000..6ba3ac7e6
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c
@@ -0,0 +1,84 @@
+#include QMK_KEYBOARD_H
+extern bool g_suspend_state;
+#define _LAYER0 0
+#define _LAYER1 1
+#define _LAYER2 2
+#define _LAYER3 3
+#define _LAYER4 4
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_LAYER0] = LAYOUT_HHKB( /* Base */
+ KC_GESC, 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_BSLS,
+ 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_BSPC,
+ CTL_T(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_DEL, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_RCTL),
+ [_LAYER1] = LAYOUT_HHKB( /* FN */
+ KC_GRAVE, 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS, KC_TRNS, KC_TRNS),
+ [_LAYER2] = LAYOUT_HHKB( /* FN2 */
+ KC_TRNS, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET ,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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),
+ [_LAYER3] = LAYOUT_HHKB( /* FN3 */
+ KC_GESC, 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_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_BSLASH,\
+ CTL_T(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_DEL, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(4),\
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(4), KC_RGUI, KC_RCTL),
+ [_LAYER4] = LAYOUT_HHKB( /* FN4 */
+ KC_GESC, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS),
+ };
+
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
+ rgb_led led;
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ led = g_rgb_leds[i];
+ if (led.matrix_co.raw < 0xFF) {
+ if (led.modifier) {
+ rgb_matrix_set_color( i, red, green, blue );
+ }
+ }
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ uint8_t this_led = host_keyboard_leds();
+ if (!g_suspend_state) {
+ switch (biton32(layer_state)) {
+ case _LAYER1:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+ case _LAYER2:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+ case _LAYER3:
+ rgb_matrix_layer_helper(0x00, 0x00, 0xFF, false); break;
+ case _LAYER4:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+ }
+ }
+ if ( this_led & (1<<USB_LED_CAPS_LOCK)) {
+ rgb_matrix_set_color(41, 0xFF, 0xFF, 0xFF);
+ }
+
+}
+
+void matrix_init_user(void) {
+ //user initialization
+}
+
+void matrix_scan_user(void) {
+ //user matrix
+}
+
+ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+ }
diff --git a/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/config.h b/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/config.h
new file mode 100644
index 000000000..bdafd9cd6
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/config.h
@@ -0,0 +1,4 @@
+#pragma once
+#define dzrgb60_hhkb_iso
+#define DRIVER_1_LED_TOTAL 62
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
diff --git a/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c b/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c
new file mode 100644
index 000000000..772eddf07
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c
@@ -0,0 +1,84 @@
+#include QMK_KEYBOARD_H
+extern bool g_suspend_state;
+#define _LAYER0 0
+#define _LAYER1 1
+#define _LAYER2 2
+#define _LAYER3 3
+#define _LAYER4 4
+#define _LAYER5 5
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_LAYER0] = LAYOUT_HHKB_ISO( /* Base */
+ KC_GESC, 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_BSLS,
+ 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_BSPC,
+ CTL_T(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_DEL, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_RCTL),
+ [_LAYER1] = LAYOUT_HHKB_ISO( /* FN */
+ KC_GRAVE, 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS, KC_TRNS, KC_TRNS),
+ [_LAYER2] = LAYOUT_HHKB_ISO( /* LIGHT */
+ KC_TRNS, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET ,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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),
+ [_LAYER3] = LAYOUT_HHKB_ISO( /* NUMPAD */
+ KC_GESC, 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_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_BSLASH,\
+ CTL_T(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_DEL, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(4),\
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(4), KC_RGUI, KC_RCTL),
+ [_LAYER4] = LAYOUT_HHKB_ISO( /* MAC */
+ KC_GESC, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS),
+ };
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
+ rgb_led led;
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ led = g_rgb_leds[i];
+ if (led.matrix_co.raw < 0xFF) {
+ if (led.modifier) {
+ rgb_matrix_set_color( i, red, green, blue );
+ }
+ }
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ uint8_t this_led = host_keyboard_leds();
+ if (!g_suspend_state) {
+ switch (biton32(layer_state)) {
+ case _LAYER1:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+ case _LAYER2:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+ case _LAYER3:
+ rgb_matrix_layer_helper(0x00, 0x00, 0xFF, false); break;
+ case _LAYER4:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+ }
+ }
+ if ( this_led & (1<<USB_LED_CAPS_LOCK)) {
+ rgb_matrix_set_color(41, 0xFF, 0xFF, 0xFF);
+ }
+
+}
+
+void matrix_init_user(void) {
+ //user initialization
+}
+
+void matrix_scan_user(void) {
+ //user matrix
+}
+
+ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+ }
diff --git a/keyboards/dztech/dz60rgb/keymaps/iso/config.h b/keyboards/dztech/dz60rgb/keymaps/iso/config.h
new file mode 100644
index 000000000..bc830ff18
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/iso/config.h
@@ -0,0 +1,4 @@
+#pragma once
+#define dzrgb60_iso
+#define DRIVER_1_LED_TOTAL 61
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
diff --git a/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c b/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c
new file mode 100644
index 000000000..a78e23703
--- /dev/null
+++ b/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c
@@ -0,0 +1,83 @@
+#include QMK_KEYBOARD_H
+extern bool g_suspend_state;
+#define _LAYER0 0
+#define _LAYER1 1
+#define _LAYER2 2
+#define _LAYER3 3
+#define _LAYER4 4
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_LAYER0] = LAYOUT_ANSI( /* Base */
+ KC_GESC, 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_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_BSLASH,\
+ CTL_T(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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(2), KC_RCTL),
+ [_LAYER1] = LAYOUT_ANSI( /* FN */
+ TO(3), 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_DEL,\
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, \
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ [_LAYER2] = LAYOUT_ANSI( /* FN2 */
+ KC_TRNS, 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_DEL,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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),
+ [_LAYER3] = LAYOUT_ANSI( /* FN3 */
+ KC_GESC, 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_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_BSLASH,\
+ CTL_T(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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TRNS,MO(4), KC_RALT, KC_RCTL),
+ [_LAYER4] = LAYOUT_ANSI( /* FN4 */
+ KC_GESC, 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_DEL ,\
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET,\
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, KC_TRNS,\
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, \
+ KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ };
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
+ rgb_led led;
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ led = g_rgb_leds[i];
+ if (led.matrix_co.raw < 0xFF) {
+ if (led.modifier) {
+ rgb_matrix_set_color( i, red, green, blue );
+ }
+ }
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ uint8_t this_led = host_keyboard_leds();
+ if (!g_suspend_state) {
+ switch (biton32(layer_state)) {
+ case _LAYER1:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+ case _LAYER2:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+ case _LAYER3:
+ rgb_matrix_layer_helper(0x00, 0x00, 0xFF, false); break;
+ case _LAYER4:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+ }
+ }
+ if ( this_led & (1<<USB_LED_CAPS_LOCK)) {
+ rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
+ }
+
+}
+
+void matrix_init_user(void) {
+ //user initialization
+}
+
+void matrix_scan_user(void) {
+ //user matrix
+}
+
+ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+ }