diff --git a/keyboards/redragon/k667/info.json b/keyboards/redragon/k667/info.json
index 80d6195312..889ecd56c0 100644
--- a/keyboards/redragon/k667/info.json
+++ b/keyboards/redragon/k667/info.json
@@ -31,9 +31,10 @@
     "processor": "STM32F103",
     "rgb_matrix": {
         "animations": {
-            "alphas_mods": true,
+            "solid_color": true,
             "band_sat": true,
             "band_spiral_val": true,
+            "band_spiral_sat": true,
             "band_val": true,
             "breathing": true,
             "cycle_all": true,
@@ -42,7 +43,7 @@
             "gradient_left_right": true,
             "gradient_up_down": true,
             "hue_wave": true,
-            "pixel_flow": true
+            "pixel_fractal": true
         },
         "driver": "is31fl3733",
         "layout": [
diff --git a/keyboards/redragon/k667/keymaps/default/keymap.c b/keyboards/redragon/k667/keymaps/default/keymap.c
index 48fab8614b..d4c2eb964a 100644
--- a/keyboards/redragon/k667/keymaps/default/keymap.c
+++ b/keyboards/redragon/k667/keymaps/default/keymap.c
@@ -22,6 +22,13 @@ enum layer_names
     _FnLay,
 };
 
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+    [_BASE] =   {   ENCODER_CCW_CW(KC_VOLD, KC_VOLU)  },
+    [_FnLay] =  {   ENCODER_CCW_CW(RGB_VAD, RGB_VAI)  },
+};
+#endif
+
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  
     [_BASE] = LAYOUT(    
     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_END,
diff --git a/keyboards/redragon/k667/keymaps/default/rules.mk b/keyboards/redragon/k667/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/redragon/k667/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/redragon/k667/keymaps/via/keymap.c b/keyboards/redragon/k667/keymaps/via/keymap.c
new file mode 100644
index 0000000000..d4c2eb964a
--- /dev/null
+++ b/keyboards/redragon/k667/keymaps/via/keymap.c
@@ -0,0 +1,49 @@
+/* Copyright 2023 temp4gh
+ *
+ * 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
+
+enum layer_names
+{
+    _BASE,
+    _FnLay,
+};
+
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+    [_BASE] =   {   ENCODER_CCW_CW(KC_VOLD, KC_VOLU)  },
+    [_FnLay] =  {   ENCODER_CCW_CW(RGB_VAD, RGB_VAI)  },
+};
+#endif
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  
+    [_BASE] = LAYOUT(    
+    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_END,
+    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_HOME,
+    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_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,   KC_J,    KC_K,    KC_L,    KC_SCLN,    KC_QUOT,          KC_ENT,  KC_PGUP,
+    KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_N,    KC_M,    KC_COMM, KC_DOT,     KC_SLSH, KC_RSFT, KC_UP,   KC_PGDN,
+    KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                   KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+    ),
+    [_FnLay] = LAYOUT(
+    QK_BOOT,          KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY,  KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL,          XXXXXXX,
+    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD,
+    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, RGB_VAI, XXXXXXX,
+    XXXXXXX, XXXXXXX, XXXXXXX,                            RGB_TOG,                   XXXXXXX, _______,   XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI
+    )    
+};
diff --git a/keyboards/redragon/k667/keymaps/via/rules.mk b/keyboards/redragon/k667/keymaps/via/rules.mk
new file mode 100644
index 0000000000..f1adcab005
--- /dev/null
+++ b/keyboards/redragon/k667/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes