From 83bc0b9e80ddbc3d494fb5fa348e601e90f08f01 Mon Sep 17 00:00:00 2001
From: paulgali <paulgali@live.co.uk>
Date: Sun, 5 Jul 2020 06:20:22 +0400
Subject: [PATCH] [Keyboard] Updated VIA Support for DP60 (#9508)

* Updated VIA Support

- Added LAYOUT_all Support for VIA compatibility
- Updated default dp60\layouts\via\keymap.c to mmirror changes to
LAYOUT_all
- Rules.mk updated in both base and via directories.


Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
---
 keyboards/dp60/config.h             |  2 +-
 keyboards/dp60/dp60.h               | 45 +++++++++++++++++++++++++-
 keyboards/dp60/keymaps/via/keymap.c | 50 ++++++++++++++---------------
 keyboards/dp60/keymaps/via/rules.mk |  1 +
 keyboards/dp60/rules.mk             |  4 +--
 5 files changed, 73 insertions(+), 29 deletions(-)

diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h
index 3875d303ea..2bedf51970 100644
--- a/keyboards/dp60/config.h
+++ b/keyboards/dp60/config.h
@@ -11,7 +11,7 @@
 #define PRODUCT_ID      0x00BE
 #define DEVICE_VER      0x0001
 #define MANUFACTURER    astro
-#define PRODUCT         Dumplings
+#define PRODUCT         DP60
 #define DESCRIPTION     60% rgb keyboard with ble extension
 
 /* key matrix size */
diff --git a/keyboards/dp60/dp60.h b/keyboards/dp60/dp60.h
index 32bbb6dc0c..a197ac2fa3 100644
--- a/keyboards/dp60/dp60.h
+++ b/keyboards/dp60/dp60.h
@@ -9,6 +9,49 @@
 // This a shortcut to help you visually see your layout.
 // The first section contains all of the arguements
 // The second converts the arguments into a two-dimensional array
+    // Matrix layout to accomodate all layouts. Good for VIA mapping correctly, and it doesnt exist yet
+    //
+    //┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐  ┌──────┐
+    //│0A││0B││0C││0D││0E││0F││0G││4H││0H││0I││0J││0K││0L││0M││0N│  │  0N  │      split backspace support
+    //└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘  └──────┘
+    // 00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e      0e
+    //┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐    ┌────┐
+    //│1A  ││1B││1C││1D││1E││1F││1G││1H││1I││1J││1K││1L││1M││1N  │    │    │      iso enter - see below
+    //└────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘    └────┘
+    //  10   11  12  13  14  15  16  17  18  19  1a  1b  1c   1e
+    //┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐  ┌──┐┌──┐
+    //│ 2A  ││2B││2C││2D││2E││2F││2G││2H││2I││2J││2K││2L││  2N   │  │2M││2N│      iso enter
+    //└─────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└───────┘  └──┘└──┘
+    // 20     22  23  24  25  26  27  28  29  2a  2b  2c    2e       2d  2e
+    //┌───────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────────┐
+    //│3A │ 3B││3C││3D││3E││3F││3G││3H││3I││3J││3K││3L││  3M  │3N│                split shifts (left and right)
+    //└───────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└─────────┘
+    // 30   31  32  33  34  35  36  37  38  39  3a  3b    3c   3d
+    //┌───┐┌───┐┌───┐┌───────────────────────┐┌───┐┌───┐┌───┐┌───┐
+    //│4A ││4B ││4C ││         4G            ││4K ││4L ││4M ││4N │                wkl/hhkb use 4L (k49), 4M (k4a) , 4N (k4b)
+    //└───┘└───┘└───┘└───────────────────────┘└───┘└───┘└───┘└───┘
+    // 40   42   43            47              48   49   4a   4b
+    //end of mapping
+//
+//added k0d
+//added k2d KC_NUMS for iso
+//added k31 split l-shift, k3d split r-shift
+
+#define LAYOUT_all( \
+  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,          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, \
+k40,          k42, k43,                k47, k48, k49, k4a, k4b       \
+) \
+{ \
+  {k00,   k01,  k02, k03,   k04,   k05,   k06,                          k08, k09, k0a, k0b, k0c, k0d, k0e}, \
+  {k10,   k11,  k12, k13,   k14,   k15,   k16, k17,                     k18, k19, k1a, k1b, k1c,      k1e}, \
+  {k20,         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}, \
+  {k40,         k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO,  k48, k49, k4a, k4b}  \
+}
+
 #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, k1e, \
@@ -28,7 +71,7 @@
     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, \
 	k20,      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,\
