diff --git a/keyboards/model01/keymaps/dshields/config.h b/keyboards/model01/keymaps/dshields/config.h
index 0896a1f45e..fdb23d46ba 100644
--- a/keyboards/model01/keymaps/dshields/config.h
+++ b/keyboards/model01/keymaps/dshields/config.h
@@ -1,30 +1,4 @@
 #pragma once
 
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
 #define RGB_DIGITAL_RAIN_DROPS    18
-#define USB_MAX_POWER_CONSUMPTION 100
-#define ONESHOT_TAP_TOGGLE        2
-#define ONESHOT_TIMEOUT           3000
-
-#define MOUSEKEY_INTERVAL         20
-#define MOUSEKEY_DELAY            0
-#define MOUSEKEY_TIME_TO_MAX      40
-#define MOUSEKEY_MAX_SPEED        7
-#define MOUSEKEY_WHEEL_DELAY      0
-
-// dynamic macro keys
-#define DM_PLAY DYN_MACRO_PLAY1
-#define DM_STRT DYN_REC_START1
-#define DM_STOP DYN_REC_STOP
-
-// one-shot layer keys
-#define OSL_FUN OSL(FUN)
-
-// one-shot modifier keys
-#define OSMLCTL OSM(MOD_LCTL)
-#define OSMRCTL OSM(MOD_RCTL)
-#define OSMLALT OSM(MOD_LALT)
-#define OSMRALT OSM(MOD_RALT)
-#define OSMLSFT OSM(MOD_LSFT)
-#define OSMRSFT OSM(MOD_RSFT)
 
diff --git a/keyboards/model01/keymaps/dshields/keymap.c b/keyboards/model01/keymaps/dshields/keymap.c
index dedfd69b48..6b9a541321 100644
--- a/keyboards/model01/keymaps/dshields/keymap.c
+++ b/keyboards/model01/keymaps/dshields/keymap.c
@@ -1,4 +1,5 @@
 #include QMK_KEYBOARD_H
+#include "dshields.h"
 
 enum { DEF, FUN };
 enum { DYNAMIC_MACRO_RANGE = SAFE_RANGE };
@@ -30,30 +31,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     )
 };
 
-uint32_t layer_state_set_user(uint32_t state) {
-    switch (biton32(state)) {
-        case DEF:
-            set_all_leds_to(0,0,0);
-            break;
-        case FUN:
-            // TODO light the fn keys
-            // set_led_to(?, 0, 128, 0);
-            // set_led_to(?, 0, 128, 0);
-            break;
-    }
-    return state;
-}
-
-/*
-void matrix_init_user(void) {
-    eeconfig_init();
-};
-*/
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-    if (!process_record_dynamic_macro(keycode, record)) {
-        return false;
-    }
-    return true;
-}
-
diff --git a/keyboards/model01/keymaps/dshields/rules.mk b/keyboards/model01/keymaps/dshields/rules.mk
deleted file mode 100644
index d3754cc1fc..0000000000
--- a/keyboards/model01/keymaps/dshields/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = no
-CONSOLE_ENABLE  = no
diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h
index 8d90d0d2ce..857c8164e3 100644
--- a/keyboards/planck/keymaps/dshields/config.h
+++ b/keyboards/planck/keymaps/dshields/config.h
@@ -1,33 +1,4 @@
 #pragma once
 
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
 #define RGB_DIGITAL_RAIN_DROPS    24
-#define USB_MAX_POWER_CONSUMPTION 100
-#define ONESHOT_TAP_TOGGLE        2
-#define ONESHOT_TIMEOUT           3000
-#define RETRO_TAPPING
-
-#define MOUSEKEY_INTERVAL         20
-#define MOUSEKEY_DELAY            0
-#define MOUSEKEY_TIME_TO_MAX      40
-#define MOUSEKEY_MAX_SPEED        7
-#define MOUSEKEY_WHEEL_DELAY      0
-
-// dynamic macro keys
-#define DM_PLAY DYN_MACRO_PLAY1
-#define DM_STRT DYN_REC_START1
-#define DM_STOP DYN_REC_STOP
-
-// one-shot layer keys
-#define OSL_RSE OSL(RSE)
-#define OSL_LWR OSL(LWR)
-#define OSL_FUN OSL(FUN)
-
-// one-shot modifier keys
-#define OSM_CTL OSM(MOD_LCTL)
-#define OSM_ALT OSM(MOD_LALT)
-#define OSM_SFT OSM(MOD_LSFT)
-
-// mod-tap keys
-#define MT_SPC  SFT_T(KC_SPC)
 
diff --git a/keyboards/planck/keymaps/dshields/keymap.c b/keyboards/planck/keymaps/dshields/keymap.c
index 18e246a3ea..18b026da44 100644
--- a/keyboards/planck/keymaps/dshields/keymap.c
+++ b/keyboards/planck/keymaps/dshields/keymap.c
@@ -1,27 +1,17 @@
 #include QMK_KEYBOARD_H
-#include "config.h"
-
-extern keymap_config_t keymap_config;
+#include "dshields.h"
 
 enum planck_layers { DEF, LWR, RSE, FUN };
 enum planck_keycodes { DYNAMIC_MACRO_RANGE = SAFE_RANGE };
 
 #include "dynamic_macro.h"
 
-#ifdef KEYBOARD_planck_light
-    #define LGT_TOG RGB_TOG
-    #define LGT_MOD RGB_MOD
-#else
-    #define LGT_TOG BL_TOGG
-    #define LGT_MOD BL_STEP
-#endif
-
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [DEF] = LAYOUT_planck_grid(
         KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_ESC,  KC_BSPC, KC_Y,    KC_U,    KC_I,    KC_O,    KC_P   ,
         KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_TAB,  KC_ENT,  KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,
-        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    OSM_SFT, DM_PLAY, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
-        OSM_CTL, KC_LGUI, OSM_ALT, OSL_FUN, OSL_LWR, MT_SPC,  MT_SPC,  OSL_RSE, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
+        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    OSMLSFT, DM_PLAY, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+        OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC,  MT_SPC,  OSL_RSE, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
     ),
     [LWR] = LAYOUT_planck_grid(
         KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
@@ -43,16 +33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     )
 };
 
-/*
-void matrix_init_user(void) {
-    eeconfig_init();
-};
-*/
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-    if (!process_record_dynamic_macro(keycode, record)) {
-        return false;
-    }
-    return true;
-}
-
diff --git a/users/dshields/config.h b/users/dshields/config.h
new file mode 100644
index 0000000000..743f16f999
--- /dev/null
+++ b/users/dshields/config.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define USB_MAX_POWER_CONSUMPTION 100
+#define ONESHOT_TAP_TOGGLE        2
+#define ONESHOT_TIMEOUT           3000
+#define RETRO_TAPPING
+
+#define MOUSEKEY_INTERVAL         20
+#define MOUSEKEY_DELAY            0
+#define MOUSEKEY_TIME_TO_MAX      40
+#define MOUSEKEY_MAX_SPEED        7
+#define MOUSEKEY_WHEEL_DELAY      0
+
diff --git a/users/dshields/dshields.c b/users/dshields/dshields.c
new file mode 100644
index 0000000000..6aff5c6716
--- /dev/null
+++ b/users/dshields/dshields.c
@@ -0,0 +1,30 @@
+extern keymap_config_t keymap_config;
+
+/* uncomment to reset
+void matrix_init_user(void) {
+    eeconfig_init();
+};
+*/
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    if (!process_record_dynamic_macro(keycode, record)) {
+        return false;
+    }
+    return true;
+}
+
+// work in progress
+uint32_t layer_state_set_user(uint32_t state) {
+    switch (biton32(state)) {
+        case DEF:
+            set_all_leds_to(0,0,0);
+            break;
+        case FUN:
+            // TODO light the fn keys
+            // set_led_to(?, 0, 128, 0);
+            // set_led_to(?, 0, 128, 0);
+            break;
+    }
+    return state;
+}
+
diff --git a/users/dshields/dshields.h b/users/dshields/dshields.h
new file mode 100644
index 0000000000..c746e74fb5
--- /dev/null
+++ b/users/dshields/dshields.h
@@ -0,0 +1,31 @@
+#pragma once
+
+// dynamic macro keys
+#define DM_PLAY DYN_MACRO_PLAY1
+#define DM_STRT DYN_REC_START1
+#define DM_STOP DYN_REC_STOP
+
+// one-shot layer keys
+#define OSL_RSE OSL(RSE)
+#define OSL_LWR OSL(LWR)
+#define OSL_FUN OSL(FUN)
+
+// one-shot modifier keys
+#define OSMLCTL OSM(MOD_LCTL)
+#define OSMRCTL OSM(MOD_RCTL)
+#define OSMLALT OSM(MOD_LALT)
+#define OSMRALT OSM(MOD_RALT)
+#define OSMLSFT OSM(MOD_LSFT)
+#define OSMRSFT OSM(MOD_RSFT)
+
+// mod-tap keys
+#define MT_SPC  SFT_T(KC_SPC)
+
+#ifdef KEYBOARD_planck_light
+    #define LGT_TOG RGB_TOG
+    #define LGT_MOD RGB_MOD
+#else
+    #define LGT_TOG BL_TOGG
+    #define LGT_MOD BL_STEP
+#endif
+
diff --git a/keyboards/planck/keymaps/dshields/rules.mk b/users/dshields/rules.mk
similarity index 100%
rename from keyboards/planck/keymaps/dshields/rules.mk
rename to users/dshields/rules.mk