From 13a514923a726cfa04c170c533cd706fa5d3a37e Mon Sep 17 00:00:00 2001
From: Donald Kjer <don.kjer@gmail.com>
Date: Thu, 22 Jul 2021 00:09:00 -0700
Subject: [PATCH] [Keyboard] Add Durgod Taurus K310 keyboard (#12314)

Co-authored-by: Tyler Tidman <tyler.tidman@draak.ca>
Co-authored-by: Simon Arlott <sa.me.uk>
---
 keyboards/durgod/k310/base/readme.md          |   6 +
 keyboards/durgod/k310/base/rules.mk           |   1 +
 keyboards/durgod/k310/readme.md               |   4 +
 keyboards/durgod/k310/rules.mk                |   1 +
 keyboards/durgod/k320/base/readme.md          |   6 +
 keyboards/durgod/k320/base/rules.mk           |   1 +
 .../durgod/k320/keymaps/default/keymap.json   |  26 --
 .../default_toggle_mac_windows/keymap.c       | 367 ----------------
 keyboards/durgod/k320/keymaps/via/keymap.c    |  90 ----
 keyboards/durgod/k320/keymaps/via/readme.md   |  12 -
 keyboards/durgod/k320/keymaps/via/rules.mk    |   4 -
 keyboards/durgod/k320/readme.md               |  55 +--
 keyboards/durgod/k320/rules.mk                |  30 +-
 keyboards/durgod/{k320 => k3x0}/config.h      |  14 +-
 keyboards/durgod/k3x0/halconf.h               |  22 +
 keyboards/durgod/k3x0/k310/base/config.h      |  23 +
 keyboards/durgod/k3x0/k310/base/readme.md     |  27 ++
 keyboards/durgod/k3x0/k310/base/rules.mk      |   1 +
 keyboards/durgod/k3x0/k310/config.h           |  36 ++
 .../durgod/{k320 => k3x0/k310}/info.json      |  69 ++-
 keyboards/durgod/k3x0/k310/k310.h             |  78 ++++
 keyboards/durgod/k3x0/k310/readme.md          |  10 +
 keyboards/durgod/k3x0/k310/rules.mk           |   4 +
 keyboards/durgod/k3x0/k320/base/config.h      |  23 +
 keyboards/durgod/k3x0/k320/base/readme.md     |  27 ++
 keyboards/durgod/k3x0/k320/base/rules.mk      |   1 +
 keyboards/durgod/k3x0/k320/config.h           |  33 ++
 keyboards/durgod/k3x0/k320/info.json          | 415 ++++++++++++++++++
 keyboards/durgod/{ => k3x0}/k320/k320.h       |  44 +-
 .../{ => k3x0}/k320/keymaps/kuenhlee/keymap.c |   0
 .../k320/keymaps/kuenhlee/readme.md           |   0
 .../{ => k3x0}/k320/keymaps/kuenhlee/rules.mk |   0
 keyboards/durgod/k3x0/k320/readme.md          |  10 +
 keyboards/durgod/k3x0/k320/rules.mk           |   4 +
 keyboards/durgod/{k320/k320.c => k3x0/k3x0.c} |  40 +-
 keyboards/durgod/k3x0/k3x0.h                  |  47 ++
 .../durgod/k3x0/keymaps/chimera/keymap.c      | 373 ++++++++++++++++
 .../keymaps/chimera}/readme.md                |  10 +-
 .../keymaps/chimera}/rules.mk                 |   0
 .../durgod/k3x0/keymaps/default/keymap.json   |  26 ++
 .../{k320 => k3x0}/keymaps/default/readme.md  |   6 +-
 .../keymaps/default_mac/keymap.json           |  22 +-
 .../keymaps/default_mac/readme.md             |   0
 keyboards/durgod/k3x0/keymaps/typhon/keymap.c | 373 ++++++++++++++++
 .../durgod/k3x0/keymaps/typhon/readme.md      |  65 +++
 keyboards/durgod/k3x0/keymaps/typhon/rules.mk |   2 +
 keyboards/durgod/k3x0/keymaps/via/keymap.c    |  92 ++++
 keyboards/durgod/k3x0/keymaps/via/readme.md   |   6 +
 keyboards/durgod/k3x0/keymaps/via/rules.mk    |   1 +
 keyboards/durgod/k3x0/readme.md               |  51 +++
 keyboards/durgod/k3x0/rules.mk                |  28 ++
 users/talljoe/talljoe.h                       |   1 +
 52 files changed, 1945 insertions(+), 642 deletions(-)
 create mode 100644 keyboards/durgod/k310/base/readme.md
 create mode 100644 keyboards/durgod/k310/base/rules.mk
 create mode 100644 keyboards/durgod/k310/readme.md
 create mode 100644 keyboards/durgod/k310/rules.mk
 create mode 100644 keyboards/durgod/k320/base/readme.md
 create mode 100644 keyboards/durgod/k320/base/rules.mk
 delete mode 100644 keyboards/durgod/k320/keymaps/default/keymap.json
 delete mode 100644 keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c
 delete mode 100644 keyboards/durgod/k320/keymaps/via/keymap.c
 delete mode 100644 keyboards/durgod/k320/keymaps/via/readme.md
 delete mode 100644 keyboards/durgod/k320/keymaps/via/rules.mk
 rename keyboards/durgod/{k320 => k3x0}/config.h (86%)
 create mode 100644 keyboards/durgod/k3x0/halconf.h
 create mode 100644 keyboards/durgod/k3x0/k310/base/config.h
 create mode 100644 keyboards/durgod/k3x0/k310/base/readme.md
 create mode 100644 keyboards/durgod/k3x0/k310/base/rules.mk
 create mode 100644 keyboards/durgod/k3x0/k310/config.h
 rename keyboards/durgod/{k320 => k3x0/k310}/info.json (82%)
 create mode 100644 keyboards/durgod/k3x0/k310/k310.h
 create mode 100644 keyboards/durgod/k3x0/k310/readme.md
 create mode 100644 keyboards/durgod/k3x0/k310/rules.mk
 create mode 100644 keyboards/durgod/k3x0/k320/base/config.h
 create mode 100644 keyboards/durgod/k3x0/k320/base/readme.md
 create mode 100644 keyboards/durgod/k3x0/k320/base/rules.mk
 create mode 100644 keyboards/durgod/k3x0/k320/config.h
 create mode 100644 keyboards/durgod/k3x0/k320/info.json
 rename keyboards/durgod/{ => k3x0}/k320/k320.h (75%)
 rename keyboards/durgod/{ => k3x0}/k320/keymaps/kuenhlee/keymap.c (100%)
 rename keyboards/durgod/{ => k3x0}/k320/keymaps/kuenhlee/readme.md (100%)
 rename keyboards/durgod/{ => k3x0}/k320/keymaps/kuenhlee/rules.mk (100%)
 create mode 100644 keyboards/durgod/k3x0/k320/readme.md
 create mode 100644 keyboards/durgod/k3x0/k320/rules.mk
 rename keyboards/durgod/{k320/k320.c => k3x0/k3x0.c} (64%)
 create mode 100644 keyboards/durgod/k3x0/k3x0.h
 create mode 100644 keyboards/durgod/k3x0/keymaps/chimera/keymap.c
 rename keyboards/durgod/{k320/keymaps/default_toggle_mac_windows => k3x0/keymaps/chimera}/readme.md (89%)
 rename keyboards/durgod/{k320/keymaps/default_toggle_mac_windows => k3x0/keymaps/chimera}/rules.mk (100%)
 create mode 100644 keyboards/durgod/k3x0/keymaps/default/keymap.json
 rename keyboards/durgod/{k320 => k3x0}/keymaps/default/readme.md (66%)
 rename keyboards/durgod/{k320 => k3x0}/keymaps/default_mac/keymap.json (72%)
 rename keyboards/durgod/{k320 => k3x0}/keymaps/default_mac/readme.md (100%)
 create mode 100644 keyboards/durgod/k3x0/keymaps/typhon/keymap.c
 create mode 100644 keyboards/durgod/k3x0/keymaps/typhon/readme.md
 create mode 100644 keyboards/durgod/k3x0/keymaps/typhon/rules.mk
 create mode 100644 keyboards/durgod/k3x0/keymaps/via/keymap.c
 create mode 100644 keyboards/durgod/k3x0/keymaps/via/readme.md
 create mode 100644 keyboards/durgod/k3x0/keymaps/via/rules.mk
 create mode 100644 keyboards/durgod/k3x0/readme.md
 create mode 100644 keyboards/durgod/k3x0/rules.mk

diff --git a/keyboards/durgod/k310/base/readme.md b/keyboards/durgod/k310/base/readme.md
new file mode 100644
index 0000000000..1f818dacc9
--- /dev/null
+++ b/keyboards/durgod/k310/base/readme.md
@@ -0,0 +1,6 @@
+# Taurus K310
+
+Base Model - no backlight leds
+
+See: [K310](../../k3x0/k310/base/readme.md)
+
diff --git a/keyboards/durgod/k310/base/rules.mk b/keyboards/durgod/k310/base/rules.mk
new file mode 100644
index 0000000000..ff432cc4aa
--- /dev/null
+++ b/keyboards/durgod/k310/base/rules.mk
@@ -0,0 +1 @@
+DEFAULT_FOLDER=durgod/k3x0/k310/base
diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md
new file mode 100644
index 0000000000..234fcc875d
--- /dev/null
+++ b/keyboards/durgod/k310/readme.md
@@ -0,0 +1,4 @@
+# K310
+
+See: [K310](../k3x0/k310/readme.md)
+
diff --git a/keyboards/durgod/k310/rules.mk b/keyboards/durgod/k310/rules.mk
new file mode 100644
index 0000000000..e200539b26
--- /dev/null
+++ b/keyboards/durgod/k310/rules.mk
@@ -0,0 +1 @@
+DEFAULT_FOLDER=durgod/k3x0/k310
diff --git a/keyboards/durgod/k320/base/readme.md b/keyboards/durgod/k320/base/readme.md
new file mode 100644
index 0000000000..8b74e28e54
--- /dev/null
+++ b/keyboards/durgod/k320/base/readme.md
@@ -0,0 +1,6 @@
+# Taurus K320
+
+Base Model - no backlight leds
+
+See: [K320](../../k3x0/k320/base/readme.md)
+
diff --git a/keyboards/durgod/k320/base/rules.mk b/keyboards/durgod/k320/base/rules.mk
new file mode 100644
index 0000000000..de33470cc0
--- /dev/null
+++ b/keyboards/durgod/k320/base/rules.mk
@@ -0,0 +1 @@
+DEFAULT_FOLDER=durgod/k3x0/k320/base
diff --git a/keyboards/durgod/k320/keymaps/default/keymap.json b/keyboards/durgod/k320/keymaps/default/keymap.json
deleted file mode 100644
index d8242ae764..0000000000
--- a/keyboards/durgod/k320/keymaps/default/keymap.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "keyboard": "durgod/k320",
-  "keymap": "default",
-  "layout": "LAYOUT_all",
-  "layers": [
-    [
-      "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",     "KC_PSCR", "KC_SLCK", "KC_PAUS",
-      "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_INS",  "KC_HOME", "KC_PGUP",
-      "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_DEL",  "KC_END",  "KC_PGDN",
-      "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",               "KC_UP",
-      "KC_LCTL", "KC_LGUI", "KC_LALT",                                  "KC_SPC",                                   "KC_RALT", "MO(1)",   "KC_APP",  "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT"
-    ],
-    [
-      "KC_TRNS",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "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_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",            "KC_TRNS",               "KC_TRNS",
-      "KC_TRNS", "KC_TGUI", "KC_TRNS",                                  "KC_TRNS",                                  "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS",  "KC_TRNS"
-    ]
-  ],
-  "author":"dkjer",
-  "notes":"",
-  "version":1
-}
diff --git a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c b/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c
deleted file mode 100644
index 8494fbe039..0000000000
--- a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/* Copyright 2021 kuenhlee and Don Kjer
- *
- * 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
-
-// Layer shorthand
-enum _layer {
-    _WBL,
-    _WFL,
-    _WSL,
-    _MBL,
-    _MFL,
-    _MSL
-};
-
-#ifndef DEFAULT_LAYOUT
-# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout.
-#endif
-#ifndef ALT_LAYOUT
-# define ALT_LAYOUT     _MBL // Layout to display 'MR' led when active.
-#endif
-
-static bool win_key_locked = false;
-static bool mac_media_locked = false;
-static bool win_appkey_pressed = false;
-static bool mac_fnkey_pressed = false;
-
-
-// Defines the keycodes used by our macros in process_record_user
-enum custom_keycodes {
-    KC_TGUI = SAFE_RANGE,  // Toggle between GUI Lock or Unlock (Windows)
-    KC_TMED,               // Toggle between Fx keys or Media keys (Mac)
-    KC_WFN,                // Windows function key
-    KC_MFN,                // Mac function key
-    MO_WSL,                // Windows system key
-    MO_MSL,                // Mac system key
-    DF_W2MBL,              // Change layout from Windows to Mac
-    DF_M2WBL               // Change layout from Mac to Windows
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  /* Keymap _WBL: Windows Base Layer (Default Layer)
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |Esc  |f1| f2| f3| f4|  | f5| f6| f7| f8|   | f9|f10|f11|f12|  |Prnt|ScLk|Paus|
-   * |-----------------------------------------------------------|  |--------------|
-   * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backsp |  | Ins|Home|PgUp|
-   * |-----------------------------------------------------------|  |--------------|
-   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|  | Del| End|PgDn|
-   * |-----------------------------------------------------------|  `--------------'
-   * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #|Ret |
-   * |-----------------------------------------------------------|        ,----.
-   * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |        | Up |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |Ctrl|Gui |Alt |      Space            |Alt |Func |App|Ctrl |   |Lft| Dn |Rig |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_WBL] = LAYOUT_all( /* Windows Base Layer */
-      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,      KC_PSCR,  KC_SLCK,  KC_PAUS,
-      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_INS,   KC_HOME,  KC_PGUP,
-      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_DEL,   KC_END,   KC_PGDN,
-      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,               KC_UP,
-      KC_LCTL,  KC_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT,  KC_WFN,   KC_APP,   KC_RCTL,     KC_LEFT,  KC_DOWN,  KC_RGHT
-  ),
-  /* Keymap _WFL: Windows Function Layer
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |   |Play|Stop|Prev|Next| |Mute|Vol+|Vol-|    | |  |  |  |  |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    |
-   * |-----------------------------------------------------------|  `--------------'
-   * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |
-   * |-----------------------------------------------------------|        ,----.
-   * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |    |Lock|    |                       |    |Func |Sys|     |   |   |    |    |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_WFL] = LAYOUT_all( /* Windows First Layer */
-      _______,            KC_MPLY,  KC_MSTP,  KC_MPRV,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,               _______,
-      _______,  KC_TGUI,  _______,                                _______,                                _______,  _______,  MO_WSL,   _______,     _______,  _______,  _______
-  ),
-  /* Keymap _WSL: Windows System Layer
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |Reset |Sleep|     |     |Power| |  |  |  |  | |  |  |  |MAC|  |              |
-   * |-----------------------------------------------------------|  |--------------|
-   * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    |
-   * |-----------------------------------------------------------|  `--------------'
-   * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |
-   * |-----------------------------------------------------------|        ,----.
-   * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |    |    |    |                       |    |Func |Sys|     |   |   |    |    |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_WSL] = LAYOUT_all( /* Windows Second / System Layer */
-      RESET,              KC_SLEP,  XXXXXXX,  XXXXXXX,  KC_PWR,   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  DF_W2MBL,    XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  DEBUG,    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,            XXXXXXX,               XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,                                XXXXXXX,                                XXXXXXX,  _______,  _______,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX
-  ),
-
-  /* Keymap _MBL: Mac Base Layer (Alternate Layout)
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |Esc  |f1| f2| f3| f4|  | f5| f6| f7| f8|   | f9|f10|f11|f12|  | f13| f14| f15|
-   * |-----------------------------------------------------------|  |--------------|
-   * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backsp |  | Ins|Home|PgUp|
-   * |-----------------------------------------------------------|  |--------------|
-   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|  | Del| End|PgDn|
-   * |-----------------------------------------------------------|  `--------------'
-   * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #|Ret |
-   * |-----------------------------------------------------------|        ,----.
-   * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |        | Up |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |Ctrl|Alt |Gui |      Space            |Gui |Alt|Func |Ctrl |   |Lft| Dn |Rig |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_MBL] = LAYOUT_all( /* Mac Base Layer */
-      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,      KC_F13,   KC_F14,   KC_F15,
-      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_INS,   KC_HOME,  KC_PGUP,
-      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_DEL,   KC_END,   KC_PGDN,
-      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,               KC_UP,
-      KC_LCTL,  KC_LALT,  KC_LGUI,                                KC_SPC,                                 KC_RGUI,  KC_RALT,  KC_MFN,   KC_RCTL,     KC_LEFT,  KC_DOWN,  KC_RGHT
-  ),
-  /* Keymap _MFL: Mac Function Layer
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |  |Bri-|Bri+|MCon|LPad| |  |  |Prv|Ply| |Nxt|Mute|Vol-|Vol+|  |TMed|    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    |
-   * |-----------------------------------------------------------|  `--------------'
-   * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |
-   * |-----------------------------------------------------------|        ,----.
-   * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |    |    |    |                       |    |Sys|Func |     |   |   |    |    |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_MFL] = LAYOUT_all( /* Mac First Layer */
-      _______,            KC_BRID,  KC_BRIU,  _______,  _______,  _______,  _______,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,     KC_TMED,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,               _______,
-      _______,  _______,  _______,                                _______,                                _______,  MO_MSL,   _______,  _______,     _______,  _______,  _______
-  ),
-  /* Keymap _MSL: Mac System Layer
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |Reset |   |    |     |Sleep| |  |  |  |  | |  |  |  |WIN|  |              |
-   * |-----------------------------------------------------------|  |--------------|
-   * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    |
-   * |-----------------------------------------------------------|  `--------------'
-   * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |
-   * |-----------------------------------------------------------|        ,----.
-   * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |    |    |    |                       |    |Sys|Func |     |   |   |    |    |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_MSL] = LAYOUT_all( /* Mac Second / System Layer */
-      RESET,              XXXXXXX,  XXXXXXX,  XXXXXXX,  KC_SLEP,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  DF_M2WBL,    XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  DEBUG,    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,            XXXXXXX,               XXXXXXX,
-      XXXXXXX,  XXXXXXX,  XXXXXXX,                                XXXXXXX,                                XXXXXXX,  _______,  _______,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX
-  )
-};
-
-void unlock_win_key(void) {
-    win_key_locked = false;
-    mac_media_locked = false;
-    writePinHigh(LED_WIN_LOCK_PIN);
-}
-
-void toggle_lock_win_key(void) {
-    win_key_locked = !win_key_locked;
-    writePin(LED_WIN_LOCK_PIN, !win_key_locked);
-}
-
-void toggle_lock_media_key(void) {
-  mac_media_locked = !mac_media_locked;
-  writePin(LED_WIN_LOCK_PIN, !mac_media_locked);
-}
-
-#ifdef CONSOLE_ENABLE
-void dprint_global_layers(void) {
-    dprint("Global Layers:");
-    if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); }
-    if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); }
-    if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); }
-    if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); }
-    dprintf("\n");
-}
-
-void dprint_layers(layer_state_t state) {
-    dprint("Layers:");
-    if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); }
-    if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); }
-    if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); }
-    if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); }
-    dprintf("\n");
-}
-#endif
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
-#ifdef CONSOLE_ENABLE
-    dprintf("default_layer_state_set_user: 0x%x\n", state);
-    dprint_global_layers();
-#endif
-    // Disable windows key lock on default layer transition.
-    unlock_win_key();
-    win_appkey_pressed = false;
-    mac_fnkey_pressed = false;
-    writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT));
-    return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef CONSOLE_ENABLE
-    dprintf("layer_state_set_user: 0x%x\n", state);
-    dprint_layers(state);
-#endif
-    return state;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-    switch (keycode) {
-        case KC_TGUI:
-            if (!record->event.pressed) {
-                // Toggle GUI lock on key release
-                toggle_lock_win_key();
-            }
-            break;
-        case KC_TMED:
-            // Only trigger when Fn key is also held down, to avoid accidental unlock.
-            if (!mac_fnkey_pressed) { return false; }
-            if (!record->event.pressed) {
-                // Toggle Media Lock on key release
-                toggle_lock_media_key();
-            }
-            break;
-        case KC_LGUI:
-            if (win_key_locked) { return false; }
-            break;
-        case KC_WFN:
-            // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down.
-            if (record->event.pressed) {
-                layer_on(_WFL);
-                if (win_appkey_pressed) {
-                    // Also enable Secondary layer if App key is being held down.
-                    win_appkey_pressed = false;
-                    layer_on(_WSL);
-                }
-            } else {
-                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
-                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
-            }
-            break;
-        case KC_APP:
-            if (record->event.pressed) {
-                // Don't actually press down the app menu key
-                win_appkey_pressed = true;
-            } else {
-                if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
-                if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
-                if (win_appkey_pressed) {
-                    win_appkey_pressed = false;
-                    // Tap the KC_APP key on key release.
-                    tap_code(KC_APP);
-                }
-            }
-            return false;
-            break;
-        case KC_MFN:
-            // Mac Fn key.  Emit Fn keycode, and also transition layers similar to KC_WFN.
-            if (record->event.pressed) {
-                mac_fnkey_pressed = true;
-                layer_on(_MFL);
-                // Also enable Secondary layer if Right-Alt key is being held down.
-                if (get_mods() & MOD_BIT(KC_RALT)) {
-                    layer_on(_MSL);
-                }
-            } else {
-                mac_fnkey_pressed = false;
-                if (!mac_media_locked) {
-                    if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
-                    if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
-                }
-            }
-            break;
-        case KC_RALT:
-            // Disable MSL/WFL layer on key-up.
-            if (!record->event.pressed) {
-                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
-                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
-            }
-            break;
-        case MO_WSL:
-            if (record->event.pressed) {
-                layer_on(_WSL);
-            } else {
-                if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
-                if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
-            }
-            break;
-        case MO_MSL:
-            if (record->event.pressed) {
-                layer_on(_MSL);
-            } else {
-                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
-                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
-            }
-            break;
-        case DF_W2MBL:
-            if (!record->event.pressed) {
-                // Switch base layer, but preserve first/secondary layers.
-                default_layer_set(1UL<<_MBL);
-                layer_state_set(1UL<<_MFL | 1UL<<_MSL);
-            }
-            break;
-        case DF_M2WBL:
-            if (!record->event.pressed) {
-                // Switch base layer, but preserve first/secondary layers.
-                default_layer_set(1UL<<_WBL);
-                layer_state_set(1UL<<_WFL | 1UL<<_WSL);
-            }
-            break;
-        case RESET:
-            if (record->event.pressed) {
-                // Flash LEDs to indicate bootloader mode is enabled.
-                on_all_leds();
-            }
-            break;
-    }
-    return true;
-}
-
-void keyboard_post_init_user(void) {
-    default_layer_set(1UL<<DEFAULT_LAYOUT);
-}
-
diff --git a/keyboards/durgod/k320/keymaps/via/keymap.c b/keyboards/durgod/k320/keymaps/via/keymap.c
deleted file mode 100644
index fc46e3860f..0000000000
--- a/keyboards/durgod/k320/keymaps/via/keymap.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2021 Maxime Coirault
- *
- * 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
-
-// Layer shorthand
-enum _layer {
-    _BASE,
-    _FUNC,
-    _LAYER3,
-    _LAYER4
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  /* Keymap _BASE: Base Layer (Default Layer)
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |Esc  |f1| f2| f3| f4|  | f5| f6| f7| f8|   | f9|f10|f11|f12|  |Prnt|ScLk|Paus|
-   * |-----------------------------------------------------------|  |--------------|
-   * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backsp |  | Ins|Home|PgUp|
-   * |-----------------------------------------------------------|  |--------------|
-   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     |  | Del| End|PgDn|
-   * |------------------------------------------------------ Ret |  `--------------'
-   * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #|    |
-   * |-----------------------------------------------------------|        ,----.
-   * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |        | Up |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |Ctrl|Gui |Alt |      Space            |Alt | Fn  |App |Ctrl|   |Lft| Dn |Rig |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_BASE] = LAYOUT_all( /* Base Layer */
-      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,       KC_PSCR,  KC_SLCK,  KC_PAUS,
-      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_INS,   KC_HOME,  KC_PGUP,
-      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_DEL,   KC_END,   KC_PGDN,
-      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,                KC_UP,
-      KC_LCTL,  KC_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT,  MO(_FUNC),KC_APP,   KC_RCTL,      KC_LEFT,  KC_DOWN,  KC_RGHT
-  ),
-  /* Keymap _FUNC: Function Layer
-   * ,-----------------------------------------------------------.  ,--------------.
-   * |   |Play|Stop|Prev|Next| |Mute|Vol+|Vol-|    | |  |  |  |  |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    |
-   * |-----------------------------------------------------------|  |--------------|
-   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    |
-   * |-------------------------------------------------------    |  `--------------'
-   * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |
-   * |-----------------------------------------------------------|        ,----.
-   * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    |
-   * |-----------------------------------------------------------|   ,-------------.
-   * |    |    |    |                       |    |Func |    |    |   |   |    |    |
-   * `-----------------------------------------------------------'   `-------------'
-   */
-  [_FUNC] = LAYOUT_all( /* Function Layer */
-      _______,            KC_MPLY,  KC_MSTP,  KC_MPRV,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,                _______,
-      _______,  _______,  _______,                                _______,                                _______,  _______,  _______,  _______,      _______,  _______,  _______
-  ),
-  [_LAYER3] = LAYOUT_all( /* Layer 3 */
-      _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,                _______,
-      _______,  _______,  _______,                                _______,                                _______,  _______,  _______,  _______,      _______,  _______,  _______
-  ),
-  [_LAYER4] = LAYOUT_all( /* Layer 4 */
-      _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
-      _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,                _______,
-      _______,  _______,  _______,                                _______,                                _______,  _______,  _______,  _______,      _______,  _______,  _______
-  )
-};
-
diff --git a/keyboards/durgod/k320/keymaps/via/readme.md b/keyboards/durgod/k320/keymaps/via/readme.md
deleted file mode 100644
index d1b2ac191d..0000000000
--- a/keyboards/durgod/k320/keymaps/via/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# The default keymap for Durgod Taurus K320.
-
-Layer 0 : Standard 87/88 keys TKL layout
-
-Layer 1 : Media control
-- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
-
-## Supported PCBs
-
-This firmware was tested on a Durgod K320 ISO with the PCB marked "DGK320ST-Single v1.0 HS20181227".
-
-The pcb features switch holes for ANSI layout, so this firmware might be compatible with with the Durgod K320 ANSI.
diff --git a/keyboards/durgod/k320/keymaps/via/rules.mk b/keyboards/durgod/k320/keymaps/via/rules.mk
deleted file mode 100644
index 8815b6a0a6..0000000000
--- a/keyboards/durgod/k320/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-OPT_DEFS += -DWINLOCK_DISABLED
-
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md
index 551a292824..b8ca5b6da1 100644
--- a/keyboards/durgod/k320/readme.md
+++ b/keyboards/durgod/k320/readme.md
@@ -1,57 +1,4 @@
 # K320
 
-This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight.
+See: [K320](../k3x0/k320/readme.md)
 
-* Keyboard Maintainer: [dkjer](https://github.com/dkjer)
-* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6
-* Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en
-
-## Instructions
-
-### Build
-
-Make command example for this keyboard (after setting up your build environment):
-
-    make durgod/k320:default
-
-Flashing example for this keyboard:
-
-    make durgod/k320:default:flash
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
-
-### Initial Flash
-
-For first Flashing from initial Stock's Firmware
-
-1. Back up original Firmware Image:
-- Unplug
-- Short Boot0 to Vdd (See below)
-- Plug In USB
-- Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image:
-  - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html
-  - Using dfu-util:
-
-        dfu-util --list
-        dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN}
-
-2. Flash the QMK Firmware Image.
-- Put board into Bootloader mode, using the same method as when backing up the original Firmware (above)
-- Here are a few options for performing the initial Flash:
-  - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox)
-  - Using DFuseDemo.exe if STTub30 driver is used.
-  - Using dfu-util:
-
-        dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN}
-
-You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown:
-
-<img src="https://i.imgur.com/hvDnw5a.jpg" width="520" height="693" alt="Shorting Boot0 to Vdd on K320">
-
-### Subsequent Flashing
-
-For repeating Flashing you can use BootMagic:
-- BootMagic Lite has been enabled with Assigned "Esc" key 
-- Unplug USB Cable
-- Holding Esc Button 
-- Plug in USB Cable, Keyboard should be in ST-Bootloader state
diff --git a/keyboards/durgod/k320/rules.mk b/keyboards/durgod/k320/rules.mk
index e6f0007fd4..d3f7b11945 100644
--- a/keyboards/durgod/k320/rules.mk
+++ b/keyboards/durgod/k320/rules.mk
@@ -1,29 +1 @@
-# MCU name
-# Actually F070, but close enough
-MCU = STM32F072
-BOARD = DURGOD_STM32_F070
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Do not put the microcontroller into power saving mode
-OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-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 = yes           # USB Nkey Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-BLUETOOTH_ENABLE = no       # Enable Bluetooth
-AUDIO_ENABLE = no           # Audio output
-
-LAYOUTS = tkl_ansi tkl_iso
+DEFAULT_FOLDER=durgod/k3x0/k320
diff --git a/keyboards/durgod/k320/config.h b/keyboards/durgod/k3x0/config.h
similarity index 86%
rename from keyboards/durgod/k320/config.h
rename to keyboards/durgod/k3x0/config.h
index 323a9ccff9..ef73a71016 100644
--- a/keyboards/durgod/k320/config.h
+++ b/keyboards/durgod/k3x0/config.h
@@ -1,4 +1,5 @@
-/* Copyright 2021 kuenhlee and Don Kjer
+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
+ * Copyright 2021 Simon Arlott
  *
  * 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
@@ -20,16 +21,11 @@
 
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0xD60D
-#define PRODUCT_ID      0x3200
-#define DEVICE_VER      0x0001
 #define MANUFACTURER    Hoksi Technology
-#define PRODUCT         DURGOD Taurus K320 (QMK)
 
-/* key matrix size */
-#define MATRIX_ROWS 7
+/* key matrix size (rows in specific keyboard variant) */
 #define MATRIX_COLS 16
 
-#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 }
 #define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 }
 
 /* COL2ROW, ROW2COL*/
@@ -42,6 +38,7 @@
 
 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 #define DEBOUNCE 5
+// #define USB_POLLING_INTERVAL_MS 1
 
 /* Bootmagic Lite key configuration */
 #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
@@ -54,3 +51,6 @@
 #define LED_WIN_LOCK_PIN    A9
 #define LED_MR_LOCK_PIN     A10
 #define LED_PIN_ON_STATE    0
+
+/* Original hardware "reset" button on pin D2 */
+#define HARDWARE_RESET_PIN  D2
diff --git a/keyboards/durgod/k3x0/halconf.h b/keyboards/durgod/k3x0/halconf.h
new file mode 100644
index 0000000000..fa20fe30a9
--- /dev/null
+++ b/keyboards/durgod/k3x0/halconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2021 Simon Arlott
+ *
+ * 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
+
+#define HAL_USE_PAL                 TRUE
+#define PAL_USE_CALLBACKS           TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/durgod/k3x0/k310/base/config.h b/keyboards/durgod/k3x0/k310/base/config.h
new file mode 100644
index 0000000000..025369acd7
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/base/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 Don Kjer
+ *
+ * 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 "config_common.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT         DURGOD Taurus K310 (QMK)
+#define DEVICE_VER      0x0001 // Base (no backlight)
diff --git a/keyboards/durgod/k3x0/k310/base/readme.md b/keyboards/durgod/k3x0/k310/base/readme.md
new file mode 100644
index 0000000000..9f46540436
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/base/readme.md
@@ -0,0 +1,27 @@
+# K310
+
+This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key
+keyboard without backlight.  This supports both the ANSI and ISO variants.
+
+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
+* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6
+* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en
+
+## Instructions
+
+### Build
+
+Make command example for this keyboard (after setting up your build environment):
+
+    make durgod/k310:default
+
+Flashing example for this keyboard:
+
+    make durgod/k310:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+### Initial Flash
+
+Instructions for Flashing from initial Stock Firmware:
+* [Initial Flashing](../../readme.md#initial-flash)
diff --git a/keyboards/durgod/k3x0/k310/base/rules.mk b/keyboards/durgod/k3x0/k310/base/rules.mk
new file mode 100644
index 0000000000..323c12fc6e
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/base/rules.mk
@@ -0,0 +1 @@
+# see common rules.mk
diff --git a/keyboards/durgod/k3x0/k310/config.h b/keyboards/durgod/k3x0/k310/config.h
new file mode 100644
index 0000000000..1eadb8e52d
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/config.h
@@ -0,0 +1,36 @@
+/* Copyright 2021 Don Kjer and Tyler Tidman
+ * Copyright 2021 Simon Arlott
+ *
+ * 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 "config_common.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT_ID      0x3100
+// Taurus K310 models:
+//#define DEVICE_VER      0x0001 // Base (no backlight)
+//#define DEVICE_VER      0x0002 // Corona (white led matrix)
+//#define DEVICE_VER      0x0003 // Aurora (red & blue led matrix)
+//#define DEVICE_VER      0x0004 // Nebula (rgb led matrix)
+
+/* key matrix size (cols in generic keyboard config) */
+#define MATRIX_ROWS 8
+
+#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 }
+
+/* LED indicator pins */
+#define LED_NUM_LOCK_PIN    C8
diff --git a/keyboards/durgod/k320/info.json b/keyboards/durgod/k3x0/k310/info.json
similarity index 82%
rename from keyboards/durgod/k320/info.json
rename to keyboards/durgod/k3x0/k310/info.json
index 6c67c3d453..35cd59becc 100644
--- a/keyboards/durgod/k320/info.json
+++ b/keyboards/durgod/k3x0/k310/info.json
@@ -1,11 +1,11 @@
 {
-  "keyboard_name": "DURGOD Taurus K320",
-  "url": "https://www.durgod.com/page9?product_id=47&_l=en",
-  "maintainer": "dkjer",
-  "width": 18.25,
+  "keyboard_name": "DURGOD Taurus K310",
+  "url": "https://www.durgod.com/page9?product_id=53&_l=en",
+  "maintainer": "tylert",
+  "width": 22.5,
   "height": 6.5,
     "layouts": {
-        "LAYOUT_tkl_ansi": {
+        "LAYOUT_fullsize_ansi": {
             "layout": [
                 { "label": "Esc", "x": 0, "y": 0 },
                 { "label": "F1", "x": 2, "y": 0 },
@@ -41,6 +41,10 @@
                 { "label": "Insert", "x": 15.25, "y": 1.5 },
                 { "label": "Home", "x": 16.25, "y": 1.5 },
                 { "label": "PgUp", "x": 17.25, "y": 1.5 },
+                { "label": "Num Lock", "x": 18.5, "y": 1.5 },
+                { "label": "/", "x": 19.5, "y": 1.5 },
+                { "label": "*", "x": 20.5, "y": 1.5 },
+                { "label": "-", "x": 21.5, "y": 1.5 },
 
                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
                 { "label": "Q", "x": 1.5, "y": 2.5 },
@@ -59,6 +63,10 @@
                 { "label": "Delete", "x": 15.25, "y": 2.5 },
                 { "label": "End", "x": 16.25, "y": 2.5 },
                 { "label": "PgDn", "x": 17.25, "y": 2.5 },
+                { "label": "7", "x": 18.5, "y": 2.5 },
+                { "label": "8", "x": 19.5, "y": 2.5 },
+                { "label": "9", "x": 20.5, "y": 2.5 },
+                { "label": "+", "x": 21.5, "y": 2.5, "h": 2 },
 
                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
                 { "label": "A", "x": 1.75, "y": 3.5 },
@@ -73,6 +81,9 @@
                 { "label": ":", "x": 10.75, "y": 3.5 },
                 { "label": "\"", "x": 11.75, "y": 3.5 },
                 { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 },
+                { "label": "4", "x": 18.5, "y": 3.5 },
+                { "label": "5", "x": 19.5, "y": 3.5 },
+                { "label": "6", "x": 20.5, "y": 3.5 },
 
                 { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 },
                 { "label": "Z", "x": 2.25, "y": 4.5 },
@@ -87,6 +98,10 @@
                 { "label": "?", "x": 11.25, "y": 4.5 },
                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
                 { "label": "\u2191", "x": 16.25, "y": 4.5 },
+                { "label": "1", "x": 18.5, "y": 4.5 },
+                { "label": "2", "x": 19.5, "y": 4.5 },
+                { "label": "3", "x": 20.5, "y": 4.5 },
+                { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 },
 
                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
@@ -98,10 +113,12 @@
                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
                 { "label": "\u2190", "x": 15.25, "y": 5.5 },
                 { "label": "\u2193", "x": 16.25, "y": 5.5 },
-                { "label": "\u2192", "x": 17.25, "y": 5.5 }
+                { "label": "\u2192", "x": 17.25, "y": 5.5 },
+                { "label": "0", "x": 18.5, "y": 5.5, "w": 2 },
+                { "label": ".", "x": 20.5, "y": 5.5 }
             ]
         },
-        "LAYOUT_tkl_iso": {
+        "LAYOUT_fullsize_iso": {
             "layout": [
                 { "label": "Esc", "x": 0, "y": 0 },
                 { "label": "F1", "x": 2, "y": 0 },
@@ -137,6 +154,10 @@
                 { "label": "Insert", "x": 15.25, "y": 1.5 },
                 { "label": "Home", "x": 16.25, "y": 1.5 },
                 { "label": "PgUp", "x": 17.25, "y": 1.5 },
+                { "label": "Num Lock", "x": 18.5, "y": 1.5 },
+                { "label": "/", "x": 19.5, "y": 1.5 },
+                { "label": "*", "x": 20.5, "y": 1.5 },
+                { "label": "-", "x": 21.5, "y": 1.5 },
 
                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
                 { "label": "Q", "x": 1.5, "y": 2.5 },
@@ -154,6 +175,10 @@
                 { "label": "Delete", "x": 15.25, "y": 2.5 },
                 { "label": "End", "x": 16.25, "y": 2.5 },
                 { "label": "PgDn", "x": 17.25, "y": 2.5 },
+                { "label": "7", "x": 18.5, "y": 2.5 },
+                { "label": "8", "x": 19.5, "y": 2.5 },
+                { "label": "9", "x": 20.5, "y": 2.5 },
+                { "label": "+", "x": 21.5, "y": 2.5, "h": 2 },
 
                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
                 { "label": "A", "x": 1.75, "y": 3.5 },
@@ -169,6 +194,9 @@
                 { "label": "\"", "x": 11.75, "y": 3.5 },
                 { "label": "#", "x": 12.75, "y": 3.5 },
                 { "label": "Enter", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
+                { "label": "4", "x": 18.5, "y": 3.5 },
+                { "label": "5", "x": 19.5, "y": 3.5 },
+                { "label": "6", "x": 20.5, "y": 3.5 },
 
                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 },
                 { "label": "\\", "x": 1.25, "y": 4.5 },
@@ -184,6 +212,10 @@
                 { "label": "?", "x": 11.25, "y": 4.5 },
                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
                 { "label": "\u2191", "x": 16.25, "y": 4.5 },
+                { "label": "1", "x": 18.5, "y": 4.5 },
+                { "label": "2", "x": 19.5, "y": 4.5 },
+                { "label": "3", "x": 20.5, "y": 4.5 },
+                { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 },
 
                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
@@ -195,7 +227,9 @@
                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
                 { "label": "\u2190", "x": 15.25, "y": 5.5 },
                 { "label": "\u2193", "x": 16.25, "y": 5.5 },
-                { "label": "\u2192", "x": 17.25, "y": 5.5 }
+                { "label": "\u2192", "x": 17.25, "y": 5.5 },
+                { "label": "0", "x": 18.5, "y": 5.5, "w": 2 },
+                { "label": ".", "x": 20.5, "y": 5.5 }
             ]
         },
         "LAYOUT_all": {
@@ -234,6 +268,10 @@
                 { "label": "Insert", "x": 15.25, "y": 1.5 },
                 { "label": "Home", "x": 16.25, "y": 1.5 },
                 { "label": "PgUp", "x": 17.25, "y": 1.5 },
+                { "label": "Num Lock", "x": 18.5, "y": 1.5 },
+                { "label": "/", "x": 19.5, "y": 1.5 },
+                { "label": "*", "x": 20.5, "y": 1.5 },
+                { "label": "-", "x": 21.5, "y": 1.5 },
 
                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
                 { "label": "Q", "x": 1.5, "y": 2.5 },
@@ -252,6 +290,10 @@
                 { "label": "Delete", "x": 15.25, "y": 2.5 },
                 { "label": "End", "x": 16.25, "y": 2.5 },
                 { "label": "PgDn", "x": 17.25, "y": 2.5 },
+                { "label": "7", "x": 18.5, "y": 2.5 },
+                { "label": "8", "x": 19.5, "y": 2.5 },
+                { "label": "9", "x": 20.5, "y": 2.5 },
+                { "label": "+", "x": 21.5, "y": 2.5, "h": 2 },
 
                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
                 { "label": "A", "x": 1.75, "y": 3.5 },
@@ -267,6 +309,9 @@
                 { "label": "\"", "x": 11.75, "y": 3.5 },
                 { "label": "#", "x": 12.75, "y": 3.5 },
                 { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 },
+                { "label": "4", "x": 18.5, "y": 3.5 },
+                { "label": "5", "x": 19.5, "y": 3.5 },
+                { "label": "6", "x": 20.5, "y": 3.5 },
 
                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 },
                 { "label": "\\", "x": 1.25, "y": 4.5 },
@@ -282,6 +327,10 @@
                 { "label": "?", "x": 11.25, "y": 4.5 },
                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
                 { "label": "\u2191", "x": 16.25, "y": 4.5 },
+                { "label": "1", "x": 18.5, "y": 4.5 },
+                { "label": "2", "x": 19.5, "y": 4.5 },
+                { "label": "3", "x": 20.5, "y": 4.5 },
+                { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 },
 
                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
@@ -293,7 +342,9 @@
                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
                 { "label": "\u2190", "x": 15.25, "y": 5.5 },
                 { "label": "\u2193", "x": 16.25, "y": 5.5 },
-                { "label": "\u2192", "x": 17.25, "y": 5.5 }
+                { "label": "\u2192", "x": 17.25, "y": 5.5 },
+                { "label": "0", "x": 18.5, "y": 5.5, "w": 2 },
+                { "label": ".", "x": 20.5, "y": 5.5 }
             ]
         }
     }
diff --git a/keyboards/durgod/k3x0/k310/k310.h b/keyboards/durgod/k3x0/k310/k310.h
new file mode 100644
index 0000000000..2d82ee1550
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/k310.h
@@ -0,0 +1,78 @@
+/* Copyright 2021 Don Kjer and Tyler Tidman
+ * Copyright 2021 Simon Arlott
+ *
+ * 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
+
+#define XXX KC_NO
+
+// This a shortcut to help you visually see your layout.
+#define LAYOUT_fullsize_ansi( \
+      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,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \
+      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \
+      K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,        K4E,                            K7E, K7D, K7C,      \
+      K40,        K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \
+      K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \
+) { \
+    { 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,  XXX,  K1E,  K1F },  \
+    { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \
+    { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  XXX,  K3D,  K3E,  K3F },  \
+    { K40,  XXX,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \
+    { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \
+}
+
+// This a shortcut to help you visually see your layout.
+#define LAYOUT_fullsize_iso( \
+      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,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \
+      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,            K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \
+      K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \
+      K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \
+      K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \
+) { \
+    { 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,  XXX,  K1E,  K1F },  \
+    { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  XXX,  K2E,  K2F },  \
+    { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \
+    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \
+    { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \
+}
+
+// This a shortcut to help you visually see your layout.
+#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,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \
+      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \
+      K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \
+      K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \
+      K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \
+) { \
+    { 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,  XXX,  K1E,  K1F },  \
+    { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \
+    { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \
+    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \
+    { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \
+}
+
diff --git a/keyboards/durgod/k3x0/k310/readme.md b/keyboards/durgod/k3x0/k310/readme.md
new file mode 100644
index 0000000000..bee903b88f
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/readme.md
@@ -0,0 +1,10 @@
+# Taurus K310
+
+This code is shared between all K310 variants.  Currently only the base model with no backlight is supported.
+
+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
+* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6
+* Hardware Availability: Base https://www.durgod.com/page9?product_id=53&_l=en
+
+Instructions for building the K310 firmware can be found here:
+* [No Backlight](base/readme.md)
diff --git a/keyboards/durgod/k3x0/k310/rules.mk b/keyboards/durgod/k3x0/k310/rules.mk
new file mode 100644
index 0000000000..2df1aff9c8
--- /dev/null
+++ b/keyboards/durgod/k3x0/k310/rules.mk
@@ -0,0 +1,4 @@
+# Default to the base model
+DEFAULT_FOLDER=durgod/k3x0/k310/base
+
+LAYOUTS = fullsize_ansi fullsize_iso
diff --git a/keyboards/durgod/k3x0/k320/base/config.h b/keyboards/durgod/k3x0/k320/base/config.h
new file mode 100644
index 0000000000..d4eb732b90
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/base/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 Don Kjer
+ *
+ * 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 "config_common.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT         DURGOD Taurus K320 (QMK)
+#define DEVICE_VER      0x0001 // Base (no backlight)
diff --git a/keyboards/durgod/k3x0/k320/base/readme.md b/keyboards/durgod/k3x0/k320/base/readme.md
new file mode 100644
index 0000000000..8f46cc122c
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/base/readme.md
@@ -0,0 +1,27 @@
+# K320
+
+This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key)
+keyboard without backlight.  This supports both the ANSI and ISO variants.
+
+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
+* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6
+* Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en
+
+## Instructions
+
+### Build
+
+Make command example for this keyboard (after setting up your build environment):
+
+    make durgod/k320:default
+
+Flashing example for this keyboard:
+
+    make durgod/k320:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+### Initial Flash
+
+Instructions for Flashing from initial Stock Firmware:
+* [Initial Flashing](../../readme.md#initial-flash)
diff --git a/keyboards/durgod/k3x0/k320/base/rules.mk b/keyboards/durgod/k3x0/k320/base/rules.mk
new file mode 100644
index 0000000000..323c12fc6e
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/base/rules.mk
@@ -0,0 +1 @@
+# see common rules.mk
diff --git a/keyboards/durgod/k3x0/k320/config.h b/keyboards/durgod/k3x0/k320/config.h
new file mode 100644
index 0000000000..25b4c63036
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/config.h
@@ -0,0 +1,33 @@
+/* Copyright 2021 Don Kjer and Tyler Tidman
+ * Copyright 2021 Simon Arlott
+ *
+ * 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 "config_common.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT_ID      0x3200
+// Taurus K320 models:
+//#define DEVICE_VER      0x0001 // Base (no backlight)
+//#define DEVICE_VER      0x0002 // Corona (white led matrix)
+//#define DEVICE_VER      0x0003 // Aurora (red & blue led matrix)
+//#define DEVICE_VER      0x0004 // Nebula (rgb led matrix)
+
+/* key matrix size (cols in generic keyboard config) */
+#define MATRIX_ROWS 7
+
+#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 }
diff --git a/keyboards/durgod/k3x0/k320/info.json b/keyboards/durgod/k3x0/k320/info.json
new file mode 100644
index 0000000000..d360778edd
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/info.json
@@ -0,0 +1,415 @@
+{
+  "keyboard_name": "DURGOD Taurus K320",
+  "url": "https://www.durgod.com/page9?product_id=47&_l=en",
+  "maintainer": "dkjer",
+  "width": 18.25,
+  "height": 6.5,
+    "layouts": {
+        "LAYOUT_tkl_ansi": {
+            "layout": [
+                { "label": "Esc", "x": 0, "y": 0 },
+                { "label": "F1", "x": 2, "y": 0 },
+                { "label": "F2", "x": 3, "y": 0 },
+                { "label": "F3", "x": 4, "y": 0 },
+                { "label": "F4", "x": 5, "y": 0 },
+                { "label": "F5", "x": 6.5, "y": 0 },
+                { "label": "F6", "x": 7.5, "y": 0 },
+                { "label": "F7", "x": 8.5, "y": 0 },
+                { "label": "F8", "x": 9.5, "y": 0 },
+                { "label": "F9", "x": 11, "y": 0 },
+                { "label": "F10", "x": 12, "y": 0 },
+                { "label": "F11", "x": 13, "y": 0 },
+                { "label": "F12", "x": 14, "y": 0 },
+                { "label": "PrtSc", "x": 15.25, "y": 0 },
+                { "label": "Scroll Lock", "x": 16.25, "y": 0 },
+                { "label": "Pause", "x": 17.25, "y": 0 },
+
+                { "label": "~", "x": 0, "y": 1.5 },
+                { "label": "!", "x": 1, "y": 1.5 },
+                { "label": "@", "x": 2, "y": 1.5 },
+                { "label": "#", "x": 3, "y": 1.5 },
+                { "label": "$", "x": 4, "y": 1.5 },
+                { "label": "%", "x": 5, "y": 1.5 },
+                { "label": "^", "x": 6, "y": 1.5 },
+                { "label": "&", "x": 7, "y": 1.5 },
+                { "label": "*", "x": 8, "y": 1.5 },
+                { "label": "(", "x": 9, "y": 1.5 },
+                { "label": ")", "x": 10, "y": 1.5 },
+                { "label": "_", "x": 11, "y": 1.5 },
+                { "label": "+", "x": 12, "y": 1.5 },
+                { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 },
+                { "label": "Insert", "x": 15.25, "y": 1.5 },
+                { "label": "Home", "x": 16.25, "y": 1.5 },
+                { "label": "PgUp", "x": 17.25, "y": 1.5 },
+
+                { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
+                { "label": "Q", "x": 1.5, "y": 2.5 },
+                { "label": "W", "x": 2.5, "y": 2.5 },
+                { "label": "E", "x": 3.5, "y": 2.5 },
+                { "label": "R", "x": 4.5, "y": 2.5 },
+                { "label": "T", "x": 5.5, "y": 2.5 },
+                { "label": "Y", "x": 6.5, "y": 2.5 },
+                { "label": "U", "x": 7.5, "y": 2.5 },
+                { "label": "I", "x": 8.5, "y": 2.5 },
+                { "label": "O", "x": 9.5, "y": 2.5 },
+                { "label": "P", "x": 10.5, "y": 2.5 },
+                { "label": "{", "x": 11.5, "y": 2.5 },
+                { "label": "}", "x": 12.5, "y": 2.5 },
+                { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 },
+                { "label": "Delete", "x": 15.25, "y": 2.5 },
+                { "label": "End", "x": 16.25, "y": 2.5 },
+                { "label": "PgDn", "x": 17.25, "y": 2.5 },
+
+                { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
+                { "label": "A", "x": 1.75, "y": 3.5 },
+                { "label": "S", "x": 2.75, "y": 3.5 },
+                { "label": "D", "x": 3.75, "y": 3.5 },
+                { "label": "F", "x": 4.75, "y": 3.5 },
+                { "label": "G", "x": 5.75, "y": 3.5 },
+                { "label": "H", "x": 6.75, "y": 3.5 },
+                { "label": "J", "x": 7.75, "y": 3.5 },
+                { "label": "K", "x": 8.75, "y": 3.5 },
+                { "label": "L", "x": 9.75, "y": 3.5 },
+                { "label": ":", "x": 10.75, "y": 3.5 },
+                { "label": "\"", "x": 11.75, "y": 3.5 },
+                { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 },
+
+                { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 },
+                { "label": "Z", "x": 2.25, "y": 4.5 },
+                { "label": "X", "x": 3.25, "y": 4.5 },
+                { "label": "C", "x": 4.25, "y": 4.5 },
+                { "label": "V", "x": 5.25, "y": 4.5 },
+                { "label": "B", "x": 6.25, "y": 4.5 },
+                { "label": "N", "x": 7.25, "y": 4.5 },
+                { "label": "M", "x": 8.25, "y": 4.5 },
+                { "label": "<", "x": 9.25, "y": 4.5 },
+                { "label": ">", "x": 10.25, "y": 4.5 },
+                { "label": "?", "x": 11.25, "y": 4.5 },
+                { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
+                { "label": "\u2191", "x": 16.25, "y": 4.5 },
+
+                { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
+                { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
+                { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 },
+                { "x": 3.75, "y": 5.5, "w": 6.25 },
+                { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 },
+                { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 },
+                { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 },
+                { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
+                { "label": "\u2190", "x": 15.25, "y": 5.5 },
+                { "label": "\u2193", "x": 16.25, "y": 5.5 },
+                { "label": "\u2192", "x": 17.25, "y": 5.5 }
+            ]
+        },
+        "LAYOUT_tkl_iso": {
+            "layout": [
+                { "label": "Esc", "x": 0, "y": 0 },
+                { "label": "F1", "x": 2, "y": 0 },
+                { "label": "F2", "x": 3, "y": 0 },
+                { "label": "F3", "x": 4, "y": 0 },
+                { "label": "F4", "x": 5, "y": 0 },
+                { "label": "F5", "x": 6.5, "y": 0 },
+                { "label": "F6", "x": 7.5, "y": 0 },
+                { "label": "F7", "x": 8.5, "y": 0 },
+                { "label": "F8", "x": 9.5, "y": 0 },
+                { "label": "F9", "x": 11, "y": 0 },
+                { "label": "F10", "x": 12, "y": 0 },
+                { "label": "F11", "x": 13, "y": 0 },
+                { "label": "F12", "x": 14, "y": 0 },
+                { "label": "PrtSc", "x": 15.25, "y": 0 },
+                { "label": "Scroll Lock", "x": 16.25, "y": 0 },
+                { "label": "Pause", "x": 17.25, "y": 0 },
+
+                { "label": "~", "x": 0, "y": 1.5 },
+                { "label": "!", "x": 1, "y": 1.5 },
+                { "label": "@", "x": 2, "y": 1.5 },
+                { "label": "#", "x": 3, "y": 1.5 },
+                { "label": "$", "x": 4, "y": 1.5 },
+                { "label": "%", "x": 5, "y": 1.5 },
+                { "label": "^", "x": 6, "y": 1.5 },
+                { "label": "&", "x": 7, "y": 1.5 },
+                { "label": "*", "x": 8, "y": 1.5 },
+                { "label": "(", "x": 9, "y": 1.5 },
+                { "label": ")", "x": 10, "y": 1.5 },
+                { "label": "_", "x": 11, "y": 1.5 },
+                { "label": "+", "x": 12, "y": 1.5 },
+                { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 },
+                { "label": "Insert", "x": 15.25, "y": 1.5 },
+                { "label": "Home", "x": 16.25, "y": 1.5 },
+                { "label": "PgUp", "x": 17.25, "y": 1.5 },
+
+                { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
+                { "label": "Q", "x": 1.5, "y": 2.5 },
+                { "label": "W", "x": 2.5, "y": 2.5 },
+                { "label": "E", "x": 3.5, "y": 2.5 },
+                { "label": "R", "x": 4.5, "y": 2.5 },
+                { "label": "T", "x": 5.5, "y": 2.5 },
+                { "label": "Y", "x": 6.5, "y": 2.5 },
+                { "label": "U", "x": 7.5, "y": 2.5 },
+                { "label": "I", "x": 8.5, "y": 2.5 },
+                { "label": "O", "x": 9.5, "y": 2.5 },
+                { "label": "P", "x": 10.5, "y": 2.5 },
+                { "label": "{", "x": 11.5, "y": 2.5 },
+                { "label": "}", "x": 12.5, "y": 2.5 },
+                { "label": "Delete", "x": 15.25, "y": 2.5 },
+                { "label": "End", "x": 16.25, "y": 2.5 },
+                { "label": "PgDn", "x": 17.25, "y": 2.5 },
+
+                { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
+                { "label": "A", "x": 1.75, "y": 3.5 },
+                { "label": "S", "x": 2.75, "y": 3.5 },
+                { "label": "D", "x": 3.75, "y": 3.5 },
+                { "label": "F", "x": 4.75, "y": 3.5 },
+                { "label": "G", "x": 5.75, "y": 3.5 },
+                { "label": "H", "x": 6.75, "y": 3.5 },
+                { "label": "J", "x": 7.75, "y": 3.5 },
+                { "label": "K", "x": 8.75, "y": 3.5 },
+                { "label": "L", "x": 9.75, "y": 3.5 },
+                { "label": ":", "x": 10.75, "y": 3.5 },
+                { "label": "\"", "x": 11.75, "y": 3.5 },
+                { "label": "#", "x": 12.75, "y": 3.5 },
+                { "label": "Enter", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
+
+                { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 },
+                { "label": "\\", "x": 1.25, "y": 4.5 },
+                { "label": "Z", "x": 2.25, "y": 4.5 },
+                { "label": "X", "x": 3.25, "y": 4.5 },
+                { "label": "C", "x": 4.25, "y": 4.5 },
+                { "label": "V", "x": 5.25, "y": 4.5 },
+                { "label": "B", "x": 6.25, "y": 4.5 },
+                { "label": "N", "x": 7.25, "y": 4.5 },
+                { "label": "M", "x": 8.25, "y": 4.5 },
+                { "label": "<", "x": 9.25, "y": 4.5 },
+                { "label": ">", "x": 10.25, "y": 4.5 },
+                { "label": "?", "x": 11.25, "y": 4.5 },
+                { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
+                { "label": "\u2191", "x": 16.25, "y": 4.5 },
+
+                { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
+                { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
+                { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 },
+                { "x": 3.75, "y": 5.5, "w": 6.25 },
+                { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 },
+                { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 },
+                { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 },
+                { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
+                { "label": "\u2190", "x": 15.25, "y": 5.5 },
+                { "label": "\u2193", "x": 16.25, "y": 5.5 },
+                { "label": "\u2192", "x": 17.25, "y": 5.5 }
+            ]
+        },
+        "LAYOUT_tkl": {
+            "layout": [
+                { "label": "Esc", "x": 0, "y": 0 },
+                { "label": "F1", "x": 2, "y": 0 },
+                { "label": "F2", "x": 3, "y": 0 },
+                { "label": "F3", "x": 4, "y": 0 },
+                { "label": "F4", "x": 5, "y": 0 },
+                { "label": "F5", "x": 6.5, "y": 0 },
+                { "label": "F6", "x": 7.5, "y": 0 },
+                { "label": "F7", "x": 8.5, "y": 0 },
+                { "label": "F8", "x": 9.5, "y": 0 },
+                { "label": "F9", "x": 11, "y": 0 },
+                { "label": "F10", "x": 12, "y": 0 },
+                { "label": "F11", "x": 13, "y": 0 },
+                { "label": "F12", "x": 14, "y": 0 },
+                { "label": "PrtSc", "x": 15.25, "y": 0 },
+                { "label": "Scroll Lock", "x": 16.25, "y": 0 },
+                { "label": "Pause", "x": 17.25, "y": 0 },
+
+                { "label": "~", "x": 0, "y": 1.5 },
+                { "label": "!", "x": 1, "y": 1.5 },
+                { "label": "@", "x": 2, "y": 1.5 },
+                { "label": "#", "x": 3, "y": 1.5 },
+                { "label": "$", "x": 4, "y": 1.5 },
+                { "label": "%", "x": 5, "y": 1.5 },
+                { "label": "^", "x": 6, "y": 1.5 },
+                { "label": "&", "x": 7, "y": 1.5 },
+                { "label": "*", "x": 8, "y": 1.5 },
+                { "label": "(", "x": 9, "y": 1.5 },
+                { "label": ")", "x": 10, "y": 1.5 },
+                { "label": "_", "x": 11, "y": 1.5 },
+                { "label": "+", "x": 12, "y": 1.5 },
+                { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 },
+                { "label": "Insert", "x": 15.25, "y": 1.5 },
+                { "label": "Home", "x": 16.25, "y": 1.5 },
+                { "label": "PgUp", "x": 17.25, "y": 1.5 },
+
+                { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
+                { "label": "Q", "x": 1.5, "y": 2.5 },
+                { "label": "W", "x": 2.5, "y": 2.5 },
+                { "label": "E", "x": 3.5, "y": 2.5 },
+                { "label": "R", "x": 4.5, "y": 2.5 },
+                { "label": "T", "x": 5.5, "y": 2.5 },
+                { "label": "Y", "x": 6.5, "y": 2.5 },
+                { "label": "U", "x": 7.5, "y": 2.5 },
+                { "label": "I", "x": 8.5, "y": 2.5 },
+                { "label": "O", "x": 9.5, "y": 2.5 },
+                { "label": "P", "x": 10.5, "y": 2.5 },
+                { "label": "{", "x": 11.5, "y": 2.5 },
+                { "label": "}", "x": 12.5, "y": 2.5 },
+                { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 },
+                { "label": "Delete", "x": 15.25, "y": 2.5 },
+                { "label": "End", "x": 16.25, "y": 2.5 },
+                { "label": "PgDn", "x": 17.25, "y": 2.5 },
+
+                { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
+                { "label": "A", "x": 1.75, "y": 3.5 },
+                { "label": "S", "x": 2.75, "y": 3.5 },
+                { "label": "D", "x": 3.75, "y": 3.5 },
+                { "label": "F", "x": 4.75, "y": 3.5 },
+                { "label": "G", "x": 5.75, "y": 3.5 },
+                { "label": "H", "x": 6.75, "y": 3.5 },
+                { "label": "J", "x": 7.75, "y": 3.5 },
+                { "label": "K", "x": 8.75, "y": 3.5 },
+                { "label": "L", "x": 9.75, "y": 3.5 },
+                { "label": ":", "x": 10.75, "y": 3.5 },
+                { "label": "\"", "x": 11.75, "y": 3.5 },
+                { "label": "#", "x": 12.75, "y": 3.5 },
+                { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 },
+
+                { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 },
+                { "label": "\\", "x": 1.25, "y": 4.5 },
+                { "label": "Z", "x": 2.25, "y": 4.5 },
+                { "label": "X", "x": 3.25, "y": 4.5 },
+                { "label": "C", "x": 4.25, "y": 4.5 },
+                { "label": "V", "x": 5.25, "y": 4.5 },
+                { "label": "B", "x": 6.25, "y": 4.5 },
+                { "label": "N", "x": 7.25, "y": 4.5 },
+                { "label": "M", "x": 8.25, "y": 4.5 },
+                { "label": "<", "x": 9.25, "y": 4.5 },
+                { "label": ">", "x": 10.25, "y": 4.5 },
+                { "label": "?", "x": 11.25, "y": 4.5 },
+                { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
+                { "label": "\u2191", "x": 16.25, "y": 4.5 },
+
+                { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
+                { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
+                { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 },
+                { "x": 3.75, "y": 5.5, "w": 6.25 },
+                { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 },
+                { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 },
+                { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 },
+                { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
+                { "label": "\u2190", "x": 15.25, "y": 5.5 },
+                { "label": "\u2193", "x": 16.25, "y": 5.5 },
+                { "label": "\u2192", "x": 17.25, "y": 5.5 }
+            ]
+        },
+        "LAYOUT_all": {
+            "layout": [
+                { "label": "Esc", "x": 0, "y": 0 },
+                { "label": "F1", "x": 2, "y": 0 },
+                { "label": "F2", "x": 3, "y": 0 },
+                { "label": "F3", "x": 4, "y": 0 },
+                { "label": "F4", "x": 5, "y": 0 },
+                { "label": "F5", "x": 6.5, "y": 0 },
+                { "label": "F6", "x": 7.5, "y": 0 },
+                { "label": "F7", "x": 8.5, "y": 0 },
+                { "label": "F8", "x": 9.5, "y": 0 },
+                { "label": "F9", "x": 11, "y": 0 },
+                { "label": "F10", "x": 12, "y": 0 },
+                { "label": "F11", "x": 13, "y": 0 },
+                { "label": "F12", "x": 14, "y": 0 },
+                { "label": "PrtSc", "x": 15.25, "y": 0 },
+                { "label": "Scroll Lock", "x": 16.25, "y": 0 },
+                { "label": "Pause", "x": 17.25, "y": 0 },
+
+                { "label": "~", "x": 0, "y": 1.5 },
+                { "label": "!", "x": 1, "y": 1.5 },
+                { "label": "@", "x": 2, "y": 1.5 },
+                { "label": "#", "x": 3, "y": 1.5 },
+                { "label": "$", "x": 4, "y": 1.5 },
+                { "label": "%", "x": 5, "y": 1.5 },
+                { "label": "^", "x": 6, "y": 1.5 },
+                { "label": "&", "x": 7, "y": 1.5 },
+                { "label": "*", "x": 8, "y": 1.5 },
+                { "label": "(", "x": 9, "y": 1.5 },
+                { "label": ")", "x": 10, "y": 1.5 },
+                { "label": "_", "x": 11, "y": 1.5 },
+                { "label": "+", "x": 12, "y": 1.5 },
+                { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 },
+                { "label": "Insert", "x": 15.25, "y": 1.5 },
+                { "label": "Home", "x": 16.25, "y": 1.5 },
+                { "label": "PgUp", "x": 17.25, "y": 1.5 },
+                { "label": "Num Lock", "x": 18.5, "y": 1.5 },
+                { "label": "/", "x": 19.5, "y": 1.5 },
+                { "label": "*", "x": 20.5, "y": 1.5 },
+                { "label": "-", "x": 21.5, "y": 1.5 },
+
+                { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
+                { "label": "Q", "x": 1.5, "y": 2.5 },
+                { "label": "W", "x": 2.5, "y": 2.5 },
+                { "label": "E", "x": 3.5, "y": 2.5 },
+                { "label": "R", "x": 4.5, "y": 2.5 },
+                { "label": "T", "x": 5.5, "y": 2.5 },
+                { "label": "Y", "x": 6.5, "y": 2.5 },
+                { "label": "U", "x": 7.5, "y": 2.5 },
+                { "label": "I", "x": 8.5, "y": 2.5 },
+                { "label": "O", "x": 9.5, "y": 2.5 },
+                { "label": "P", "x": 10.5, "y": 2.5 },
+                { "label": "{", "x": 11.5, "y": 2.5 },
+                { "label": "}", "x": 12.5, "y": 2.5 },
+                { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 },
+                { "label": "Delete", "x": 15.25, "y": 2.5 },
+                { "label": "End", "x": 16.25, "y": 2.5 },
+                { "label": "PgDn", "x": 17.25, "y": 2.5 },
+                { "label": "7", "x": 18.5, "y": 2.5 },
+                { "label": "8", "x": 19.5, "y": 2.5 },
+                { "label": "9", "x": 20.5, "y": 2.5 },
+                { "label": "+", "x": 21.5, "y": 2.5, "h": 2 },
+
+                { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
+                { "label": "A", "x": 1.75, "y": 3.5 },
+                { "label": "S", "x": 2.75, "y": 3.5 },
+                { "label": "D", "x": 3.75, "y": 3.5 },
+                { "label": "F", "x": 4.75, "y": 3.5 },
+                { "label": "G", "x": 5.75, "y": 3.5 },
+                { "label": "H", "x": 6.75, "y": 3.5 },
+                { "label": "J", "x": 7.75, "y": 3.5 },
+                { "label": "K", "x": 8.75, "y": 3.5 },
+                { "label": "L", "x": 9.75, "y": 3.5 },
+                { "label": ":", "x": 10.75, "y": 3.5 },
+                { "label": "\"", "x": 11.75, "y": 3.5 },
+                { "label": "#", "x": 12.75, "y": 3.5 },
+                { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 },
+                { "label": "4", "x": 18.5, "y": 3.5 },
+                { "label": "5", "x": 19.5, "y": 3.5 },
+                { "label": "6", "x": 20.5, "y": 3.5 },
+
+                { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 },
+                { "label": "\\", "x": 1.25, "y": 4.5 },
+                { "label": "Z", "x": 2.25, "y": 4.5 },
+                { "label": "X", "x": 3.25, "y": 4.5 },
+                { "label": "C", "x": 4.25, "y": 4.5 },
+                { "label": "V", "x": 5.25, "y": 4.5 },
+                { "label": "B", "x": 6.25, "y": 4.5 },
+                { "label": "N", "x": 7.25, "y": 4.5 },
+                { "label": "M", "x": 8.25, "y": 4.5 },
+                { "label": "<", "x": 9.25, "y": 4.5 },
+                { "label": ">", "x": 10.25, "y": 4.5 },
+                { "label": "?", "x": 11.25, "y": 4.5 },
+                { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
+                { "label": "\u2191", "x": 16.25, "y": 4.5 },
+                { "label": "1", "x": 18.5, "y": 4.5 },
+                { "label": "2", "x": 19.5, "y": 4.5 },
+                { "label": "3", "x": 20.5, "y": 4.5 },
+                { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 },
+
+                { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
+                { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
+                { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 },
+                { "x": 3.75, "y": 5.5, "w": 6.25 },
+                { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 },
+                { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 },
+                { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 },
+                { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
+                { "label": "\u2190", "x": 15.25, "y": 5.5 },
+                { "label": "\u2193", "x": 16.25, "y": 5.5 },
+                { "label": "\u2192", "x": 17.25, "y": 5.5 },
+                { "label": "0", "x": 18.5, "y": 5.5, "w": 2 },
+                { "label": ".", "x": 20.5, "y": 5.5 }
+            ]
+        }
+    }
+}
diff --git a/keyboards/durgod/k320/k320.h b/keyboards/durgod/k3x0/k320/k320.h
similarity index 75%
rename from keyboards/durgod/k320/k320.h
rename to keyboards/durgod/k3x0/k320/k320.h
index c504f5a2bb..23b48d0f39 100644
--- a/keyboards/durgod/k320/k320.h
+++ b/keyboards/durgod/k3x0/k320/k320.h
@@ -1,4 +1,5 @@
-/* Copyright 2021 kuenhlee and Don Kjer
+/* Copyright 2021 Don Kjer and Tyler Tidman
+ * Copyright 2021 Simon Arlott
  *
  * 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
@@ -13,26 +14,9 @@
  * 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"
-
-#ifndef WINLOCK_DISABLED
-// Define the TGUI key here so it is available in QMK configurator
-enum K320_keycodes {
-    KC_TGUI = SAFE_RANGE,   // Toggle between GUI Lock or Unlock
-    NEW_SAFE_RANGE
-};
-
-#undef SAFE_RANGE
-#define SAFE_RANGE NEW_SAFE_RANGE
-#endif /* WINLOCK_DISABLED */
-
-/* Function Prototype */
-void off_all_leds(void);
-void on_all_leds(void);
-
-
 #define XXX KC_NO
 
 // This a shortcut to help you visually see your layout.
@@ -53,7 +37,6 @@ void on_all_leds(void);
     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \
 }
 
-
 // This a shortcut to help you visually see your layout.
 #define LAYOUT_tkl_iso( \
       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,  \
@@ -72,9 +55,8 @@ void on_all_leds(void);
     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \
 }
 
-
 // This a shortcut to help you visually see your layout.
-#define LAYOUT_all( \
+#define LAYOUT_tkl( \
       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,  K1E,      K2E,  K2F,  K1F,  \
       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,  \
@@ -90,3 +72,21 @@ void on_all_leds(void);
     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \
     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \
 }
+
+// This a shortcut to help you visually see your layout.
+#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,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \
+      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \
+      K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \
+      K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \
+      K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \
+) { \
+    { 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,  XXX,  K1E,  K1F },  \
+    { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \
+    { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \
+    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \
+    { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \
+    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F }   \
+}
diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c b/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c
similarity index 100%
rename from keyboards/durgod/k320/keymaps/kuenhlee/keymap.c
rename to keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c
diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/readme.md b/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md
similarity index 100%
rename from keyboards/durgod/k320/keymaps/kuenhlee/readme.md
rename to keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md
diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/rules.mk b/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk
similarity index 100%
rename from keyboards/durgod/k320/keymaps/kuenhlee/rules.mk
rename to keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk
diff --git a/keyboards/durgod/k3x0/k320/readme.md b/keyboards/durgod/k3x0/k320/readme.md
new file mode 100644
index 0000000000..e584bd1874
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/readme.md
@@ -0,0 +1,10 @@
+# Taurus K320
+
+This code is shared between all K320 variants.  Currently only the base model with no backlight is supported.
+
+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
+* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6
+* Hardware Availability: Base https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM
+
+Instructions for building the K320 firmware can be found here:
+* [No Backlight](base/readme.md)
diff --git a/keyboards/durgod/k3x0/k320/rules.mk b/keyboards/durgod/k3x0/k320/rules.mk
new file mode 100644
index 0000000000..fabc0854ff
--- /dev/null
+++ b/keyboards/durgod/k3x0/k320/rules.mk
@@ -0,0 +1,4 @@
+# Default to the base model
+DEFAULT_FOLDER=durgod/k3x0/k320/base
+
+LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/durgod/k320/k320.c b/keyboards/durgod/k3x0/k3x0.c
similarity index 64%
rename from keyboards/durgod/k320/k320.c
rename to keyboards/durgod/k3x0/k3x0.c
index 42091f36cd..d12b46bc51 100644
--- a/keyboards/durgod/k320/k320.c
+++ b/keyboards/durgod/k3x0/k3x0.c
@@ -1,4 +1,5 @@
-/* Copyright 2021 kuenhlee and Don Kjer
+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
+ * Copyright 2021 Simon Arlott
  *
  * 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
@@ -14,10 +15,15 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "k320.h"
+#include "k3x0.h"
+#include <ch.h>
+#include <hal.h>
 
 /* Private Functions */
 void off_all_leds(void) {
+#ifdef LED_NUM_LOCK_PIN
+    writePinHigh(LED_NUM_LOCK_PIN);
+#endif
     writePinHigh(LED_CAPS_LOCK_PIN);
     writePinHigh(LED_SCROLL_LOCK_PIN);
     writePinHigh(LED_WIN_LOCK_PIN);
@@ -25,6 +31,9 @@ void off_all_leds(void) {
 }
 
 void on_all_leds(void) {
+#ifdef LED_NUM_LOCK_PIN
+    writePinLow(LED_NUM_LOCK_PIN);
+#endif
     writePinLow(LED_CAPS_LOCK_PIN);
     writePinLow(LED_SCROLL_LOCK_PIN);
     writePinLow(LED_WIN_LOCK_PIN);
@@ -33,6 +42,9 @@ void on_all_leds(void) {
 
 /* WinLock and MR LEDs are non-standard. Need to override led init */
 void led_init_ports(void) {
+#ifdef LED_NUM_LOCK_PIN
+    setPinOutput(LED_NUM_LOCK_PIN);
+#endif
     setPinOutput(LED_CAPS_LOCK_PIN);
     setPinOutput(LED_SCROLL_LOCK_PIN);
     setPinOutput(LED_WIN_LOCK_PIN);
@@ -40,7 +52,6 @@ void led_init_ports(void) {
     off_all_leds();
 }
 
-
 #ifndef WINLOCK_DISABLED
 static bool win_key_locked = false;
 
@@ -60,3 +71,26 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
     return process_record_user(keycode, record);
 }
 #endif /* WINLOCK_DISABLED */
+
+#ifndef HW_RESET_PIN_DISABLED
+static void hardware_reset_cb(void *arg) {
+    chSysLockFromISR();
+    bootloader_jump();
+    chSysUnlockFromISR();
+}
+#endif
+
+void keyboard_pre_init_kb(void) {
+    setPinInputHigh(HARDWARE_RESET_PIN);
+
+#ifndef HW_RESET_PIN_DISABLED
+    /* Jump to bootloader when the hardware reset button is pressed */
+    palEnablePadEvent(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), PAL_EVENT_MODE_FALLING_EDGE);
+    palSetPadCallback(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), hardware_reset_cb, NULL);
+
+    /* The interrupt is edge-triggered so check that it's not already pressed */
+    if (!readPin(HARDWARE_RESET_PIN)) {
+        bootloader_jump();
+    }
+#endif
+}
diff --git a/keyboards/durgod/k3x0/k3x0.h b/keyboards/durgod/k3x0/k3x0.h
new file mode 100644
index 0000000000..93740a5512
--- /dev/null
+++ b/keyboards/durgod/k3x0/k3x0.h
@@ -0,0 +1,47 @@
+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
+ * Copyright 2021 Simon Arlott
+ *
+ * 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"
+
+#ifdef KEYBOARD_durgod_k3x0_k310
+#   include "k310.h"
+#elif KEYBOARD_durgod_k3x0_k320
+#   include "k320.h"
+#endif
+
+#ifndef WINLOCK_DISABLED
+// Define the TGUI key here so it is available in QMK configurator
+enum K3x0_keycodes {
+#ifdef VIA_ENABLE
+    KC_TGUI = USER00,   // Toggle between GUI Lock or Unlock
+    NEW_SAFE_RANGE = SAFE_RANGE
+#else
+    KC_TGUI = SAFE_RANGE,   // Toggle between GUI Lock or Unlock
+    NEW_SAFE_RANGE
+#endif
+};
+
+#undef SAFE_RANGE
+#define SAFE_RANGE NEW_SAFE_RANGE
+#endif /* WINLOCK_DISABLED */
+
+/* Function Prototype */
+void off_all_leds(void);
+void on_all_leds(void);
+
diff --git a/keyboards/durgod/k3x0/keymaps/chimera/keymap.c b/keyboards/durgod/k3x0/keymaps/chimera/keymap.c
new file mode 100644
index 0000000000..8053da351a
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/chimera/keymap.c
@@ -0,0 +1,373 @@
+/* Copyright 2021 Don Kjer and Tyler Tidman
+ *
+ * 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
+
+// Layer shorthand
+enum _layer {
+    _WBL,
+    _WFL,
+    _WSL,
+    _MBL,
+    _MFL,
+    _MSL
+};
+
+#ifndef DEFAULT_LAYOUT
+# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout.
+#endif
+#ifndef ALT_LAYOUT
+# define ALT_LAYOUT     _MBL // Layout to display 'MR' led when active.
+#endif
+
+static bool win_key_locked = false;
+static bool mac_media_locked = false;
+static bool win_appkey_pressed = false;
+static bool mac_fnkey_pressed = false;
+
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    KC_TGUI = SAFE_RANGE,  // Toggle between GUI Lock or Unlock (Windows)
+    KC_TMED,               // Toggle between Fx keys or Media keys (Mac)
+    KC_WFN,                // Windows function key
+    KC_MFN,                // Mac function key
+    MO_WSL,                // Windows system key
+    MO_MSL,                // Mac system key
+    DF_W2MBL,              // Change layout from Windows to Mac
+    DF_M2WBL               // Change layout from Mac to Windows
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap _WBL: Windows Base Layer (Default Layer)
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+   * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+   * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_WBL] = LAYOUT_all( /* Windows Base Layer */
+        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,     KC_PSCR, KC_SLCK, KC_PAUS,
+        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_INS,  KC_HOME, KC_PGUP,    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_DEL,  KC_END,  KC_PGDN,    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_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6,
+        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_P1,   KC_P2,   KC_P3,   KC_PENT,
+        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_WFN,  KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT
+    ),
+  /* Keymap _WFL: Windows Function Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │   │   │Ply│Stp│Prv│Nxt│ │Mut│Vo+│Vo-│   │ │   │   │   │   │ │   │   │Mut│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+  [_WFL] = LAYOUT_all( /* Windows Function Layer */
+        _______,          KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,    _______, _______, KC_MUTE,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,    _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,    _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______,
+        _______, KC_TGUI, _______,                            _______,                            _______, _______, MO_WSL,  _______,    _______, _______, _______,    _______,          _______
+    ),
+  /* Keymap _WSL: Windows System Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Rst│   │Slp│   │   │Pwr│ │   │   │   │   │ │   │   │   │MAC│ │   │   │   │
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │    │    │                        │    │    │    │    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_WSL] = LAYOUT_all( /* Windows Second / System Layer */
+        RESET,            KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL,   XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX
+    ),
+
+  /* Keymap _MBL: Mac Base Layer (Alternate Layout)
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │F13│F14│F15│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+   * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+   * │Ctrl│Alt │GUI │                        │ GUI│ Alt│Func│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_MBL] = LAYOUT_all( /* Mac Base Layer */
+        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,     KC_F13,  KC_F14,  KC_F15,
+        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_INS,  KC_HOME, KC_PGUP,    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_DEL,  KC_END,  KC_PGDN,    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_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6,
+        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_P1,   KC_P2,   KC_P3,   KC_PENT,
+        KC_LCTL, KC_LALT, KC_LGUI,                            KC_SPC,                             KC_RGUI, KC_RALT, KC_MFN,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT
+    ),
+  /* Keymap _MFL: Mac Function Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │   │   │Br-│Br+│   │   │ │   │   │Prv│Ply│ │Nxt│Mut│Vo-│Vo+│ │TMd│   │Mut│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+  [_MFL] = LAYOUT_all( /* Mac Function Layer */
+        _______,          KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,    KC_TMED, _______, KC_MUTE,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,     _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,     _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                   _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,              _______, _______, _______, _______,
+        _______, _______, _______,                            _______,                            _______, MO_MSL,  _______, _______,    _______, _______, _______,     _______,          _______
+    ),
+  /* Keymap _MSL: Mac System Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Rst│   │   │   │   │Slp│ │   │   │   │   │ │   │   │   │WIN│ │   │   │   │
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_MSL] = LAYOUT_all( /* Mac Second / System Layer */
+        RESET,            XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL,   XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX
+    )
+};
+
+void unlock_win_key(void) {
+    win_key_locked = false;
+    mac_media_locked = false;
+    writePinHigh(LED_WIN_LOCK_PIN);
+}
+
+void toggle_lock_win_key(void) {
+    win_key_locked = !win_key_locked;
+    writePin(LED_WIN_LOCK_PIN, !win_key_locked);
+}
+
+void toggle_lock_media_key(void) {
+    mac_media_locked = !mac_media_locked;
+    writePin(LED_WIN_LOCK_PIN, !mac_media_locked);
+}
+
+#ifdef CONSOLE_ENABLE
+void dprint_global_layers(void) {
+    dprint("Global Layers:");
+    if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); }
+    if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); }
+    if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); }
+    if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); }
+    dprintf("\n");
+}
+
+void dprint_layers(layer_state_t state) {
+    dprint("Layers:");
+    if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); }
+    if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); }
+    if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); }
+    if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); }
+    dprintf("\n");
+}
+#endif
+
+layer_state_t default_layer_state_set_user(layer_state_t state) {
+#ifdef CONSOLE_ENABLE
+    dprintf("default_layer_state_set_user: 0x%x\n", state);
+    dprint_global_layers();
+#endif
+    // Disable windows key lock on default layer transition.
+    unlock_win_key();
+    win_appkey_pressed = false;
+    mac_fnkey_pressed = false;
+    writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT));
+    return state;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+#ifdef CONSOLE_ENABLE
+    dprintf("layer_state_set_user: 0x%x\n", state);
+    dprint_layers(state);
+#endif
+    return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case KC_TGUI:
+            if (!record->event.pressed) {
+                // Toggle GUI lock on key release
+                toggle_lock_win_key();
+            }
+            break;
+        case KC_TMED:
+            // Only trigger when Fn key is also held down, to avoid accidental unlock.
+            if (!mac_fnkey_pressed) { return false; }
+            if (!record->event.pressed) {
+                // Toggle Media Lock on key release
+                toggle_lock_media_key();
+            }
+            break;
+        case KC_LGUI:
+            if (win_key_locked) { return false; }
+            break;
+        case KC_WFN:
+            // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down.
+            if (record->event.pressed) {
+                layer_on(_WFL);
+                if (win_appkey_pressed) {
+                    // Also enable Secondary layer if App key is being held down.
+                    win_appkey_pressed = false;
+                    layer_on(_WSL);
+                }
+            } else {
+                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
+                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
+            }
+            break;
+        case KC_APP:
+            if (record->event.pressed) {
+                // Don't actually press down the app menu key
+                win_appkey_pressed = true;
+            } else {
+                if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
+                if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
+                if (win_appkey_pressed) {
+                    win_appkey_pressed = false;
+                    // Tap the KC_APP key on key release.
+                    tap_code(KC_APP);
+                }
+            }
+            return false;
+            break;
+        case KC_MFN:
+            // Mac Fn key.  Emit Fn keycode, and also transition layers similar to KC_WFN.
+            if (record->event.pressed) {
+                mac_fnkey_pressed = true;
+                layer_on(_MFL);
+                // Also enable Secondary layer if Right-Alt key is being held down.
+                if (get_mods() & MOD_BIT(KC_RALT)) {
+                    layer_on(_MSL);
+                }
+            } else {
+                mac_fnkey_pressed = false;
+                if (!mac_media_locked) {
+                    if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
+                    if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
+                }
+            }
+            break;
+        case KC_RALT:
+            // Disable MSL/WFL layer on key-up.
+            if (!record->event.pressed) {
+                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
+                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
+            }
+            break;
+        case MO_WSL:
+            if (record->event.pressed) {
+                layer_on(_WSL);
+            } else {
+                if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
+                if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
+            }
+            break;
+        case MO_MSL:
+            if (record->event.pressed) {
+                layer_on(_MSL);
+            } else {
+                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
+                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
+            }
+            break;
+        case DF_W2MBL:
+            if (!record->event.pressed) {
+                // Switch base layer, but preserve first/secondary layers.
+                default_layer_set(1UL<<_MBL);
+                layer_state_set(1UL<<_MFL | 1UL<<_MSL);
+            }
+            break;
+        case DF_M2WBL:
+            if (!record->event.pressed) {
+                // Switch base layer, but preserve first/secondary layers.
+                default_layer_set(1UL<<_WBL);
+                layer_state_set(1UL<<_WFL | 1UL<<_WSL);
+            }
+            break;
+        case RESET:
+            if (record->event.pressed) {
+                // Flash LEDs to indicate bootloader mode is enabled.
+                on_all_leds();
+            }
+            break;
+    }
+    return true;
+}
+
+void keyboard_post_init_user(void) {
+    default_layer_set(1UL<<DEFAULT_LAYOUT);
+}
diff --git a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/readme.md b/keyboards/durgod/k3x0/keymaps/chimera/readme.md
similarity index 89%
rename from keyboards/durgod/k320/keymaps/default_toggle_mac_windows/readme.md
rename to keyboards/durgod/k3x0/keymaps/chimera/readme.md
index 0eef77fd45..eb9a3ea5f3 100644
--- a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/readme.md
+++ b/keyboards/durgod/k3x0/keymaps/chimera/readme.md
@@ -1,8 +1,8 @@
-# A keymap for Durgod Taurus K320 that supports toggling between Mac and Windows
+# A keymap for Durgod Taurus K310/K320 that supports toggling between Mac and Windows
 
 Supports both ANSI and ISO layouts.
 
-Layer 0 : Standard 87/88 keys TKL layout (Windows)
+Layer 0 : Standard layout (Windows)
 
 Layer 1 : Media control and Windows lock key (Windows)
 - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
@@ -14,7 +14,7 @@ Layer 2 : System layer (Windows)
 - Fn + Menu + F4  : Turning Off System
 - Fn + Menu + F12 : Switch to Mac layout
 
-Layer 3 : Mac 87/88 keys TKL layout
+Layer 3 : Mac layout
 
 Layer 4 : Media control and Media lock key (Mac)
  - Standard Mac Media keys for Fn + F1 ~ Fn + F12.
@@ -39,14 +39,14 @@ You can change the default & alternate layout by setting the following flags to
 
 For example, to configure Mac as the default layer, and Windows to be the alternate layout, compile with these flags:
 
-    make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k320:default_toggle_mac_windows
+    make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k3x0/k310:chimera
 
 ## Windows key lock
 
 In windows layout, you can hold down Fn + Windows key to disable the Windows key while in locked mode.  The 'Lock' LED
 indicates if the Windows key is locked.
 
-This is similar to the stock K320 Windows key lock functionality.
+This is similar to the stock K310/K320 Windows key lock functionality.
 
 ## Mac Media Lock
 
diff --git a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/rules.mk b/keyboards/durgod/k3x0/keymaps/chimera/rules.mk
similarity index 100%
rename from keyboards/durgod/k320/keymaps/default_toggle_mac_windows/rules.mk
rename to keyboards/durgod/k3x0/keymaps/chimera/rules.mk
diff --git a/keyboards/durgod/k3x0/keymaps/default/keymap.json b/keyboards/durgod/k3x0/keymaps/default/keymap.json
new file mode 100644
index 0000000000..507b5c909c
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/default/keymap.json
@@ -0,0 +1,26 @@
+{
+  "keyboard": "durgod/k3x0",
+  "keymap": "default",
+  "layout": "LAYOUT_all",
+  "layers": [
+    [
+      "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",     "KC_PSCR", "KC_SLCK", "KC_PAUS",
+      "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_INS",  "KC_HOME", "KC_PGUP",    "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_DEL",  "KC_END",  "KC_PGDN",    "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_NUHS", "KC_ENT",                                         "KC_P4",   "KC_P5",   "KC_P6",
+      "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_P1",   "KC_P2",   "KC_P3",   "KC_PENT",
+      "KC_LCTL", "KC_LGUI", "KC_LALT",                                  "KC_SPC",                                   "KC_RALT", "MO(1)",   "KC_APP",  "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT",    "KC_P0",              "KC_PDOT"
+    ],
+    [
+      "_______",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",
+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",    "_______", "_______", "_______", "_______",
+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",    "_______", "_______", "_______", "_______",
+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",                                        "_______", "_______", "_______",
+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",            "_______",               "_______",               "_______", "_______", "_______", "_______",
+      "_______", "KC_TGUI", "_______",                                  "_______",                                  "_______", "_______", "_______", "_______",    "_______", "_______", "_______",    "_______",            "_______"
+    ]
+  ],
+  "author": "tylert",
+  "notes": "",
+  "version": 1
+}
diff --git a/keyboards/durgod/k320/keymaps/default/readme.md b/keyboards/durgod/k3x0/keymaps/default/readme.md
similarity index 66%
rename from keyboards/durgod/k320/keymaps/default/readme.md
rename to keyboards/durgod/k3x0/keymaps/default/readme.md
index c94943a837..952b1912ce 100644
--- a/keyboards/durgod/k320/keymaps/default/readme.md
+++ b/keyboards/durgod/k3x0/keymaps/default/readme.md
@@ -1,8 +1,8 @@
-# The default keymap for Durgod Taurus K320.
+# The default keymap for Durgod Taurus K3X0 (K310, K320, etc.) without backlight
 
 Supports both ANSI and ISO layouts.
 
-Layer 0 : Standard 87/88 keys TKL layout (Windows)
+Layer 0 : Standard layout (Windows)
 
 Layer 1 : Media control and Windows lock key
 - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
@@ -13,4 +13,4 @@ Layer 1 : Media control and Windows lock key
 You can hold down Fn + Windows key to disable the Windows key while in locked mode.
 The 'Lock' LED indicates if the Windows key is locked.
 
-This is similar to the stock K320 Windows key lock functionality.
+This is similar to the stock K310/K320 Windows key lock functionality.
diff --git a/keyboards/durgod/k320/keymaps/default_mac/keymap.json b/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json
similarity index 72%
rename from keyboards/durgod/k320/keymaps/default_mac/keymap.json
rename to keyboards/durgod/k3x0/keymaps/default_mac/keymap.json
index dc5d3d3fd5..acf221935e 100644
--- a/keyboards/durgod/k320/keymaps/default_mac/keymap.json
+++ b/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json
@@ -1,23 +1,23 @@
 {
-  "keyboard": "durgod/k320",
+  "keyboard": "durgod/k3x0",
   "keymap": "default_mac",
   "layout": "LAYOUT_all",
   "layers": [
     [
       "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",     "KC_F13",  "KC_F14",  "KC_F15",
-      "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_INS",  "KC_HOME", "KC_PGUP",
-      "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_DEL",  "KC_END",  "KC_PGDN",
-      "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",               "KC_UP",
-      "KC_LCTL", "KC_LALT", "KC_LGUI",                                  "KC_SPC",                                   "KC_RGUI", "KC_RALT", "MO(1)",   "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT"
+      "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_INS",  "KC_HOME", "KC_PGUP",    "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_DEL",  "KC_END",  "KC_PGDN",    "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_NUHS", "KC_ENT",                                         "KC_P4",   "KC_P5",   "KC_P6",
+      "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_P1",   "KC_P2",   "KC_P3",   "KC_PENT",
+      "KC_LCTL", "KC_LALT", "KC_LGUI",                                  "KC_SPC",                                   "KC_RGUI", "KC_RALT", "MO(1)",   "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT",    "KC_P0",              "KC_PDOT"
     ],
     [
       "KC_TRNS",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "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_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",            "KC_TRNS",               "KC_TRNS",
-      "KC_TRNS", "KC_TRNS", "KC_TRNS",                                  "KC_TRNS",                                  "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS",  "KC_TRNS"
+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",    "_______", "_______", "_______", "_______",
+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",    "_______", "_______", "_______", "_______",
+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",                                        "_______", "_______", "_______",
+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",            "KC_TRNS",               "KC_TRNS",               "_______", "_______", "_______", "_______",
+      "KC_TRNS", "KC_TRNS", "KC_TRNS",                                  "KC_TRNS",                                  "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",    "_______",            "_______"
     ]
   ],
   "author":"AlCutter",
diff --git a/keyboards/durgod/k320/keymaps/default_mac/readme.md b/keyboards/durgod/k3x0/keymaps/default_mac/readme.md
similarity index 100%
rename from keyboards/durgod/k320/keymaps/default_mac/readme.md
rename to keyboards/durgod/k3x0/keymaps/default_mac/readme.md
diff --git a/keyboards/durgod/k3x0/keymaps/typhon/keymap.c b/keyboards/durgod/k3x0/keymaps/typhon/keymap.c
new file mode 100644
index 0000000000..afd38392c1
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/typhon/keymap.c
@@ -0,0 +1,373 @@
+/* Copyright 2021 Don Kjer and Tyler Tidman
+ *
+ * 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
+
+// Layer shorthand
+enum _layer {
+    _WBL,
+    _WFL,
+    _WSL,
+    _MBL,
+    _MFL,
+    _MSL
+};
+
+#ifndef DEFAULT_LAYOUT
+# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout.
+#endif
+#ifndef ALT_LAYOUT
+# define ALT_LAYOUT     _MBL // Layout to display 'MR' led when active.
+#endif
+
+static bool win_key_locked = false;
+static bool mac_media_locked = false;
+static bool win_appkey_pressed = false;
+static bool mac_fnkey_pressed = false;
+
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    KC_TGUI = SAFE_RANGE,  // Toggle between GUI Lock or Unlock (Windows)
+    KC_TMED,               // Toggle between Fx keys or Media keys (Mac)
+    KC_WFN,                // Windows function key
+    KC_MFN,                // Mac function key
+    MO_WSL,                // Windows system key
+    MO_MSL,                // Mac system key
+    DF_W2MBL,              // Change layout from Windows to Mac
+    DF_M2WBL               // Change layout from Mac to Windows
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap _WBL: Windows Base Layer (Default Layer)
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Esc│   │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │PSc│Slk│Pse│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+   * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+   * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_WBL] = LAYOUT_all( /* Windows Base Layer */
+        KC_ESC,           KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4,    KC_PSCR, KC_SLCK, KC_PAUS,
+        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_INS,  KC_HOME, KC_PGUP,    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_DEL,  KC_END,  KC_PGDN,    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_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6,
+        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_P1,   KC_P2,   KC_P3,   KC_PENT,
+        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_WFN,  KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT
+    ),
+  /* Keymap _WFL: Windows Function Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │   │   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │   │   │Mut│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+  [_WFL] = LAYOUT_all( /* Windows Function Layer */
+        _______,          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_MUTE,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,    _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,    _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______,
+        _______, KC_TGUI, _______,                            _______,                            _______, _______, MO_WSL,  _______,    _______, _______, _______,    _______,          _______
+    ),
+  /* Keymap _WSL: Windows System Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Rst│   │Slp│   │   │Pwr│ │   │   │   │   │ │   │   │   │MAC│ │   │   │   │
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │    │    │                        │    │    │    │    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_WSL] = LAYOUT_all( /* Windows Second / System Layer */
+        RESET,            KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL,   XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX
+    ),
+
+  /* Keymap _MBL: Mac Base Layer (Alternate Layout)
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Esc│   │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │F13│F14│F15│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+   * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+   * │Ctrl│Alt │GUI │                        │ GUI│ Alt│Func│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_MBL] = LAYOUT_all( /* Mac Base Layer */
+        KC_ESC,           KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4,    KC_F13,  KC_F14,  KC_F15,
+        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_INS,  KC_HOME, KC_PGUP,    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_DEL,  KC_END,  KC_PGDN,    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_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6,
+        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_P1,   KC_P2,   KC_P3,   KC_PENT,
+        KC_LCTL, KC_LALT, KC_LGUI,                            KC_SPC,                             KC_RGUI, KC_RALT, KC_MFN,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT
+    ),
+  /* Keymap _MFL: Mac Function Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │   │   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │TMd│   │Mut│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+  [_MFL] = LAYOUT_all( /* Mac Function Layer */
+        _______,          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_TMED, _______, KC_MUTE,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,     _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,     _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                   _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,              _______, _______, _______, _______,
+        _______, _______, _______,                            _______,                            _______, MO_MSL,  _______, _______,    _______, _______, _______,     _______,          _______
+    ),
+  /* Keymap _MSL: Mac System Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Rst│   │   │   │   │Slp│ │   │   │   │   │ │   │   │   │WIN│ │   │   │   │
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+    [_MSL] = LAYOUT_all( /* Mac Second / System Layer */
+        RESET,            XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL,   XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX
+    )
+};
+
+void unlock_win_key(void) {
+    win_key_locked = false;
+    mac_media_locked = false;
+    writePinHigh(LED_WIN_LOCK_PIN);
+}
+
+void toggle_lock_win_key(void) {
+    win_key_locked = !win_key_locked;
+    writePin(LED_WIN_LOCK_PIN, !win_key_locked);
+}
+
+void toggle_lock_media_key(void) {
+    mac_media_locked = !mac_media_locked;
+    writePin(LED_WIN_LOCK_PIN, !mac_media_locked);
+}
+
+#ifdef CONSOLE_ENABLE
+void dprint_global_layers(void) {
+    dprint("Global Layers:");
+    if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); }
+    if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); }
+    if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); }
+    if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); }
+    dprintf("\n");
+}
+
+void dprint_layers(layer_state_t state) {
+    dprint("Layers:");
+    if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); }
+    if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); }
+    if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); }
+    if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); }
+    dprintf("\n");
+}
+#endif
+
+layer_state_t default_layer_state_set_user(layer_state_t state) {
+#ifdef CONSOLE_ENABLE
+    dprintf("default_layer_state_set_user: 0x%x\n", state);
+    dprint_global_layers();
+#endif
+    // Disable windows key lock on default layer transition.
+    unlock_win_key();
+    win_appkey_pressed = false;
+    mac_fnkey_pressed = false;
+    writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT));
+    return state;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+#ifdef CONSOLE_ENABLE
+    dprintf("layer_state_set_user: 0x%x\n", state);
+    dprint_layers(state);
+#endif
+    return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case KC_TGUI:
+            if (!record->event.pressed) {
+                // Toggle GUI lock on key release
+                toggle_lock_win_key();
+            }
+            break;
+        case KC_TMED:
+            // Only trigger when Fn key is also held down, to avoid accidental unlock.
+            if (!mac_fnkey_pressed) { return false; }
+            if (!record->event.pressed) {
+                // Toggle Media Lock on key release
+                toggle_lock_media_key();
+            }
+            break;
+        case KC_LGUI:
+            if (win_key_locked) { return false; }
+            break;
+        case KC_WFN:
+            // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down.
+            if (record->event.pressed) {
+                layer_on(_WFL);
+                if (win_appkey_pressed) {
+                    // Also enable Secondary layer if App key is being held down.
+                    win_appkey_pressed = false;
+                    layer_on(_WSL);
+                }
+            } else {
+                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
+                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
+            }
+            break;
+        case KC_APP:
+            if (record->event.pressed) {
+                // Don't actually press down the app menu key
+                win_appkey_pressed = true;
+            } else {
+                if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
+                if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
+                if (win_appkey_pressed) {
+                    win_appkey_pressed = false;
+                    // Tap the KC_APP key on key release.
+                    tap_code(KC_APP);
+                }
+            }
+            return false;
+            break;
+        case KC_MFN:
+            // Mac Fn key.  Emit Fn keycode, and also transition layers similar to KC_WFN.
+            if (record->event.pressed) {
+                mac_fnkey_pressed = true;
+                layer_on(_MFL);
+                // Also enable Secondary layer if Right-Alt key is being held down.
+                if (get_mods() & MOD_BIT(KC_RALT)) {
+                    layer_on(_MSL);
+                }
+            } else {
+                mac_fnkey_pressed = false;
+                if (!mac_media_locked) {
+                    if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
+                    if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
+                }
+            }
+            break;
+        case KC_RALT:
+            // Disable MSL/WFL layer on key-up.
+            if (!record->event.pressed) {
+                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
+                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
+            }
+            break;
+        case MO_WSL:
+            if (record->event.pressed) {
+                layer_on(_WSL);
+            } else {
+                if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); }
+                if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); }
+            }
+            break;
+        case MO_MSL:
+            if (record->event.pressed) {
+                layer_on(_MSL);
+            } else {
+                if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); }
+                if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); }
+            }
+            break;
+        case DF_W2MBL:
+            if (!record->event.pressed) {
+                // Switch base layer, but preserve first/secondary layers.
+                default_layer_set(1UL<<_MBL);
+                layer_state_set(1UL<<_MFL | 1UL<<_MSL);
+            }
+            break;
+        case DF_M2WBL:
+            if (!record->event.pressed) {
+                // Switch base layer, but preserve first/secondary layers.
+                default_layer_set(1UL<<_WBL);
+                layer_state_set(1UL<<_WFL | 1UL<<_WSL);
+            }
+            break;
+        case RESET:
+            if (record->event.pressed) {
+                // Flash LEDs to indicate bootloader mode is enabled.
+                on_all_leds();
+            }
+            break;
+    }
+    return true;
+}
+
+void keyboard_post_init_user(void) {
+    default_layer_set(1UL<<DEFAULT_LAYOUT);
+}
diff --git a/keyboards/durgod/k3x0/keymaps/typhon/readme.md b/keyboards/durgod/k3x0/keymaps/typhon/readme.md
new file mode 100644
index 0000000000..9ddef43aa5
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/typhon/readme.md
@@ -0,0 +1,65 @@
+# A keymap for Durgod Taurus K310/K320 that supports toggling between Mac and Windows
+
+Supports both ANSI and ISO layouts.
+
+Layer 0 : Standard layout (Windows)
+
+Layer 1 : Media control and Windows lock key (Windows)
+- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
+- Fn + Windows to toggle Windows lock key functionality
+
+Layer 2 : System layer (Windows)
+- Fn + Menu + Esc : Bootloader mode
+- Fn + Menu + F1  : System Sleep
+- Fn + Menu + F4  : Turning Off System
+- Fn + Menu + F12 : Switch to Mac layout
+
+Layer 3 : Mac layout
+
+Layer 4 : Media control and Media lock key (Mac)
+ - Standard Mac Media keys for Fn + F1 ~ Fn + F12.
+ - Fn + F13 to toggle Media lock key functionality
+
+Layer 5 : System layer (Mac)
+- Fn + R-ALT + Esc : Bootloader mode
+- Fn + R-ALT + F4  : Shutdown/Sleep (Hold down on Mac)
+- Fn + R-ALT + F12 : Switch to Windows layout
+
+## Toggle between Mac and Windows layout
+
+You can switch between Mac and Windows layout by doing the following:
+- Hold down Fn + Menu (Windows Layout) or Fn + Right-Alt (Mac layout)  (These are the same physical keys)
+- Press F12
+
+The 'M' led will be lit when you are using the alternate layout.  By default Mac is the alternate layout.
+
+You can change the default & alternate layout by setting the following flags to either '_WBL'(Windows) or '_MBL' (Mac)
+- DEFAULT_LAYOUT (initial layout to use on boot)
+- ALT_LAYOUT (layout that will light the 'M' LED when active)
+
+For example, to configure Mac as the default layer, and Windows to be the alternate layout, compile with these flags:
+
+    make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k3x0/k310:typhon
+
+## Windows key lock
+
+In windows layout, you can hold down Fn + Windows key to disable the Windows key while in locked mode.  The 'Lock' LED
+indicates if the Windows key is locked.
+
+This is similar to the stock K310/K320 Windows key lock functionality.
+
+## Mac Media Lock
+
+To switch between Function row and Media row in Mac layout, press Fn + PrtSc.  The 'Lock' LED indicator will be lit when in Media row mode.
+
+### Subsequent Flashing
+
+For repeating Flashing you have two options with this keymap:
+1. Use BootMagic
+- BootMagic Lite has been enabled with Assigned "Esc" key 
+- Unplug USB Cable
+- Holding Esc Button 
+- Plug in USB Cable, Keyboard should be in ST-Bootloader state
+2. Use key combination if using default keymap
+- Hold down Fn + Menu (Windows Layout) or Fn + Right-Alt (Mac layout)  (These are the same physical keys)
+- Press Esc.  Keyboard should go into booloader state.
diff --git a/keyboards/durgod/k3x0/keymaps/typhon/rules.mk b/keyboards/durgod/k3x0/keymaps/typhon/rules.mk
new file mode 100644
index 0000000000..437d8205c7
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/typhon/rules.mk
@@ -0,0 +1,2 @@
+OPT_DEFS += -DWINLOCK_DISABLED
+MOUSEKEY_ENABLE = yes
diff --git a/keyboards/durgod/k3x0/keymaps/via/keymap.c b/keyboards/durgod/k3x0/keymaps/via/keymap.c
new file mode 100644
index 0000000000..169ee2b586
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/via/keymap.c
@@ -0,0 +1,92 @@
+/* Copyright 2021 Maxime Coirault, Don Kjer, Tyler Tidman
+ *
+ * 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
+
+// Layer shorthand
+enum _layer {
+    _BASE,
+    _FN,
+    _LAYER3,
+    _LAYER4
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap _BASE: Base Layer (Default Layer)
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+   * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+   * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+  [_BASE] = LAYOUT_all( /* Base Layer */
+      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,     KC_PSCR, KC_SLCK, KC_PAUS,
+      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_INS,  KC_HOME, KC_PGUP,    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_DEL,  KC_END,  KC_PGDN,    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_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6,
+      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_P1,   KC_P2,   KC_P3,   KC_PENT,
+      KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_FN), KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT
+  ),
+  /* Keymap _FN: Function Layer
+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+   * │   │   │Ply│Stp│Prv│Nxt│ │Mut│Vo+│Vo-│   │ │   │   │   │   │ │   │   │   │
+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │
+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │
+   * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │ │       │   │   │
+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+   */
+  [_FN] = LAYOUT_all( /* Function Layer */
+      _______,          KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,    _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______,
+      _______, KC_TGUI, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______,    _______,          _______
+  ),
+  [_LAYER3] = LAYOUT_all( /* Layer 3 */
+      _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______,
+      _______, _______, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______,    _______,          _______
+  ),
+  [_LAYER4] = LAYOUT_all( /* Layer 4 */
+      _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______,
+      _______, _______, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______,    _______,          _______
+  )
+};
diff --git a/keyboards/durgod/k3x0/keymaps/via/readme.md b/keyboards/durgod/k3x0/keymaps/via/readme.md
new file mode 100644
index 0000000000..ffa1c4ce0a
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/via/readme.md
@@ -0,0 +1,6 @@
+# The via keymap for Durgod Taurus K310/K320.
+
+Layer 0 : Standard layout
+
+Layer 1 : Media control
+- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
diff --git a/keyboards/durgod/k3x0/keymaps/via/rules.mk b/keyboards/durgod/k3x0/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/durgod/k3x0/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md
new file mode 100644
index 0000000000..cbb170160c
--- /dev/null
+++ b/keyboards/durgod/k3x0/readme.md
@@ -0,0 +1,51 @@
+# K3X0 = K310, K320, etc.
+
+This K3X0 code is shared between both the ANSI and ISO variants of both the
+K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards.
+
+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
+* Hardware Supported: Durgod Taurus K310 or K320 board with STM32F070RBT6
+* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en
+                         and K320 https://www.durgod.com/page9?product_id=47&_l=en
+
+## Instructions
+
+### Build
+
+Instructions for building the K310 and K320 firmware can be found here:
+* [K310](k310/readme.md)
+* [K320](k320/readme.md)
+
+### Initial Flash
+
+For first Flashing from initial Stock Firmware
+
+1. Back up original Firmware Image:
+- Unplug
+- Short Boot0 to Vdd (See below)
+- Plug In USB
+- Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image:
+  - Using dfu-util:
+
+        dfu-util --list
+        dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN}
+
+2. Flash the QMK Firmware Image.
+- Put board into Bootloader mode, using the same method as when backing up the original Firmware (above)
+- Here are a few options for performing the initial Flash:
+  - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox)
+  - Using dfu-util:
+
+        dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN}
+
+You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown:
+
+<img src="https://i.imgur.com/hvDnw5a.jpg" width="520" height="693" alt="Shorting Boot0 to Vdd on K320">
+
+### Subsequent Flashing
+
+For repeating Flashing you can use BootMagic:
+- BootMagic Lite has been enabled with Assigned "Esc" key 
+- Unplug USB Cable
+- Holding Esc Button 
+- Plug in USB Cable, Keyboard should be in ST-Bootloader state
diff --git a/keyboards/durgod/k3x0/rules.mk b/keyboards/durgod/k3x0/rules.mk
new file mode 100644
index 0000000000..b70d52057f
--- /dev/null
+++ b/keyboards/durgod/k3x0/rules.mk
@@ -0,0 +1,28 @@
+# Default to K310 variant, since it will also work on a K320
+DEFAULT_FOLDER=durgod/k3x0/k310
+
+# MCU name
+# Actually F070, but close enough
+MCU = STM32F072
+BOARD = DURGOD_STM32_F070
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no        # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+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 = yes           # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output
+LTO_ENABLE = yes
diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h
index f151bde685..cdb01a9744 100644
--- a/users/talljoe/talljoe.h
+++ b/users/talljoe/talljoe.h
@@ -92,6 +92,7 @@ enum layers {
 #define MLT_E     LT(_NUM, KC_E)
 
 #ifndef SWAP_HANDS_ENABLE
+#undef SH_T
 #define SH_T
 #endif