+	k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
 	k40,      k42, k43,                k47, k48, k49, k4a, k4b       \
 ) \
 { \
diff --git a/keyboards/dp60/keymaps/via/keymap.c b/keyboards/dp60/keymaps/via/keymap.c
index 8227055766..1742f17b50 100644
--- a/keyboards/dp60/keymaps/via/keymap.c
+++ b/keyboards/dp60/keymaps/via/keymap.c
@@ -1,31 +1,31 @@
 #include QMK_KEYBOARD_H
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-    [0] = LAYOUT_60_ansi_split_bs_rshift(
-      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_DEL, 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_BSLS,
-      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,   MO(1),
-      KC_LCTL,  KC_LGUI,  KC_LALT,                        KC_SPC,                  KC_RALT,KC_RGUI,  TG(1),   KC_RCTL),
-      
-    [1] = LAYOUT_60_ansi_split_bs_rshift(
-      _______, 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_PSCR,
-      RESET,   RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,
-      _______,        _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME,KC_END,_______,
-      _______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-      _______,_______,_______,                        _______,                        _______,_______,TG(0),_______),
+    [0] = LAYOUT_all(
+      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_DEL, 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_BSLS,
+      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_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,   MO(1),
+      KC_LCTL,  KC_LGUI,  KC_LALT,                        KC_SPC,                  KC_RGUI,KC_RALT,  MO(1),   KC_RCTL),
 
-    [2] = LAYOUT_60_ansi_split_bs_rshift(
+    [1] = LAYOUT_all(
+      KC_GRV, 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,
+      RESET,   _______,KC_UP,_______,_______,_______,_______,_______,KC_PAUS,KC_SLCK,KC_PSCR,KC_PGUP,_______,KC_INS,
+      _______,        KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______, _______,_______,KC_HOME,KC_END,_______, _______,
+      _______,_______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGDN,_______,_______,
+      _______,_______,_______,                        _______,                        _______,MO(2),TG(0),_______),
+
+    [2] = LAYOUT_all(
+      _______, _______,_______,  _______,_______,  _______,_______,  _______,_______,  _______,_______, _______,_______,_______,_______,
+      _______,   _______,KC_VOLU,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
+      KC_MUTE,        KC_MPRV,KC_VOLD,KC_MNXT,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______,
+      _______, _______,       RGB_TOG,RGB_MOD,RGB_RMOD,RGB_VAI,RGB_VAD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,_______,_______,_______,
+      _______,_______,_______,                        KC_MPLY,                        _______,_______,_______,_______),
+
+    [3] = LAYOUT_all(
       _______, _______,_______,  _______,_______,  _______,_______,  _______,_______,  _______,_______, _______,_______,_______,_______,
       _______,   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-      _______,        _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
-      _______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-      _______,_______,_______,                        _______,                        _______,_______,_______,_______),
-
-    [3] = LAYOUT_60_ansi_split_bs_rshift(
-      _______, _______,_______,  _______,_______,  _______,_______,  _______,_______,  _______,_______, _______,_______,_______,_______,
-      _______,   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-      _______,        _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
-      _______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-      _______,_______,_______,                        _______,                        _______,_______,_______,_______)    
-};
\ No newline at end of file
+      _______,        _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
+      _______, _______,       _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
+      _______,_______,_______,                        _______,                        _______,_______,_______,_______)
+};
diff --git a/keyboards/dp60/keymaps/via/rules.mk b/keyboards/dp60/keymaps/via/rules.mk
index 36b7ba9cbc..e4b4d91da9 100644
--- a/keyboards/dp60/keymaps/via/rules.mk
+++ b/keyboards/dp60/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
 VIA_ENABLE = yes
 LTO_ENABLE = yes
+RGBLIGHT_ENABLE = yes #enables underglow, but will not disable per key leds
diff --git a/keyboards/dp60/rules.mk b/keyboards/dp60/rules.mk
index 015e4fddb9..bcd6fb4c94 100644
--- a/keyboards/dp60/rules.mk
+++ b/keyboards/dp60/rules.mk
@@ -22,14 +22,14 @@ COMMAND_ENABLE = no         # Commands for debug and configuration
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = no # USB Nkey Rollover
+NKRO_ENABLE = yes # USB Nkey Rollover
 BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality on B7 by default
 MIDI_ENABLE = no            # MIDI support
 UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
-#RGBLIGHT_ENABLE = yes       # Use RGB underglow light
+RGBLIGHT_ENABLE = no        # Use RGB underglow light
 RGB_MATRIX_ENABLE = yes     # Use RGB matrix
 
 LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift