diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 16eee263d9..a3609768f4 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -575,10 +575,6 @@ ifeq ($(strip $(VIAL_INSECURE)), yes)
OPT_DEFS += -DVIAL_INSECURE
endif
-ifeq ($(strip $(VIAL_ENCODERS_ENABLE)), yes)
- OPT_DEFS += -DVIAL_ENCODERS_ENABLE
-endif
-
ifeq ($(strip $(VIALRGB_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/vialrgb.c
OPT_DEFS += -DVIALRGB_ENABLE
diff --git a/keyboards/42keebs/basketweave_s/keymaps/vial/config.h b/keyboards/42keebs/basketweave_s/keymaps/vial/config.h
index eb02082ef7..8bfae40104 100644
--- a/keyboards/42keebs/basketweave_s/keymaps/vial/config.h
+++ b/keyboards/42keebs/basketweave_s/keymaps/vial/config.h
@@ -9,8 +9,6 @@
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
-
#define VIAL_TAP_DANCE_ENTRIES 5
#define VIAL_COMBO_ENTRIES 5
#define VIAL_KEY_OVERRIDE_ENTRIES 5
diff --git a/keyboards/42keebs/basketweave_s/keymaps/vial/keymap.c b/keyboards/42keebs/basketweave_s/keymaps/vial/keymap.c
index 02ac820017..d8c97c6db9 100644
--- a/keyboards/42keebs/basketweave_s/keymaps/vial/keymap.c
+++ b/keyboards/42keebs/basketweave_s/keymaps/vial/keymap.c
@@ -66,3 +66,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP), ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/42keebs/basketweave_s/keymaps/vial/rules.mk b/keyboards/42keebs/basketweave_s/keymaps/vial/rules.mk
index 6f7f2b3173..c9ca48bd54 100644
--- a/keyboards/42keebs/basketweave_s/keymaps/vial/rules.mk
+++ b/keyboards/42keebs/basketweave_s/keymaps/vial/rules.mk
@@ -1,4 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes
diff --git a/keyboards/42keebs/mysterium/keymaps/vial/config.h b/keyboards/42keebs/mysterium/keymaps/vial/config.h
index ef1dc84b13..9847d3c6af 100644
--- a/keyboards/42keebs/mysterium/keymaps/vial/config.h
+++ b/keyboards/42keebs/mysterium/keymaps/vial/config.h
@@ -7,8 +7,6 @@
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS }
-
#define VIAL_KEY_OVERRIDE_ENTRIES 6
#define VIAL_COMBO_ENTRIES 6
#define VIAL_TAP_DANCE_ENTRIES 6
diff --git a/keyboards/42keebs/mysterium/keymaps/vial/keymap.c b/keyboards/42keebs/mysterium/keymaps/vial/keymap.c
index 6b27689da5..5ac8e642e1 100644
--- a/keyboards/42keebs/mysterium/keymaps/vial/keymap.c
+++ b/keyboards/42keebs/mysterium/keymaps/vial/keymap.c
@@ -48,3 +48,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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)
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
+ [2] = { ENCODER_CCW_CW(KC_NO, KC_NO) },
+ [3] = { ENCODER_CCW_CW(KC_NO, KC_NO) },
+};
diff --git a/keyboards/42keebs/mysterium/keymaps/vial/rules.mk b/keyboards/42keebs/mysterium/keymaps/vial/rules.mk
index 2a8e8f8608..5b7c05adb0 100644
--- a/keyboards/42keebs/mysterium/keymaps/vial/rules.mk
+++ b/keyboards/42keebs/mysterium/keymaps/vial/rules.mk
@@ -1,4 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/boston/keymaps/vial/config.h b/keyboards/boston/keymaps/vial/config.h
index 355acf3012..16f2ce46cb 100644
--- a/keyboards/boston/keymaps/vial/config.h
+++ b/keyboards/boston/keymaps/vial/config.h
@@ -2,8 +2,6 @@
#define DYNAMIC_KEYMAP_LAYER_COUNT 7
-#define VIAL_ENCODER_DEFAULT {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}
-
#define VIAL_ENCODER_KEYCODE_DELAY 10
#define VIAL_KEYBOARD_UID {0xB3, 0x30, 0xE4, 0x75, 0xF9, 0x3A, 0x9B, 0x18}
diff --git a/keyboards/boston/keymaps/vial/keymap.c b/keyboards/boston/keymaps/vial/keymap.c
index 09bf6af7c9..b7deb8bee2 100644
--- a/keyboards/boston/keymaps/vial/keymap.c
+++ b/keyboards/boston/keymaps/vial/keymap.c
@@ -162,3 +162,12 @@ bool led_update_user(led_t led_state) {
return true;
}
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [6] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/boston/keymaps/vial/rules.mk b/keyboards/boston/keymaps/vial/rules.mk
index 33c942274e..7bd6d0bcff 100644
--- a/keyboards/boston/keymaps/vial/rules.mk
+++ b/keyboards/boston/keymaps/vial/rules.mk
@@ -31,4 +31,4 @@ WS2812_DRIVER = bitbang
#Vial
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/capsunlocked/cu7/keymaps/vial/keymap.c b/keyboards/capsunlocked/cu7/keymaps/vial/keymap.c
index 2673dfbdeb..6c38637032 100644
--- a/keyboards/capsunlocked/cu7/keymaps/vial/keymap.c
+++ b/keyboards/capsunlocked/cu7/keymaps/vial/keymap.c
@@ -37,3 +37,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______
),
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_NO, KC_NO) },
+ [1] = { ENCODER_CCW_CW(KC_NO, KC_NO) },
+ [2] = { ENCODER_CCW_CW(KC_NO, KC_NO) },
+ [3] = { ENCODER_CCW_CW(KC_NO, KC_NO) },
+};
diff --git a/keyboards/capsunlocked/cu7/keymaps/vial/rules.mk b/keyboards/capsunlocked/cu7/keymaps/vial/rules.mk
index d517c67285..b12cf5f72a 100644
--- a/keyboards/capsunlocked/cu7/keymaps/vial/rules.mk
+++ b/keyboards/capsunlocked/cu7/keymaps/vial/rules.mk
@@ -1,6 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
QMK_SETTINGS = no
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes
diff --git a/keyboards/crbn/keymaps/vial/config.h b/keyboards/crbn/keymaps/vial/config.h
index 13d6a8ab12..363abd30f1 100644
--- a/keyboards/crbn/keymaps/vial/config.h
+++ b/keyboards/crbn/keymaps/vial/config.h
@@ -6,7 +6,3 @@
/* VIAL Unlock combo keys */
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 11 }
-
-/* Encoder default values and delay */
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
-#define VIAL_ENCODER_KEYCODE_DELAY 10
diff --git a/keyboards/crbn/keymaps/vial/keymap.c b/keyboards/crbn/keymaps/vial/keymap.c
index 91880d93e8..b98f36f74e 100644
--- a/keyboards/crbn/keymaps/vial/keymap.c
+++ b/keyboards/crbn/keymaps/vial/keymap.c
@@ -43,3 +43,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/crbn/keymaps/vial/rules.mk b/keyboards/crbn/keymaps/vial/rules.mk
index 70c64e39f8..119a11bfd4 100644
--- a/keyboards/crbn/keymaps/vial/rules.mk
+++ b/keyboards/crbn/keymaps/vial/rules.mk
@@ -1,5 +1,5 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes
QMK_SETTINGS = no
diff --git a/keyboards/doodboard/duckboard_r2/keymaps/vial/config.h b/keyboards/doodboard/duckboard_r2/keymaps/vial/config.h
index d1ab9cb0da..40939929dc 100644
--- a/keyboards/doodboard/duckboard_r2/keymaps/vial/config.h
+++ b/keyboards/doodboard/duckboard_r2/keymaps/vial/config.h
@@ -7,9 +7,6 @@
#define VIAL_UNLOCK_COMBO_ROWS { 4, 4 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 4 }
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_UP, KC_DOWN, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
#undef ENCODER_RESOLUTION
#define ENCODER_RESOLUTION 4
diff --git a/keyboards/doodboard/duckboard_r2/keymaps/vial/keymap.c b/keyboards/doodboard/duckboard_r2/keymaps/vial/keymap.c
index 58f00c809b..7d20e568af 100644
--- a/keyboards/doodboard/duckboard_r2/keymaps/vial/keymap.c
+++ b/keyboards/doodboard/duckboard_r2/keymaps/vial/keymap.c
@@ -91,3 +91,12 @@ led_config_t g_led_config = {
}
};
#endif
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_UP, KC_DOWN) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk b/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk
index 18e3365b84..f0daca5a9a 100644
--- a/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk
+++ b/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk
@@ -10,7 +10,7 @@ LTO_ENABLE = yes
# Vial settings
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
VIALRGB_ENABLE = yes
# Reduce firmware size
diff --git a/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/config.h b/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/config.h
index 9c09d40ba1..4b4909ecd8 100644
--- a/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/config.h
+++ b/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/config.h
@@ -6,8 +6,5 @@
#define ENCODER_RESOLUTION 2
-#define VIAL_ENCODER_DEFAULT { KC_A, KC_B, KC_C, KC_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_A, KC_B, KC_C, KC_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
-
-
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 1, 4 }
diff --git a/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/keymap.c b/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/keymap.c
index 4e7ec62fec..d54fbc2293 100644
--- a/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/keymap.c
+++ b/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/keymap.c
@@ -145,3 +145,10 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
return true;
}
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_A, KC_B), ENCODER_CCW_CW(KC_C, KC_D) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_A, KC_B), ENCODER_CCW_CW(KC_C, KC_D) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/rules.mk b/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/rules.mk
index d3b5124293..b26d86e81b 100644
--- a/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/rules.mk
+++ b/keyboards/dumbpad/v1x_dualencoder/keymaps/vial/rules.mk
@@ -1,6 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
QMK_SETTINGS = no
EXTRAFLAGS += -flto
\ No newline at end of file
diff --git a/keyboards/handwired/snatchpad/keymaps/vial/config.h b/keyboards/handwired/snatchpad/keymaps/vial/config.h
index 85cf8167d1..bd595e3e09 100644
--- a/keyboards/handwired/snatchpad/keymaps/vial/config.h
+++ b/keyboards/handwired/snatchpad/keymaps/vial/config.h
@@ -8,4 +8,3 @@
#define VIAL_UNLOCK_COMBO_COLS { 0, 1, 2 }
#define VIAL_ENCODER_KEYCODE_DELAY 10
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD, KC_MS_DOWN, KC_MS_UP, KC_MS_LEFT, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
diff --git a/keyboards/handwired/snatchpad/keymaps/vial/keymap.c b/keyboards/handwired/snatchpad/keymaps/vial/keymap.c
index 9d6feca5b4..1a9fc0d39d 100644
--- a/keyboards/handwired/snatchpad/keymaps/vial/keymap.c
+++ b/keyboards/handwired/snatchpad/keymaps/vial/keymap.c
@@ -25,3 +25,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______
)
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD) },
+ [1] = { ENCODER_CCW_CW(KC_MS_DOWN, KC_MS_UP), ENCODER_CCW_CW(KC_MS_LEFT, KC_MS_RIGHT) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/handwired/snatchpad/keymaps/vial/rules.mk b/keyboards/handwired/snatchpad/keymaps/vial/rules.mk
index 9885eb4393..0996bd7754 100644
--- a/keyboards/handwired/snatchpad/keymaps/vial/rules.mk
+++ b/keyboards/handwired/snatchpad/keymaps/vial/rules.mk
@@ -1,5 +1,5 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes
KEY_OVERRIDE_ENABLE = no
diff --git a/keyboards/mechwild/mercutio/keymaps/vial/config.h b/keyboards/mechwild/mercutio/keymaps/vial/config.h
index eeaa272b88..a4b2e6621f 100644
--- a/keyboards/mechwild/mercutio/keymaps/vial/config.h
+++ b/keyboards/mechwild/mercutio/keymaps/vial/config.h
@@ -21,7 +21,6 @@ along with this program. If not, see .
#define VIAL_KEYBOARD_UID {0xAA, 0xF4, 0xE4, 0x5D, 0xDA, 0x2E, 0x52, 0x2F}
#define VIAL_UNLOCK_COMBO_ROWS { 1, 5 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 3 }
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
/* Space-saving measures */
#define LAYER_STATE_8BIT
diff --git a/keyboards/mechwild/mercutio/keymaps/vial/keymap.c b/keyboards/mechwild/mercutio/keymaps/vial/keymap.c
index e83dbc1293..f77bb89630 100644
--- a/keyboards/mechwild/mercutio/keymaps/vial/keymap.c
+++ b/keyboards/mechwild/mercutio/keymaps/vial/keymap.c
@@ -66,3 +66,10 @@ bool oled_task_user(void) {
return false;
}
#endif
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/mechwild/mercutio/keymaps/vial/rules.mk b/keyboards/mechwild/mercutio/keymaps/vial/rules.mk
index 1fb4736063..02ff9fa518 100644
--- a/keyboards/mechwild/mercutio/keymaps/vial/rules.mk
+++ b/keyboards/mechwild/mercutio/keymaps/vial/rules.mk
@@ -1,6 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes
KEY_OVERRIDE_ENABLE = no
diff --git a/keyboards/mechwild/murphpad/keymaps/vial/config.h b/keyboards/mechwild/murphpad/keymaps/vial/config.h
index 418673f081..79f6ed7362 100644
--- a/keyboards/mechwild/murphpad/keymaps/vial/config.h
+++ b/keyboards/mechwild/murphpad/keymaps/vial/config.h
@@ -25,5 +25,4 @@ along with this program. If not, see .
/* VIAL Specific definitions */
#define VIAL_KEYBOARD_UID {0x3B, 0x87, 0xE1, 0xE7, 0x57, 0x30, 0x78, 0x13}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
-#define VIAL_UNLOCK_COMBO_COLS { 1, 4 }
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
\ No newline at end of file
+#define VIAL_UNLOCK_COMBO_COLS { 1, 4 }
\ No newline at end of file
diff --git a/keyboards/mechwild/murphpad/keymaps/vial/keymap.c b/keyboards/mechwild/murphpad/keymaps/vial/keymap.c
index 4648d20340..706bad8965 100644
--- a/keyboards/mechwild/murphpad/keymaps/vial/keymap.c
+++ b/keyboards/mechwild/murphpad/keymaps/vial/keymap.c
@@ -122,3 +122,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
return false;
}
#endif
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/mechwild/murphpad/keymaps/vial/rules.mk b/keyboards/mechwild/murphpad/keymaps/vial/rules.mk
index 8c4ab8f5ae..bf3c77ef86 100644
--- a/keyboards/mechwild/murphpad/keymaps/vial/rules.mk
+++ b/keyboards/mechwild/murphpad/keymaps/vial/rules.mk
@@ -1,7 +1,7 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
MOUSEKEY_ENABLE = no
QMK_SETTINGS = no
COMBOS_ENABLE = no
diff --git a/keyboards/mechwild/obe/keymaps/vial/config.h b/keyboards/mechwild/obe/keymaps/vial/config.h
index b0fe26f262..6b66c2f68d 100644
--- a/keyboards/mechwild/obe/keymaps/vial/config.h
+++ b/keyboards/mechwild/obe/keymaps/vial/config.h
@@ -17,5 +17,4 @@ along with this program. If not, see .
/* VIAL Specific definitions */
#define VIAL_KEYBOARD_UID {0xD1, 0x5C, 0x58, 0xBE, 0xC2, 0x90, 0x5E, 0xD6}
#define VIAL_UNLOCK_COMBO_ROWS { 5, 5 }
-#define VIAL_UNLOCK_COMBO_COLS { 4, 3 }
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
\ No newline at end of file
+#define VIAL_UNLOCK_COMBO_COLS { 4, 3 }
\ No newline at end of file
diff --git a/keyboards/mechwild/obe/keymaps/vial/keymap.c b/keyboards/mechwild/obe/keymaps/vial/keymap.c
index 2b46f14506..007d98ccfa 100644
--- a/keyboards/mechwild/obe/keymaps/vial/keymap.c
+++ b/keyboards/mechwild/obe/keymaps/vial/keymap.c
@@ -54,4 +54,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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
)
-};
\ No newline at end of file
+};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/mechwild/obe/keymaps/vial/rules.mk b/keyboards/mechwild/obe/keymaps/vial/rules.mk
index 326bd08ddc..c6bf6798de 100644
--- a/keyboards/mechwild/obe/keymaps/vial/rules.mk
+++ b/keyboards/mechwild/obe/keymaps/vial/rules.mk
@@ -1,3 +1,3 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
\ No newline at end of file
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/mechwild/waka60/keymaps/vial/config.h b/keyboards/mechwild/waka60/keymaps/vial/config.h
index 26eede342f..a77cc4fec8 100644
--- a/keyboards/mechwild/waka60/keymaps/vial/config.h
+++ b/keyboards/mechwild/waka60/keymaps/vial/config.h
@@ -26,5 +26,3 @@ along with this program. If not, see .
#define VIAL_UNLOCK_COMBO_ROWS { 0, 5 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 5 }
-
-#define VIAL_ENCODER_DEFAULT { KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
diff --git a/keyboards/mechwild/waka60/keymaps/vial/keymap.c b/keyboards/mechwild/waka60/keymaps/vial/keymap.c
index fc1d16f2fc..70dbc59050 100644
--- a/keyboards/mechwild/waka60/keymaps/vial/keymap.c
+++ b/keyboards/mechwild/waka60/keymaps/vial/keymap.c
@@ -55,3 +55,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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
)
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/mechwild/waka60/keymaps/vial/rules.mk b/keyboards/mechwild/waka60/keymaps/vial/rules.mk
index 6f1cc7ed94..d7d3f90cbc 100644
--- a/keyboards/mechwild/waka60/keymaps/vial/rules.mk
+++ b/keyboards/mechwild/waka60/keymaps/vial/rules.mk
@@ -2,4 +2,4 @@ VIA_ENABLE = yes
VIAL_ENABLE = yes
AUDIO_ENABLE = yes
AUDIO_DRIVER = pwm_software
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/pteron36/keymaps/vial/config.h b/keyboards/pteron36/keymaps/vial/config.h
index cecb9ac69e..4d23b941e7 100644
--- a/keyboards/pteron36/keymaps/vial/config.h
+++ b/keyboards/pteron36/keymaps/vial/config.h
@@ -3,7 +3,3 @@
#define VIAL_KEYBOARD_UID {0xD6, 0x68, 0xF2, 0x55, 0x9B, 0x48, 0x07, 0x6E}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 4 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 0 }
-
-//default trans keycode.
-#define VIAL_ENCODER_DEFAULT { 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}
-
diff --git a/keyboards/pteron36/keymaps/vial/keymap.c b/keyboards/pteron36/keymaps/vial/keymap.c
index 52863d68f6..1b61337e42 100644
--- a/keyboards/pteron36/keymaps/vial/keymap.c
+++ b/keyboards/pteron36/keymaps/vial/keymap.c
@@ -82,3 +82,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [6] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/pteron36/keymaps/vial/rules.mk b/keyboards/pteron36/keymaps/vial/rules.mk
index be508f92a6..227d38c7f0 100644
--- a/keyboards/pteron36/keymaps/vial/rules.mk
+++ b/keyboards/pteron36/keymaps/vial/rules.mk
@@ -1,7 +1,7 @@
LTO_ENABLE = yes
VIA_ENABLE = yes
VIAL_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
QMK_SETTINGS = no
COMBO_ENABLE = no
TAP_DANCE_ENABLE = no
diff --git a/keyboards/spacey/keymaps/vial/config.h b/keyboards/spacey/keymaps/vial/config.h
index 5db61605a5..fe94550bab 100644
--- a/keyboards/spacey/keymaps/vial/config.h
+++ b/keyboards/spacey/keymaps/vial/config.h
@@ -8,6 +8,4 @@
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }
-#define ENCODER_RESOLUTION 4
-#define VIAL_ENCODER_DEFAULT {KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-#define VIAL_ENCODER_KEYCODE_DELAY 10
\ No newline at end of file
+#define ENCODER_RESOLUTION 4
\ No newline at end of file
diff --git a/keyboards/spacey/keymaps/vial/keymap.c b/keyboards/spacey/keymaps/vial/keymap.c
index 660f427da7..bfcd042eb6 100644
--- a/keyboards/spacey/keymaps/vial/keymap.c
+++ b/keyboards/spacey/keymaps/vial/keymap.c
@@ -46,3 +46,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+};
diff --git a/keyboards/spacey/keymaps/vial/rules.mk b/keyboards/spacey/keymaps/vial/rules.mk
index 49e4f2d1cf..c3639aa46f 100644
--- a/keyboards/spacey/keymaps/vial/rules.mk
+++ b/keyboards/spacey/keymaps/vial/rules.mk
@@ -1,4 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
-VIAL_ENCODERS_ENABLE = yes
\ No newline at end of file
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c
index e4ee6da74a..953225843e 100644
--- a/quantum/dynamic_keymap.c
+++ b/quantum/dynamic_keymap.c
@@ -71,22 +71,13 @@
// Encoders are located right after the dynamic keymap
#define VIAL_ENCODERS_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2))
+#define DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR VIAL_ENCODERS_EEPROM_ADDR
-#ifdef VIAL_ENCODERS_ENABLE
-#ifdef SPLIT_KEYBOARD
-#define NUMBER_OF_ENCODERS (2 * sizeof(encoders_pad_a) / sizeof(pin_t))
-#else
-#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a) / sizeof(pin_t))
-#endif
-static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
-#define VIAL_ENCODERS_SIZE (NUMBER_OF_ENCODERS * DYNAMIC_KEYMAP_LAYER_COUNT * 2 * 2)
-#else
-#define VIAL_ENCODERS_SIZE 0
-#endif
-
-#define VIAL_QMK_SETTINGS_EEPROM_ADDR (VIAL_ENCODERS_EEPROM_ADDR + VIAL_ENCODERS_SIZE)
+#define VIAL_ENCODERS_SIZE (NUM_ENCODERS * DYNAMIC_KEYMAP_LAYER_COUNT * 2 * 2)
// QMK settings area is just past encoders
+#define VIAL_QMK_SETTINGS_EEPROM_ADDR (VIAL_ENCODERS_EEPROM_ADDR + VIAL_ENCODERS_SIZE)
+
#ifdef QMK_SETTINGS
#include "qmk_settings.h"
#define VIAL_QMK_SETTINGS_SIZE (sizeof(qmk_settings_t))
@@ -126,17 +117,6 @@ static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (VIAL_KEY_OVERRIDE_EEPROM_ADDR + VIAL_KEY_OVERRIDE_SIZE)
#endif
-// Dynamic macro starts after dynamic encoders, but only when using ENCODER_MAP
-#ifdef ENCODER_MAP_ENABLE
-# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
-# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * NUM_ENCODERS * 2 * 2))
-# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
-#else // ENCODER_MAP_ENABLE
-# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
-# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR)
-# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
-#endif // ENCODER_MAP_ENABLE
-
// Sanity check that dynamic keymaps fit in available EEPROM
// If there's not 100 bytes available for macros, then something is wrong.
// The keyboard should override DYNAMIC_KEYMAP_LAYER_COUNT to reduce it,
diff --git a/quantum/encoder.c b/quantum/encoder.c
index 73ba47f237..105bed0147 100644
--- a/quantum/encoder.c
+++ b/quantum/encoder.c
@@ -79,11 +79,6 @@ __attribute__((weak)) bool encoder_update_kb(uint8_t index, bool clockwise) {
return encoder_update_user(index, clockwise);
}
-#ifdef VIAL_ENCODERS_ENABLE
-#include "vial.h"
-#define encoder_update_kb vial_encoder_update
-#endif
-
void encoder_init(void) {
#ifdef SPLIT_KEYBOARD
thisHand = isLeftHand ? 0 : NUM_ENCODERS_LEFT;
diff --git a/quantum/vial.c b/quantum/vial.c
index 23d62a2fa5..84fed1ee18 100644
--- a/quantum/vial.c
+++ b/quantum/vial.c
@@ -44,10 +44,6 @@ _Static_assert(VIAL_UNLOCK_NUM_KEYS < 15, "Max 15 unlock keys");
_Static_assert(sizeof(vial_unlock_combo_rows) == sizeof(vial_unlock_combo_cols), "The number of unlock cols and rows should be the same");
#endif
-#ifndef VIAL_ENCODER_KEYCODE_DELAY
-#define VIAL_ENCODER_KEYCODE_DELAY 10
-#endif
-
#include "qmk_settings.h"
#ifdef VIAL_TAP_DANCE_ENABLE
@@ -123,7 +119,7 @@ void vial_handle_cmd(uint8_t *msg, uint8_t length) {
memcpy_P(msg, &keyboard_definition[start], end - start);
break;
}
-#ifdef VIAL_ENCODERS_ENABLE
+#ifdef ENCODER_MAP_ENABLE
case vial_get_encoder: {
uint8_t layer = msg[2];
uint8_t idx = msg[3];
@@ -326,39 +322,6 @@ void vial_keycode_tap(uint16_t keycode) {
vial_keycode_up(keycode);
}
-#ifdef VIAL_ENCODERS_ENABLE
-static void exec_keycode(uint16_t keycode) {
- vial_keycode_down(keycode);
-
-#if VIAL_ENCODER_KEYCODE_DELAY > 0
- wait_ms(VIAL_ENCODER_KEYCODE_DELAY);
-#endif
-
- vial_keycode_up(keycode);
-}
-
-bool vial_encoder_update(uint8_t index, bool clockwise) {
- uint16_t code;
-
- layer_state_t layers = layer_state | default_layer_state;
- /* check top layer first */
- for (int8_t i = MAX_LAYER - 1; i >= 0; i--) {
- if (layers & (1UL << i)) {
- code = dynamic_keymap_get_encoder(i, index, clockwise);
- if (code != KC_TRNS) {
- exec_keycode(code);
- return true;
- }
- }
- }
- /* fall back to layer 0 */
- code = dynamic_keymap_get_encoder(0, index, clockwise);
- exec_keycode(code);
-
- return true;
-}
-#endif
-
#ifdef VIAL_TAP_DANCE_ENABLE
#include "process_tap_dance.h"
diff --git a/quantum/vial.h b/quantum/vial.h
index 76e034c0f1..e479a5ad6d 100644
--- a/quantum/vial.h
+++ b/quantum/vial.h
@@ -29,10 +29,6 @@ void vial_init(void);
void vial_handle_cmd(uint8_t *data, uint8_t length);
bool process_record_vial(uint16_t keycode, keyrecord_t *record);
-#ifdef VIAL_ENCODERS_ENABLE
-bool vial_encoder_update(uint8_t index, bool clockwise);
-#endif
-
extern int vial_unlocked;
extern int vial_unlock_in_progress;