diff --git a/keyboards/sandy/dn0020/config.h b/keyboards/sandy/dn0020/config.h
index 3cd2cb3aa288..d36a640b6ccd 100644
--- a/keyboards/sandy/dn0020/config.h
+++ b/keyboards/sandy/dn0020/config.h
@@ -24,11 +24,6 @@ along with this program. If not, see .
// Number of encoder
#define ENCODERS 2
-// Mappings of encoder rotation to key position in key matrix.
-// --> {k57, k97}, {k42, k45}
-#define ENCODERS_CW_KEY { { 7, 5 }, { 2, 4} }
-#define ENCODERS_CCW_KEY { { 7, 9 }, { 5, 4} }
-
/* RGB LED */
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
diff --git a/keyboards/sandy/dn0020/dn0020.c b/keyboards/sandy/dn0020/dn0020.c
index db8bc606b06c..aa5679607fdf 100644
--- a/keyboards/sandy/dn0020/dn0020.c
+++ b/keyboards/sandy/dn0020/dn0020.c
@@ -17,52 +17,6 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
-
-#ifdef ENCODER_ENABLE
-//------------------------------------------------------------------------------
-// Rotary Encoder with VIA
-//------------------------------------------------------------------------------
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
-static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
-
-void encoder_action_unregister(void) {
- for (int index = 0; index < ENCODERS; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = timer_read(),
- .type = KEY_EVENT
- };
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = timer_read(),
- .type = KEY_EVENT
- };
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-void matrix_scan_kb(void) {
- encoder_action_unregister();
- matrix_scan_user();
-}
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- encoder_action_register(index, clockwise);
- return true;
-}
-#endif
-
//------------------------------------------------------------------------------
// Keyboard Initialization
//------------------------------------------------------------------------------
diff --git a/keyboards/sandy/dn0020/info.json b/keyboards/sandy/dn0020/info.json
index c1b5187ae92d..aba24823cbfd 100644
--- a/keyboards/sandy/dn0020/info.json
+++ b/keyboards/sandy/dn0020/info.json
@@ -106,11 +106,7 @@
{"label": "", "matrix": [9,6], "x":13, "y":4},
{"label": "", "matrix": [4,7], "x":14, "y":4},
- {"label": "", "matrix": [5,7], "x":0, "y":5.25},
- {"label": "", "matrix": [9,7], "x":1, "y":5.25},
{"label": "", "matrix": [1,7], "x":7, "y":5.25},
- {"label": "", "matrix": [4,2], "x":13, "y":5.25},
- {"label": "", "matrix": [4,5], "x":14, "y":5.25},
{"label": "", "matrix": [2,7], "x":6, "y":6.25},
{"label": "", "matrix": [8,7], "x":7, "y":6.25},
{"label": "", "matrix": [7,7], "x":8, "y":6.25},
diff --git a/keyboards/sandy/dn0020/keymaps/default/keymap.c b/keyboards/sandy/dn0020/keymaps/default/keymap.c
index f89aa5f4f404..f453d4452034 100644
--- a/keyboards/sandy/dn0020/keymaps/default/keymap.c
+++ b/keyboards/sandy/dn0020/keymaps/default/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_MUTE, KC_LNG2, KC_LGUI, KC_LALT, SP_LOW, KC_BSPC, _______, KC_ENT, SP_RAI, KC_RALT, KC_RALT, KC_DOWN, KC_RGHT,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_UP, KC_VOLD, KC_VOLU,
+ KC_UP,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_LEFT, KC_MUTE, KC_RGHT,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, SP_ADJ, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
_______, _______, _______, _______, SP_ADJ, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
diff --git a/keyboards/sandy/dn0020/keymaps/jpskenn/keymap.c b/keyboards/sandy/dn0020/keymaps/jpskenn/keymap.c
index 64fb957a875e..1b0f67dd24c6 100644
--- a/keyboards/sandy/dn0020/keymaps/jpskenn/keymap.c
+++ b/keyboards/sandy/dn0020/keymaps/jpskenn/keymap.c
@@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LOPT, GUI_LANG2, SP_SFT, SP_LOW1, KC_BTN1, BS_SFT, SP_RAI1, GUI_LANG1, KC_ROPT, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LWIN, ALT_LANG2, SP_SFT, SP_LOW1, KC_BTN1, BS_SFT, SP_RAI1, ALT_LANG1, KC_APP, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, SP_LOW2, _______, _______, _______, KC_P0, KC_PDOT, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -178,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LOPT, GUI_LANG2, SP_SFT, _______, KC_BTN1, KC_BTN2, SP_RAI1, GUI_LANG1, KC_ROPT, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -216,7 +216,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -273,7 +273,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -282,6 +282,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+//------------------------------------------------------------------------------
+// Rotary Encoder with VIA
+//------------------------------------------------------------------------------
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][ENCODERS][2] = {
+ [_BASE1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
+ [_BASE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_BASE3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/sandy/dn0020/keymaps/jpskenn/rules.mk b/keyboards/sandy/dn0020/keymaps/jpskenn/rules.mk
index f1c5488e25ec..68c06be15207 100644
--- a/keyboards/sandy/dn0020/keymaps/jpskenn/rules.mk
+++ b/keyboards/sandy/dn0020/keymaps/jpskenn/rules.mk
@@ -1,3 +1,4 @@
VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
DYNAMIC_MACRO_ENABLE = yes # Dynamic Macros
diff --git a/keyboards/sandy/dn0020/keymaps/via/keymap.c b/keyboards/sandy/dn0020/keymaps/via/keymap.c
index ad8aa247518d..5a8126e2b5dc 100644
--- a/keyboards/sandy/dn0020/keymaps/via/keymap.c
+++ b/keyboards/sandy/dn0020/keymaps/via/keymap.c
@@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_LEFT, KC_RGHT, KC_LWIN, KC_LALT, KC_SPC, LOWER1, XXXXXXX, RAISE1, KC_SPC, KC_RALT, KC_RWIN, KC_DOWN, KC_UP,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, ADJUST, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -150,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -169,7 +169,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, ADJUST, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -188,7 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -207,7 +207,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -216,6 +216,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+//------------------------------------------------------------------------------
+// Rotary Encoder with VIA
+//------------------------------------------------------------------------------
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][ENCODERS][2] = {
+ [_BASE1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
+ [_BASE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_BASE3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/sandy/dn0020/keymaps/via/rules.mk b/keyboards/sandy/dn0020/keymaps/via/rules.mk
index 1e5b99807cb7..4253f570f0bb 100644
--- a/keyboards/sandy/dn0020/keymaps/via/rules.mk
+++ b/keyboards/sandy/dn0020/keymaps/via/rules.mk
@@ -1 +1,2 @@
VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/sandy/dn0030/config.h b/keyboards/sandy/dn0030/config.h
index e881226d576f..ccea97fcbe4c 100644
--- a/keyboards/sandy/dn0030/config.h
+++ b/keyboards/sandy/dn0030/config.h
@@ -24,11 +24,6 @@ along with this program. If not, see .
// Number of encoder
#define ENCODERS 2
-// Mappings of encoder rotation to key position in key matrix.
-// --> {k57, k97}, {k42, k45}
-#define ENCODERS_CW_KEY { { 7, 5 }, { 2, 4} }
-#define ENCODERS_CCW_KEY { { 7, 9 }, { 5, 4} }
-
/* RGB LED */
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
diff --git a/keyboards/sandy/dn0030/dn0030.c b/keyboards/sandy/dn0030/dn0030.c
index 5ae74ecd04cb..8e5005976069 100644
--- a/keyboards/sandy/dn0030/dn0030.c
+++ b/keyboards/sandy/dn0030/dn0030.c
@@ -17,51 +17,6 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
-#ifdef ENCODER_ENABLE
-//------------------------------------------------------------------------------
-// Rotary Encoder with VIA
-//------------------------------------------------------------------------------
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
-static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
-
-void encoder_action_unregister(void) {
- for (int index = 0; index < ENCODERS; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = timer_read(),
- .type = KEY_EVENT
- };
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = timer_read(),
- .type = KEY_EVENT
- };
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-void matrix_scan_kb(void) {
- encoder_action_unregister();
- matrix_scan_user();
-}
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- encoder_action_register(index, clockwise);
- return true;
-}
-#endif
-
//------------------------------------------------------------------------------
// Keyboard Initialization
//------------------------------------------------------------------------------
diff --git a/keyboards/sandy/dn0030/info.json b/keyboards/sandy/dn0030/info.json
index 913f9824bd92..14e9fb037b81 100644
--- a/keyboards/sandy/dn0030/info.json
+++ b/keyboards/sandy/dn0030/info.json
@@ -106,14 +106,12 @@
{"label": "", "matrix": [9,6], "x":13, "y":4},
{"label": "", "matrix": [4,7], "x":14, "y":4},
- {"label": "", "matrix": [5,7], "x":0, "y":5.25},
- {"label": "", "matrix": [9,7], "x":1, "y":5.25},
{"label": "", "matrix": [1,7], "x":7, "y":5.25},
- {"label": "", "matrix": [4,2], "x":13, "y":5.25},
- {"label": "", "matrix": [4,5], "x":14, "y":5.25},
+
{"label": "", "matrix": [2,7], "x":6, "y":6.25},
{"label": "", "matrix": [8,7], "x":7, "y":6.25},
{"label": "", "matrix": [7,7], "x":8, "y":6.25},
+
{"label": "", "matrix": [6,7], "x":7, "y":7.25}
]
}
diff --git a/keyboards/sandy/dn0030/keymaps/default/keymap.c b/keyboards/sandy/dn0030/keymaps/default/keymap.c
index 4ebf6776b0a0..64cccd7de393 100644
--- a/keyboards/sandy/dn0030/keymaps/default/keymap.c
+++ b/keyboards/sandy/dn0030/keymaps/default/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, KC_LGUI, KC_LALT, SP_LOW, KC_BSPC, _______, KC_ENT, SP_RAI, KC_RALT, KC_RALT, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, _______, KC_VOLD, KC_VOLU,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, SP_ADJ, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
_______, _______, _______, _______, SP_ADJ, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
diff --git a/keyboards/sandy/dn0030/keymaps/jpskenn/keymap.c b/keyboards/sandy/dn0030/keymaps/jpskenn/keymap.c
index 5d9e057a715e..ce90338915a7 100644
--- a/keyboards/sandy/dn0030/keymaps/jpskenn/keymap.c
+++ b/keyboards/sandy/dn0030/keymaps/jpskenn/keymap.c
@@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LOPT, GUI_LANG2, SP_SFT, SP_LOW1, KC_BTN1, BS_SFT, SP_RAI1, GUI_LANG1, KC_ROPT, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, _______, KC_VOLD, KC_VOLU,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LWIN, ALT_LANG2, SP_SFT, SP_LOW1, KC_BTN1, BS_SFT, SP_RAI1, ALT_LANG1, KC_APP, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, _______, KC_VOLD, KC_VOLU,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, SP_LOW2, _______, _______, _______, KC_P0, KC_PDOT, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -161,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -180,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LOPT, GUI_LANG2, SP_SFT, _______, KC_BTN1, KC_BTN2, SP_RAI1, GUI_LANG1, KC_ROPT, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, _______, KC_VOLD, KC_VOLU,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -218,7 +218,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -275,7 +275,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -284,6 +284,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+//------------------------------------------------------------------------------
+// Rotary Encoder with VIA
+//------------------------------------------------------------------------------
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][ENCODERS][2] = {
+ [_BASE1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
+ [_BASE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_BASE3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/sandy/dn0030/keymaps/jpskenn/rules.mk b/keyboards/sandy/dn0030/keymaps/jpskenn/rules.mk
index f1c5488e25ec..68c06be15207 100644
--- a/keyboards/sandy/dn0030/keymaps/jpskenn/rules.mk
+++ b/keyboards/sandy/dn0030/keymaps/jpskenn/rules.mk
@@ -1,3 +1,4 @@
VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
DYNAMIC_MACRO_ENABLE = yes # Dynamic Macros
diff --git a/keyboards/sandy/dn0030/keymaps/via/keymap.c b/keyboards/sandy/dn0030/keymaps/via/keymap.c
index 93ac00da71a3..409864e38028 100644
--- a/keyboards/sandy/dn0030/keymaps/via/keymap.c
+++ b/keyboards/sandy/dn0030/keymaps/via/keymap.c
@@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LWIN, KC_LALT, KC_SPC, LOWER1, XXXXXXX, RAISE1, KC_SPC, KC_RALT, KC_APP, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, _______, KC_VOLD, KC_VOLU,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LWIN, KC_LALT, KC_SPC, LOWER1, XXXXXXX, RAISE1, KC_SPC, KC_RALT, KC_APP, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, _______, KC_VOLD, KC_VOLU,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, ADJUST, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -152,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -171,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, ADJUST, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -190,7 +190,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -209,7 +209,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -218,6 +218,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+//------------------------------------------------------------------------------
+// Rotary Encoder with VIA
+//------------------------------------------------------------------------------
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][ENCODERS][2] = {
+ [_BASE1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
+ [_BASE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_BASE3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/sandy/dn0030/keymaps/via/rules.mk b/keyboards/sandy/dn0030/keymaps/via/rules.mk
index 1e5b99807cb7..f1adcab005e8 100644
--- a/keyboards/sandy/dn0030/keymaps/via/rules.mk
+++ b/keyboards/sandy/dn0030/keymaps/via/rules.mk
@@ -1 +1,2 @@
VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/sandy/v01/config.h b/keyboards/sandy/v01/config.h
index 5c7220e2ad7f..6aa8613a3eec 100644
--- a/keyboards/sandy/v01/config.h
+++ b/keyboards/sandy/v01/config.h
@@ -24,11 +24,6 @@ along with this program. If not, see .
// Number of encoder
#define ENCODERS 2
-// Mappings of encoder rotation to key position in key matrix.
-// --> {k57, k97}, {k42, k45}
-#define ENCODERS_CW_KEY { { 7, 5 }, { 2, 4} }
-#define ENCODERS_CCW_KEY { { 7, 9 }, { 5, 4} }
-
/* RGB LED */
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
diff --git a/keyboards/sandy/v01/info.json b/keyboards/sandy/v01/info.json
index b56913343107..a573c1bca6ce 100644
--- a/keyboards/sandy/v01/info.json
+++ b/keyboards/sandy/v01/info.json
@@ -106,11 +106,7 @@
{"label": "", "matrix": [9,6], "x":13, "y":4},
{"label": "", "matrix": [4,7], "x":14, "y":4},
- {"label": "", "matrix": [5,7], "x":0, "y":5.25},
- {"label": "", "matrix": [9,7], "x":1, "y":5.25},
{"label": "", "matrix": [1,7], "x":7, "y":5.25},
- {"label": "", "matrix": [4,2], "x":13, "y":5.25},
- {"label": "", "matrix": [4,5], "x":14, "y":5.25},
{"label": "", "matrix": [2,7], "x":6, "y":6.25},
{"label": "", "matrix": [8,7], "x":7, "y":6.25},
{"label": "", "matrix": [7,7], "x":8, "y":6.25},
diff --git a/keyboards/sandy/v01/keymaps/default/keymap.c b/keyboards/sandy/v01/keymaps/default/keymap.c
index f89aa5f4f404..f453d4452034 100644
--- a/keyboards/sandy/v01/keymaps/default/keymap.c
+++ b/keyboards/sandy/v01/keymaps/default/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_MUTE, KC_LNG2, KC_LGUI, KC_LALT, SP_LOW, KC_BSPC, _______, KC_ENT, SP_RAI, KC_RALT, KC_RALT, KC_DOWN, KC_RGHT,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_UP, KC_VOLD, KC_VOLU,
+ KC_UP,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_LEFT, KC_MUTE, KC_RGHT,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, SP_ADJ, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
_______, _______, _______, _______, SP_ADJ, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
diff --git a/keyboards/sandy/v01/keymaps/jpskenn/keymap.c b/keyboards/sandy/v01/keymaps/jpskenn/keymap.c
index 1d19cb7f9579..d66e0951e841 100644
--- a/keyboards/sandy/v01/keymaps/jpskenn/keymap.c
+++ b/keyboards/sandy/v01/keymaps/jpskenn/keymap.c
@@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LOPT, GUI_LANG2, SP_SFT, SP_LOW1, KC_BTN1, BS_SFT, SP_RAI1, GUI_LANG1, KC_ROPT, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LWIN, ALT_LANG2, SP_SFT, SP_LOW1, KC_BTN1, BS_SFT, SP_RAI1, ALT_LANG1, KC_APP, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, SP_LOW2, _______, _______, _______, KC_P0, KC_PDOT, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -155,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -174,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, KC_LOPT, GUI_LANG2, SP_SFT, _______, KC_BTN1, KC_BTN2, SP_RAI1, GUI_LANG1, KC_ROPT, XXXXXXX, XXXXXXX,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -212,7 +212,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -269,7 +269,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -278,6 +278,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+//------------------------------------------------------------------------------
+// Rotary Encoder with VIA
+//------------------------------------------------------------------------------
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][ENCODERS][2] = {
+ [_BASE1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
+ [_BASE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_BASE3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/sandy/v01/keymaps/jpskenn/rules.mk b/keyboards/sandy/v01/keymaps/jpskenn/rules.mk
index f1c5488e25ec..68c06be15207 100644
--- a/keyboards/sandy/v01/keymaps/jpskenn/rules.mk
+++ b/keyboards/sandy/v01/keymaps/jpskenn/rules.mk
@@ -1,3 +1,4 @@
VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
DYNAMIC_MACRO_ENABLE = yes # Dynamic Macros
diff --git a/keyboards/sandy/v01/keymaps/via/keymap.c b/keyboards/sandy/v01/keymaps/via/keymap.c
index b427f179b7c2..015559affb58 100644
--- a/keyboards/sandy/v01/keymaps/via/keymap.c
+++ b/keyboards/sandy/v01/keymaps/via/keymap.c
@@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_LEFT, KC_RGHT, KC_LWIN, KC_LALT, KC_SPC, LOWER1, XXXXXXX, RAISE1, KC_SPC, KC_RALT, KC_RWIN, KC_DOWN, KC_UP,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- KC_VOLD, KC_VOLU, KC_MS_U, KC_VOLD, KC_VOLU,
+ KC_MS_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_MS_L, KC_BTN1, KC_MS_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, ADJUST, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -150,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -169,7 +169,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, ADJUST, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, KC_WH_U, _______, _______,
+ KC_WH_U,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
KC_WH_L, KC_BTN2, KC_WH_R,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -188,7 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -207,7 +207,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// |---------+---------+-----------+-----------+---------------+---------+---------+---------+---------------+-----------+-----------+---------+---------|
- _______, _______, _______, _______, _______,
+ _______,
// |---------+---------+-------------------------------------------------+---------+-------------------------------------------------+---------+---------|
_______, _______, _______,
// |-----------------------------------------------------------+---------+---------+---------+-----------------------------------------------------------|
@@ -216,6 +216,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+//------------------------------------------------------------------------------
+// Rotary Encoder with VIA
+//------------------------------------------------------------------------------
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][ENCODERS][2] = {
+ [_BASE1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
+ [_BASE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_BASE3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_LOWER2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_RAISE2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/sandy/v01/keymaps/via/rules.mk b/keyboards/sandy/v01/keymaps/via/rules.mk
index 1e5b99807cb7..f1adcab005e8 100644
--- a/keyboards/sandy/v01/keymaps/via/rules.mk
+++ b/keyboards/sandy/v01/keymaps/via/rules.mk
@@ -1 +1,2 @@
VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/sandy/v01/v01.c b/keyboards/sandy/v01/v01.c
index db8bc606b06c..aa5679607fdf 100644
--- a/keyboards/sandy/v01/v01.c
+++ b/keyboards/sandy/v01/v01.c
@@ -17,52 +17,6 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
-
-#ifdef ENCODER_ENABLE
-//------------------------------------------------------------------------------
-// Rotary Encoder with VIA
-//------------------------------------------------------------------------------
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
-static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
-
-void encoder_action_unregister(void) {
- for (int index = 0; index < ENCODERS; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = timer_read(),
- .type = KEY_EVENT
- };
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = timer_read(),
- .type = KEY_EVENT
- };
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-void matrix_scan_kb(void) {
- encoder_action_unregister();
- matrix_scan_user();
-}
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- encoder_action_register(index, clockwise);
- return true;
-}
-#endif
-
//------------------------------------------------------------------------------
// Keyboard Initialization
//------------------------------------------------------------------------------