summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjack <0x6A73@pm.me>2023-06-19 09:46:27 -0600
committerGitHub <noreply@github.com>2023-06-19 09:46:27 -0600
commitc4a67d3f3302f3096bb6b15921c9587643164ba9 (patch)
treebf10e469333ba42b708e76cfc085eb450d92359e
parent74fbd5a0313769655914166bc872d41461509bd3 (diff)
Remove encoder in-matrix workaround code (#20389)
-rw-r--r--keyboards/atlantis/ak81_ve/config.h3
-rw-r--r--keyboards/atlantis/ak81_ve/keymaps/via/keymap.c91
-rw-r--r--keyboards/atlantis/ak81_ve/keymaps/via/rules.mk3
-rw-r--r--keyboards/atlantis/encoder_actions.c63
-rw-r--r--keyboards/atlantis/encoder_actions.h23
-rw-r--r--keyboards/custommk/evo70/info.json4
-rw-r--r--keyboards/custommk/evo70/keymaps/default/keymap.c6
-rw-r--r--keyboards/custommk/evo70/keymaps/via/keymap.c58
-rw-r--r--keyboards/custommk/evo70/keymaps/via/rules.mk1
-rw-r--r--keyboards/custommk/genesis/rev2/info.json33
-rw-r--r--keyboards/custommk/genesis/rev2/keymaps/via/keymap.c129
-rw-r--r--keyboards/custommk/genesis/rev2/keymaps/via/rules.mk3
-rw-r--r--keyboards/dailycraft/owl8/info.json15
-rw-r--r--keyboards/dailycraft/owl8/keymaps/default/keymap.c6
-rw-r--r--keyboards/dailycraft/owl8/keymaps/via/keymap.c85
-rw-r--r--keyboards/dailycraft/owl8/keymaps/via/rules.mk1
-rw-r--r--keyboards/dailycraft/stickey4/info.json9
-rw-r--r--keyboards/dailycraft/stickey4/keymaps/default/keymap.c15
-rw-r--r--keyboards/dailycraft/stickey4/keymaps/via/keymap.c87
-rw-r--r--keyboards/dailycraft/stickey4/keymaps/via/rules.mk1
-rw-r--r--keyboards/dailycraft/wings42/rev2/info.json13
-rw-r--r--keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c16
-rw-r--r--keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c166
-rw-r--r--keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk2
-rw-r--r--keyboards/gl516/n51gl/info.json58
-rw-r--r--keyboards/gl516/n51gl/keymaps/salicylic/config.h22
-rw-r--r--keyboards/gl516/n51gl/keymaps/salicylic/keymap.c117
-rw-r--r--keyboards/gl516/n51gl/keymaps/via/keymap.c45
-rw-r--r--keyboards/gl516/n51gl/keymaps/via/rules.mk3
-rw-r--r--keyboards/jones/v1/info.json8
-rw-r--r--keyboards/jones/v1/keymaps/default/keymap.c12
-rw-r--r--keyboards/jones/v1/keymaps/via/config.h31
-rw-r--r--keyboards/jones/v1/keymaps/via/keymap.c70
-rw-r--r--keyboards/jones/v1/keymaps/via/rules.mk2
-rw-r--r--keyboards/kabedon/kabedon98e/config.h3
-rw-r--r--keyboards/kabedon/kabedon98e/info.json4
-rw-r--r--keyboards/kabedon/kabedon98e/kabedon98e.c57
-rw-r--r--keyboards/kabedon/kabedon98e/keymaps/default/keymap.c20
-rw-r--r--keyboards/kabedon/kabedon98e/keymaps/default/rules.mk1
-rw-r--r--keyboards/kabedon/kabedon98e/keymaps/via/keymap.c14
-rw-r--r--keyboards/kabedon/kabedon98e/keymaps/via/rules.mk1
-rw-r--r--keyboards/keebio/bamfk1/config.h4
-rw-r--r--keyboards/keebio/bamfk1/info.json10
-rw-r--r--keyboards/keebio/bamfk1/keymaps/default/keymap.c27
-rw-r--r--keyboards/keebio/bamfk1/keymaps/default/rules.mk1
-rw-r--r--keyboards/keebio/bamfk1/keymaps/via/keymap.c25
-rw-r--r--keyboards/keebio/bamfk1/keymaps/via/rules.mk1
-rw-r--r--keyboards/keebio/bamfk1/rules.mk2
-rw-r--r--keyboards/keebio/encoder_actions.c63
-rw-r--r--keyboards/keebio/encoder_actions.h23
-rw-r--r--keyboards/meletrix/zoom65/info.json2
-rw-r--r--keyboards/meletrix/zoom65/keymaps/default/keymap.c4
-rw-r--r--keyboards/meletrix/zoom65/keymaps/via/keymap.c17
-rw-r--r--keyboards/meletrix/zoom65/keymaps/via/rules.mk3
-rw-r--r--keyboards/meletrix/zoom65/zoom65.c64
-rw-r--r--keyboards/meletrix/zoom65_lite/config.h21
-rw-r--r--keyboards/meletrix/zoom65_lite/info.json2
-rw-r--r--keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c4
-rw-r--r--keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c62
-rw-r--r--keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk3
-rw-r--r--keyboards/ml/gas75/info.json2
-rw-r--r--keyboards/ml/gas75/keymaps/default/keymap.c28
-rw-r--r--keyboards/ml/gas75/keymaps/via/keymap.c48
-rw-r--r--keyboards/ml/gas75/keymaps/via/rules.mk1
-rw-r--r--keyboards/monarch/info.json5
-rw-r--r--keyboards/monarch/keymaps/default/keymap.c9
-rw-r--r--keyboards/monarch/keymaps/iso/keymap.c9
-rw-r--r--keyboards/monarch/keymaps/via/keymap.c57
-rw-r--r--keyboards/monarch/keymaps/via/rules.mk1
-rw-r--r--keyboards/mwstudio/alicekk/keymaps/via/keymap.c45
-rw-r--r--keyboards/mwstudio/alicekk/keymaps/via/rules.mk2
-rw-r--r--keyboards/mwstudio/mw65_rgb/info.json3
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c4
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c4
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h13
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c17
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c26
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk1
-rw-r--r--keyboards/mwstudio/mw75r2/keymaps/via/keymap.c45
-rw-r--r--keyboards/mwstudio/mw75r2/keymaps/via/rules.mk1
-rw-r--r--keyboards/nightly_boards/adellein/adellein.c28
-rw-r--r--keyboards/nightly_boards/adellein/adellein.h20
-rw-r--r--keyboards/nightly_boards/adellein/config.h4
-rw-r--r--keyboards/nightly_boards/adellein/encoder_action.c47
-rw-r--r--keyboards/nightly_boards/adellein/encoder_action.h23
-rw-r--r--keyboards/nightly_boards/adellein/info.json60
-rw-r--r--keyboards/nightly_boards/adellein/keymaps/via/keymap.c30
-rw-r--r--keyboards/nightly_boards/adellein/keymaps/via/rules.mk3
-rw-r--r--keyboards/nightly_boards/adellein/rules.mk3
-rw-r--r--keyboards/nightly_boards/n40_o/config.h4
-rw-r--r--keyboards/nightly_boards/n40_o/encoder_action.c47
-rw-r--r--keyboards/nightly_boards/n40_o/encoder_action.h23
-rw-r--r--keyboards/nightly_boards/n40_o/info.json67
-rw-r--r--keyboards/nightly_boards/n40_o/keymaps/via/keymap.c56
-rw-r--r--keyboards/nightly_boards/n40_o/keymaps/via/rules.mk3
-rw-r--r--keyboards/nightly_boards/n40_o/n40_o.c29
-rw-r--r--keyboards/nightly_boards/n40_o/rules.mk3
-rw-r--r--keyboards/nightly_boards/n60_s/config.h4
-rw-r--r--keyboards/nightly_boards/n60_s/encoder_action.c47
-rw-r--r--keyboards/nightly_boards/n60_s/encoder_action.h23
-rw-r--r--keyboards/nightly_boards/n60_s/info.json149
-rw-r--r--keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c34
-rw-r--r--keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c34
-rw-r--r--keyboards/nightly_boards/n60_s/keymaps/via/keymap.c27
-rw-r--r--keyboards/nightly_boards/n60_s/keymaps/via/rules.mk1
-rw-r--r--keyboards/nightly_boards/n60_s/n60_s.c28
-rw-r--r--keyboards/nightly_boards/n60_s/n60_s.h20
-rw-r--r--keyboards/nightly_boards/n60_s/rules.mk3
-rw-r--r--keyboards/nightly_boards/octopad/config.h4
-rw-r--r--keyboards/nightly_boards/octopad/encoder_action.c47
-rw-r--r--keyboards/nightly_boards/octopad/encoder_action.h23
-rw-r--r--keyboards/nightly_boards/octopad/info.json6
-rw-r--r--keyboards/nightly_boards/octopad/keymaps/default/keymap.c15
-rw-r--r--keyboards/nightly_boards/octopad/keymaps/default/rules.mk1
-rw-r--r--keyboards/nightly_boards/octopad/keymaps/via/keymap.c62
-rw-r--r--keyboards/nightly_boards/octopad/keymaps/via/rules.mk3
-rw-r--r--keyboards/nightly_boards/octopad/octopad.c28
-rw-r--r--keyboards/nightly_boards/octopad/octopad.h20
-rw-r--r--keyboards/nightly_boards/octopad/rules.mk3
-rw-r--r--keyboards/nullbitsco/tidbit/info.json12
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/default/keymap.c33
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/default/rules.mk1
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c54
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk1
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c78
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk1
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/via/keymap.c67
-rw-r--r--keyboards/nullbitsco/tidbit/keymaps/via/rules.mk3
-rw-r--r--keyboards/nullbitsco/tidbit/tidbit.c92
-rw-r--r--keyboards/owlab/voice65/hotswap/hotswap.c328
-rw-r--r--keyboards/owlab/voice65/hotswap/hotswap.h30
-rw-r--r--keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c27
-rw-r--r--keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk1
-rw-r--r--keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c24
-rw-r--r--keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk1
-rw-r--r--keyboards/owlab/voice65/soldered/keymaps/default/keymap.c27
-rw-r--r--keyboards/owlab/voice65/soldered/keymaps/default/rules.mk1
-rw-r--r--keyboards/owlab/voice65/soldered/keymaps/via/keymap.c27
-rw-r--r--keyboards/owlab/voice65/soldered/keymaps/via/rules.mk1
-rw-r--r--keyboards/owlab/voice65/soldered/soldered.c329
-rw-r--r--keyboards/owlab/voice65/soldered/soldered.h30
-rw-r--r--keyboards/rate/pistachio_mp/keymaps/default/keymap.c13
-rw-r--r--keyboards/rate/pistachio_mp/keymaps/via/keymap.c79
-rw-r--r--keyboards/rate/pistachio_mp/keymaps/via/rules.mk3
-rw-r--r--keyboards/rate/pistachio_pro/keymaps/default/keymap.c14
-rw-r--r--keyboards/rate/pistachio_pro/keymaps/via/keymap.c71
-rw-r--r--keyboards/rate/pistachio_pro/keymaps/via/rules.mk1
-rw-r--r--keyboards/rgbkb/mun/keymaps/default/keymap.c18
-rw-r--r--keyboards/rgbkb/mun/keymaps/default/rules.mk1
-rw-r--r--keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c53
-rw-r--r--keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk1
-rw-r--r--keyboards/rgbkb/mun/keymaps/via/keymap.c18
-rw-r--r--keyboards/rgbkb/mun/keymaps/via/rules.mk3
-rw-r--r--keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c17
-rw-r--r--keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk4
-rw-r--r--keyboards/rgbkb/mun/rev1/info.json10
-rw-r--r--keyboards/rgbkb/mun/rev1/rev1.c33
-rw-r--r--keyboards/rgbkb/sol3/keymaps/default/keymap.c17
-rw-r--r--keyboards/rgbkb/sol3/keymaps/default/rules.mk1
-rw-r--r--keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c10
-rw-r--r--keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk1
-rw-r--r--keyboards/rgbkb/sol3/keymaps/via/keymap.c20
-rw-r--r--keyboards/rgbkb/sol3/keymaps/via/rules.mk1
-rw-r--r--keyboards/rgbkb/sol3/rev1/info.json14
-rw-r--r--keyboards/rgbkb/sol3/rev1/rev1.c32
-rw-r--r--keyboards/rmi_kb/chevron/info.json62
-rw-r--r--keyboards/rmi_kb/chevron/keymaps/via/keymap.c62
-rw-r--r--keyboards/rmi_kb/chevron/keymaps/via/rules.mk1
-rw-r--r--keyboards/rmi_kb/herringbone/pro/info.json4
-rw-r--r--keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c58
-rw-r--r--keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk1
-rw-r--r--keyboards/rmi_kb/squishytkl/info.json5
-rw-r--r--keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c46
-rw-r--r--keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk1
-rw-r--r--keyboards/rmi_kb/wete/v2/info.json5
-rw-r--r--keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c49
-rw-r--r--keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk1
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/config.h5
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c53
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h23
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h20
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/info.json84
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c4
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c64
-rw-r--r--keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk4
-rw-r--r--keyboards/sofle/keymaps/keyhive_via/encoder.c48
-rw-r--r--keyboards/sofle/keymaps/keyhive_via/keymap.c65
-rw-r--r--keyboards/sofle/keymaps/keyhive_via/rules.mk1
-rw-r--r--keyboards/stello65/beta/beta.c18
-rw-r--r--keyboards/synthlabs/solo/config.h3
-rw-r--r--keyboards/synthlabs/solo/info.json18
-rw-r--r--keyboards/synthlabs/solo/keymaps/default/keymap.c2
-rw-r--r--keyboards/synthlabs/solo/keymaps/gamepad/keymap.c2
-rw-r--r--keyboards/synthlabs/solo/keymaps/via/keymap.c55
-rw-r--r--keyboards/synthlabs/solo/keymaps/via/rules.mk1
-rw-r--r--keyboards/synthlabs/solo/solo.c18
-rw-r--r--keyboards/takashicompany/dogtag/dogtag.c48
-rw-r--r--keyboards/takashicompany/dogtag/info.json8
-rw-r--r--keyboards/takashicompany/dogtag/keymaps/default/keymap.c17
-rw-r--r--keyboards/takashicompany/dogtag/keymaps/default/rules.mk1
-rw-r--r--keyboards/takashicompany/dogtag/keymaps/via/keymap.c13
-rw-r--r--keyboards/takashicompany/dogtag/keymaps/via/rules.mk1
-rw-r--r--keyboards/takashicompany/spreadwriter/info.json4
-rw-r--r--keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c30
-rw-r--r--keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c71
-rw-r--r--keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk3
-rw-r--r--keyboards/tkc/portico75/info.json91
-rw-r--r--keyboards/tkc/portico75/keymaps/via/keymap.c30
-rw-r--r--keyboards/wekey/we27/encoder_actions.c52
-rw-r--r--keyboards/wekey/we27/encoder_actions.h23
-rw-r--r--keyboards/wekey/we27/info.json39
-rw-r--r--keyboards/wekey/we27/keymaps/default/keymap.c27
-rw-r--r--keyboards/wekey/we27/keymaps/default/rules.mk1
-rw-r--r--keyboards/wekey/we27/keymaps/via/keymap.c27
-rw-r--r--keyboards/wekey/we27/keymaps/via/rules.mk1
-rw-r--r--keyboards/wekey/we27/rules.mk2
-rw-r--r--keyboards/wekey/we27/we27.c12
-rw-r--r--keyboards/winry/winry315/keymaps/via/encoder_actions.c80
-rw-r--r--keyboards/winry/winry315/keymaps/via/encoder_actions.h21
-rw-r--r--keyboards/winry/winry315/keymaps/via/keymap.c27
-rw-r--r--keyboards/winry/winry315/keymaps/via/rules.mk3
-rw-r--r--keyboards/wuque/mammoth20x/config.h4
-rw-r--r--keyboards/wuque/mammoth20x/info.json2
-rw-r--r--keyboards/wuque/mammoth20x/keymaps/default/keymap.c4
-rw-r--r--keyboards/wuque/mammoth20x/keymaps/via/keymap.c17
-rw-r--r--keyboards/wuque/mammoth20x/keymaps/via/rules.mk1
-rw-r--r--keyboards/wuque/mammoth20x/mammoth20x.c62
-rw-r--r--keyboards/wuque/mammoth75x/config.h4
-rw-r--r--keyboards/wuque/mammoth75x/info.json3
-rw-r--r--keyboards/wuque/mammoth75x/keymaps/default/keymap.c4
-rw-r--r--keyboards/wuque/mammoth75x/keymaps/via/keymap.c17
-rw-r--r--keyboards/wuque/mammoth75x/keymaps/via/rules.mk1
-rw-r--r--keyboards/wuque/mammoth75x/mammoth75x.c64
-rw-r--r--keyboards/wuque/serneity65/info.json2
-rw-r--r--keyboards/wuque/serneity65/keymaps/default/keymap.c8
-rw-r--r--keyboards/wuque/serneity65/keymaps/via/keymap.c17
-rw-r--r--keyboards/wuque/serneity65/keymaps/via/rules.mk3
-rw-r--r--keyboards/wuque/serneity65/serneity65.c64
-rw-r--r--keyboards/yandrstudio/nz67v2/info.json2
-rw-r--r--keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c5
-rw-r--r--keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c45
241 files changed, 1105 insertions, 5234 deletions
diff --git a/keyboards/atlantis/ak81_ve/config.h b/keyboards/atlantis/ak81_ve/config.h
index f300362917..28a4e88893 100644
--- a/keyboards/atlantis/ak81_ve/config.h
+++ b/keyboards/atlantis/ak81_ve/config.h
@@ -16,9 +16,6 @@
16 16
17#pragma once 17#pragma once
18 18
19#define ENCODERS_CCW_KEY { { 4, 5 } } // Note: array is { col, row )
20#define ENCODERS_CW_KEY { { 3, 5 } } // Note: array is { col, row )
21
22/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 19/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
23#define LOCKING_SUPPORT_ENABLE 20#define LOCKING_SUPPORT_ENABLE
24 21
diff --git a/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c
index 48ffe1be63..8109358475 100644
--- a/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c
+++ b/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c
@@ -16,54 +16,47 @@
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19#define LAYOUT_via( \
20 K000, K001, K002, K003, K004, K005, K006, K007, K008, K010, K011, K012, K013, K014, \
21 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
22 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
23 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, \
24 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \
25 K500, K501, K502, K503, K504, K506, K510, K511, K512, K513, K514 \
26) { \
27 { K000, K001, K002, K003, K004, K005, K006, K007, K008, KC_NO, K010, K011, K012, K013, K014 }, \
28 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
29 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
30 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314 }, \
31 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414 }, \
32 { K500, K501, K502, K503, K504, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514 } \
33}
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36 20
37 [0] = LAYOUT_via( 21 [0] = LAYOUT(
38 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, 22 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
39 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
40 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
41 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
43 KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_VOLD, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
44 28
45 [1] = LAYOUT_via( 29 [1] = LAYOUT(
46 KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG, 30 KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI,
48 _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI, 32 _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, 33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
50 _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD, 34 _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD,
51 _______, _______, _______, RGB_MOD, RGB_RMOD, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI), 35 _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI),
52 36
53 [2] = LAYOUT_via( 37 [2] = LAYOUT(
54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), 43 _______, _______, _______, _______, _______, _______, _______, _______, _______),
60 44
61 [3] = LAYOUT_via( 45 [3] = LAYOUT(
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
65 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) 51 _______, _______, _______, _______, _______, _______, _______, _______, _______)
68 52
69}; \ No newline at end of file 53};
54
55#ifdef ENCODER_MAP_ENABLE
56const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
57 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
58 [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
59 [2] = { ENCODER_CCW_CW(_______, _______) },
60 [3] = { ENCODER_CCW_CW(_______, _______) },
61};
62#endif
diff --git a/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk b/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk
index f74ca2c244..f1adcab005 100644
--- a/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk
+++ b/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk
@@ -1,3 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2 2ENCODER_MAP_ENABLE = yes
3SRC += encoder_actions.c \ No newline at end of file
diff --git a/keyboards/atlantis/encoder_actions.c b/keyboards/atlantis/encoder_actions.c
deleted file mode 100644
index 126b665a8e..0000000000
--- a/keyboards/atlantis/encoder_actions.c
+++ /dev/null
@@ -1,63 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 * Copyright 2021 drashna jael're (@drashna)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "encoder_actions.h"
19
20#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
21static uint8_t encoder_state[NUM_ENCODERS] = {0};
22static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
23static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
24
25void encoder_action_unregister(void) {
26 for (int index = 0; index < NUM_ENCODERS; ++index) {
27 if (encoder_state[index]) {
28 keyevent_t encoder_event = (keyevent_t) {
29 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
30 .pressed = false,
31 .time = timer_read(),
32 .type = KEY_EVENT
33 };
34 encoder_state[index] = 0;
35 action_exec(encoder_event);
36 }
37 }
38}
39
40void encoder_action_register(uint8_t index, bool clockwise) {
41 keyevent_t encoder_event = (keyevent_t) {
42 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
43 .pressed = true,
44 .time = timer_read(),
45 .type = KEY_EVENT
46 };
47 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
48 action_exec(encoder_event);
49}
50
51void matrix_scan_kb(void) {
52 encoder_action_unregister();
53 matrix_scan_user();
54}
55
56bool encoder_update_kb(uint8_t index, bool clockwise) {
57 encoder_action_register(index, clockwise);
58 // don't return user actions, because they are in the keymap
59 // encoder_update_user(index, clockwise);
60 return true;
61};
62
63#endif
diff --git a/keyboards/atlantis/encoder_actions.h b/keyboards/atlantis/encoder_actions.h
deleted file mode 100644
index 1a7fb72014..0000000000
--- a/keyboards/atlantis/encoder_actions.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise);
diff --git a/keyboards/custommk/evo70/info.json b/keyboards/custommk/evo70/info.json
index 769e2e6118..abd33c65ae 100644
--- a/keyboards/custommk/evo70/info.json
+++ b/keyboards/custommk/evo70/info.json
@@ -143,13 +143,9 @@
143 143
144 {"matrix": [5, 6], "x": 0.5, "y": 1.1}, 144 {"matrix": [5, 6], "x": 0.5, "y": 1.1},
145 145
146 {"matrix": [4, 7], "x": 0, "y": 0},
147
148 {"matrix": [4, 8], "x": 12.5, "y": 5.1, "w": 1.25}, 146 {"matrix": [4, 8], "x": 12.5, "y": 5.1, "w": 1.25},
149 {"matrix": [4, 9], "x": 13.75, "y": 5.1, "w": 1.25}, 147 {"matrix": [4, 9], "x": 13.75, "y": 5.1, "w": 1.25},
150 148
151 {"matrix": [4, 10], "x": 1, "y": 0},
152
153 {"matrix": [4, 11], "x": 15.5, "y": 5.1}, 149 {"matrix": [4, 11], "x": 15.5, "y": 5.1},
154 {"matrix": [4, 12], "x": 16.5, "y": 5.1}, 150 {"matrix": [4, 12], "x": 16.5, "y": 5.1},
155 {"matrix": [4, 13], "x": 17.5, "y": 5.1} 151 {"matrix": [4, 13], "x": 17.5, "y": 5.1}
diff --git a/keyboards/custommk/evo70/keymaps/default/keymap.c b/keyboards/custommk/evo70/keymaps/default/keymap.c
index 6f518dd964..b577b885b2 100644
--- a/keyboards/custommk/evo70/keymaps/default/keymap.c
+++ b/keyboards/custommk/evo70/keymaps/default/keymap.c
@@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
24 KC_F1, KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 24 KC_F1, KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
25 KC_F3, KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 25 KC_F3, KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
26 KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_VOLD, KC_RALT, KC_RCTL, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT 26 KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ), 27 ),
28 28
29 [1] = LAYOUT( 29 [1] = LAYOUT(
@@ -31,6 +31,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 31 KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_F7, KC_F8, KC_TRNS, BL_TOGG, BL_STEP, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 32 KC_F7, KC_F8, KC_TRNS, BL_TOGG, BL_STEP, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_F9, KC_F10, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 33 KC_F9, KC_F10, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 34 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
35 ), 35 )
36}; 36};
diff --git a/keyboards/custommk/evo70/keymaps/via/keymap.c b/keyboards/custommk/evo70/keymaps/via/keymap.c
index 34de0889ee..19d6009f4f 100644
--- a/keyboards/custommk/evo70/keymaps/via/keymap.c
+++ b/keyboards/custommk/evo70/keymaps/via/keymap.c
@@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
24 KC_F1, KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 24 KC_F1, KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
25 KC_F3, KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 25 KC_F3, KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
26 KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_VOLD, KC_RALT, KC_RCTL, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT 26 KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ), 27 ),
28 28
29 [1] = LAYOUT( 29 [1] = LAYOUT(
@@ -31,57 +31,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 31 KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_F7, KC_F8, KC_TRNS, BL_TOGG, BL_STEP, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 32 KC_F7, KC_F8, KC_TRNS, BL_TOGG, BL_STEP, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_F9, KC_F10, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 33 KC_F9, KC_F10, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 34 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
35 ), 35 ),
36}; 36};
37 37
38static bool custom_encoder_mode = false; 38#ifdef ENCODER_MAP_ENABLE
39 39const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
40void set_custom_encoder_mode_user(bool custom_mode) { 40 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
41 custom_encoder_mode = custom_mode; 41 [1] = { ENCODER_CCW_CW(_______, _______) },
42}
43
44
45keyevent_t encoder_ccw = {
46 .key = (keypos_t){.row = 4, .col = 7},
47 .pressed = false,
48 .type = KEY_EVENT
49};
50
51keyevent_t encoder_cw = {
52 .key = (keypos_t){.row = 4, .col = 10},
53 .pressed = false,
54 .type = KEY_EVENT
55}; 42};
56 43#endif
57
58bool encoder_update_user(uint8_t index, bool clockwise) {
59 if (custom_encoder_mode) {
60 if (clockwise) {
61 encoder_cw.pressed = true;
62 encoder_cw.time = timer_read();
63 action_exec(encoder_cw);
64 }
65 else {
66 encoder_ccw.pressed = true;
67 encoder_ccw.time = timer_read();
68 action_exec(encoder_ccw);
69 }
70 return false;
71 }
72 return true;
73}
74
75void matrix_scan_user(void) {
76 if (encoder_ccw.pressed) {
77 encoder_ccw.pressed = false;
78 encoder_ccw.time = timer_read();
79 action_exec(encoder_ccw);
80 }
81
82 if (encoder_cw.pressed) {
83 encoder_cw.pressed = false;
84 encoder_cw.time = timer_read();
85 action_exec(encoder_cw);
86 }
87}
diff --git a/keyboards/custommk/evo70/keymaps/via/rules.mk b/keyboards/custommk/evo70/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/custommk/evo70/keymaps/via/rules.mk
+++ b/keyboards/custommk/evo70/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/custommk/genesis/rev2/info.json b/keyboards/custommk/genesis/rev2/info.json
index a5358cdee4..e33548f89b 100644
--- a/keyboards/custommk/genesis/rev2/info.json
+++ b/keyboards/custommk/genesis/rev2/info.json
@@ -81,39 +81,6 @@
81 {"matrix": [4, 2], "x": 0, "y": 4, "w": 2}, 81 {"matrix": [4, 2], "x": 0, "y": 4, "w": 2},
82 {"matrix": [4, 3], "x": 2, "y": 4} 82 {"matrix": [4, 3], "x": 2, "y": 4}
83 ] 83 ]
84 },
85 "LAYOUT_via_6x4": {
86 "layout": [
87 {"matrix": [5, 0], "x": 0, "y": 0},
88 {"matrix": [5, 1], "x": 1, "y": 0},
89 {"matrix": [5, 2], "x": 3, "y": 0},
90 {"matrix": [5, 3], "x": 4, "y": 0},
91
92 {"matrix": [0, 0], "x": 0.5, "y": 1.1},
93 {"matrix": [0, 1], "x": 1.5, "y": 1.1},
94 {"matrix": [0, 2], "x": 2.5, "y": 1.1},
95 {"matrix": [0, 3], "x": 3.5, "y": 1.1},
96
97 {"matrix": [1, 0], "x": 0.5, "y": 2.1},
98 {"matrix": [1, 1], "x": 1.5, "y": 2.1},
99 {"matrix": [1, 2], "x": 2.5, "y": 2.1},
100 {"matrix": [1, 3], "x": 3.5, "y": 2.1},
101
102 {"matrix": [2, 0], "x": 0.5, "y": 3.1},
103 {"matrix": [2, 1], "x": 1.5, "y": 3.1},
104 {"matrix": [2, 2], "x": 2.5, "y": 3.1},
105 {"matrix": [2, 3], "x": 3.5, "y": 3.1},
106
107 {"matrix": [3, 0], "x": 0.5, "y": 4.1},
108 {"matrix": [3, 1], "x": 1.5, "y": 4.1},
109 {"matrix": [3, 2], "x": 2.5, "y": 4.1},
110 {"matrix": [3, 3], "x": 3.5, "y": 4.1},
111
112 {"matrix": [4, 0], "x": 0.5, "y": 5.1},
113 {"matrix": [4, 1], "x": 1.5, "y": 5.1},
114 {"matrix": [4, 2], "x": 2.5, "y": 5.1},
115 {"matrix": [4, 3], "x": 3.5, "y": 5.1}
116 ]
117 } 84 }
118 } 85 }
119} 86}
diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c
index 6739b8857d..eedf9b4dcf 100644
--- a/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c
+++ b/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19//#define GENESIS_LAYER_COLORS 19//#define GENESIS_LAYER_COLORS
@@ -24,36 +24,32 @@
24 24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 26
27 [0] = LAYOUT_via_6x4( 27 [0] = LAYOUT_ortho_5x4(
28 KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, 28 MO(1), KC_PSLS, KC_PAST, KC_PMNS,
29 MO(1), KC_PSLS, KC_PAST, KC_PMNS, 29 KC_P7, KC_P8, KC_P9, KC_PGUP,
30 KC_P7, KC_P8, KC_P9, KC_PGUP, 30 KC_P4, KC_P5, KC_P6, KC_PPLS,
31 KC_P4, KC_P5, KC_P6, KC_PPLS, 31 KC_P1, KC_P2, KC_P3, KC_PGDN,
32 KC_P1, KC_P2, KC_P3, KC_PGDN,
33 KC_P0, KC_SPC, KC_PDOT, KC_PENT), 32 KC_P0, KC_SPC, KC_PDOT, KC_PENT),
34 33
35 [1] = LAYOUT_via_6x4( 34 [1] = LAYOUT_ortho_5x4(
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 35 KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS,
37 KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, 36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 37 RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
39 RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, 38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS), 39 RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS),
42 40
43 [2] = LAYOUT_via_6x4( 41 [2] = LAYOUT_ortho_5x4(
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
50 47
51 [3] = LAYOUT_via_6x4( 48 [3] = LAYOUT_ortho_5x4(
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
58 54
59}; 55};
@@ -92,80 +88,11 @@ void keyboard_post_init_user(void) {
92} 88}
93#endif 89#endif
94 90
95 91#ifdef ENCODER_MAP_ENABLE
96keyevent_t encoder_left_ccw = { 92const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
97 .key = (keypos_t){.row = 5, .col = 0}, 93 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
98 .pressed = false, 94 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
99 .type = KEY_EVENT 95 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
100}; 96 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
101
102keyevent_t encoder_left_cw = {
103 .key = (keypos_t){.row = 5, .col = 1},
104 .pressed = false,
105 .type = KEY_EVENT
106};
107
108keyevent_t encoder_right_ccw = {
109 .key = (keypos_t){.row = 5, .col = 2},
110 .pressed = false,
111 .type = KEY_EVENT
112};
113
114keyevent_t encoder_right_cw = {
115 .key = (keypos_t){.row = 5, .col = 3},
116 .pressed = false,
117 .type = KEY_EVENT
118}; 97};
119 98#endif
120void matrix_scan_user(void) {
121 if (encoder_left_ccw.pressed) {
122 encoder_left_ccw.pressed = false;
123 encoder_left_ccw.time = timer_read();
124 action_exec(encoder_left_ccw);
125 }
126
127 if (encoder_left_cw.pressed) {
128 encoder_left_cw.pressed = false;
129 encoder_left_cw.time = timer_read();
130 action_exec(encoder_left_cw);
131 }
132
133 if (encoder_right_ccw.pressed) {
134 encoder_right_ccw.pressed = false;
135 encoder_right_ccw.time = timer_read();
136 action_exec(encoder_right_ccw);
137 }
138
139 if (encoder_right_cw.pressed) {
140 encoder_right_cw.pressed = false;
141 encoder_right_cw.time = timer_read();
142 action_exec(encoder_right_cw);
143 }
144
145}
146
147
148bool encoder_update_user(uint8_t index, bool clockwise) {
149 if (index == 0) {
150 if (clockwise) {
151 encoder_left_cw.pressed = true;
152 encoder_left_cw.time = timer_read();
153 action_exec(encoder_left_cw);
154 } else {
155 encoder_left_ccw.pressed = true;
156 encoder_left_ccw.time = timer_read();
157 action_exec(encoder_left_ccw);
158 }
159 } else {
160 if (clockwise) {
161 encoder_right_cw.pressed = true;
162 encoder_right_cw.time = timer_read();
163 action_exec(encoder_right_cw);
164 } else {
165 encoder_right_ccw.pressed = true;
166 encoder_right_ccw.time = timer_read();
167 action_exec(encoder_right_ccw);
168 }
169 }
170 return false;
171}
diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk b/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk
+++ b/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/dailycraft/owl8/info.json b/keyboards/dailycraft/owl8/info.json
index b1bcacb60b..194bd5bdb6 100644
--- a/keyboards/dailycraft/owl8/info.json
+++ b/keyboards/dailycraft/owl8/info.json
@@ -18,21 +18,16 @@
18 "bootloader": "atmel-dfu", 18 "bootloader": "atmel-dfu",
19 "matrix_pins": { 19 "matrix_pins": {
20 "direct": [ 20 "direct": [
21 ["F4", "F7", "B3", "B6", "F5", "F6", "B1", "B2", "D4", "C6", "D7", "E6", null, null, null, null] 21 ["F4", "F7", "B3", "B6", "F5", "F6", "B1", "B2", "D4", "C6", "D7", "E6"]
22 ] 22 ]
23 }, 23 },
24 "layouts": { 24 "layouts": {
25 "LAYOUT": { 25 "LAYOUT": {
26 "layout": [ 26 "layout": [
27 {"x": 0, "y": 0, "matrix": [0, 12]}, 27 {"x":0, "y":1.25, "matrix": [0, 8]},
28 {"x": 1, "y": 0, "matrix": [0, 13]}, 28 {"x":1, "y":1.25, "matrix": [0, 9]},
29 {"x": 2, "y": 0, "matrix": [0, 14]}, 29 {"x":2, "y":1.25, "matrix": [0, 10]},
30 {"x": 3, "y": 0, "matrix": [0, 15]}, 30 {"x":3, "y":1.25, "matrix": [0, 11]},
31
32 {"x": 0, "y": 1.25, "matrix": [0, 8]},
33 {"x": 1, "y": 1.25, "matrix": [0, 9]},
34 {"x": 2, "y": 1.25, "matrix": [0, 10]},
35 {"x": 3, "y": 1.25, "matrix": [0, 11]},
36 31
37 {"x": 0, "y": 2.5, "matrix": [0, 0]}, 32 {"x": 0, "y": 2.5, "matrix": [0, 0]},
38 {"x": 1, "y": 2.5, "matrix": [0, 1]}, 33 {"x": 1, "y": 2.5, "matrix": [0, 1]},
diff --git a/keyboards/dailycraft/owl8/keymaps/default/keymap.c b/keyboards/dailycraft/owl8/keymaps/default/keymap.c
index e840263639..7ff5519e5a 100644
--- a/keyboards/dailycraft/owl8/keymaps/default/keymap.c
+++ b/keyboards/dailycraft/owl8/keymaps/default/keymap.c
@@ -25,26 +25,22 @@ enum layer_names {
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT(
28 KC_NO, KC_NO, KC_NO, KC_NO, // for encoders
29 KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys 28 KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys
30 MO(1), KC_BSPC, KC_SPC, KC_ENT, 29 MO(1), KC_BSPC, KC_SPC, KC_ENT,
31 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT 30 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
32 ), 31 ),
33 [_FN1] = LAYOUT( 32 [_FN1] = LAYOUT(
34 KC_NO, KC_NO, KC_NO, KC_NO, 33 KC_NO, KC_NO, KC_NO, KC_NO,
35 KC_NO, KC_NO, KC_NO, KC_NO,
36 KC_1, KC_2, KC_3, KC_4, 34 KC_1, KC_2, KC_3, KC_4,
37 KC_5, KC_6, KC_7, KC_8 35 KC_5, KC_6, KC_7, KC_8
38 ), 36 ),
39 [_FN2] = LAYOUT( 37 [_FN2] = LAYOUT(
40 KC_NO, KC_NO, KC_NO, KC_NO, 38 KC_NO, KC_NO, KC_NO, KC_NO,
41 KC_NO, KC_NO, KC_NO, KC_NO,
42 KC_1, KC_2, KC_3, KC_4, 39 KC_1, KC_2, KC_3, KC_4,
43 KC_5, KC_6, KC_7, KC_8 40 KC_5, KC_6, KC_7, KC_8
44 ), 41 ),
45 [_FN3] = LAYOUT( 42 [_FN3] = LAYOUT(
46 KC_NO, KC_NO, KC_NO, KC_NO, 43 KC_NO, KC_NO, KC_NO, KC_NO,
47 KC_NO, KC_NO, KC_NO, KC_NO,
48 KC_1, KC_2, KC_3, KC_4, 44 KC_1, KC_2, KC_3, KC_4,
49 KC_5, KC_6, KC_7, KC_8 45 KC_5, KC_6, KC_7, KC_8
50 ) 46 )
@@ -64,5 +60,5 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
64 tap_code(KC_UP); 60 tap_code(KC_UP);
65 } 61 }
66 } 62 }
67 return true; 63 return false;
68} 64}
diff --git a/keyboards/dailycraft/owl8/keymaps/via/keymap.c b/keyboards/dailycraft/owl8/keymaps/via/keymap.c
index 1a3bb0f0ae..fcce35bf2b 100644
--- a/keyboards/dailycraft/owl8/keymaps/via/keymap.c
+++ b/keyboards/dailycraft/owl8/keymaps/via/keymap.c
@@ -25,103 +25,32 @@ enum layer_names {
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT(
28 KC_NO, KC_NO, KC_NO, KC_NO, // for encoders
29 KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys 28 KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys
30 MO(1), KC_BSPC, KC_SPC, KC_ENT, 29 MO(1), KC_BSPC, KC_SPC, KC_ENT,
31 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT 30 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
32 ), 31 ),
33 [_FN1] = LAYOUT( 32 [_FN1] = LAYOUT(
34 KC_NO, KC_NO, KC_NO, KC_NO, 33 KC_NO, KC_NO, KC_NO, KC_NO,
35 KC_NO, KC_NO, KC_NO, KC_NO,
36 KC_1, KC_2, KC_3, KC_4, 34 KC_1, KC_2, KC_3, KC_4,
37 KC_5, KC_6, KC_7, KC_8 35 KC_5, KC_6, KC_7, KC_8
38 ), 36 ),
39 [_FN2] = LAYOUT( 37 [_FN2] = LAYOUT(
40 KC_NO, KC_NO, KC_NO, KC_NO, 38 KC_NO, KC_NO, KC_NO, KC_NO,
41 KC_NO, KC_NO, KC_NO, KC_NO,
42 KC_1, KC_2, KC_3, KC_4, 39 KC_1, KC_2, KC_3, KC_4,
43 KC_5, KC_6, KC_7, KC_8 40 KC_5, KC_6, KC_7, KC_8
44 ), 41 ),
45 [_FN3] = LAYOUT( 42 [_FN3] = LAYOUT(
46 KC_NO, KC_NO, KC_NO, KC_NO, 43 KC_NO, KC_NO, KC_NO, KC_NO,
47 KC_NO, KC_NO, KC_NO, KC_NO,
48 KC_1, KC_2, KC_3, KC_4, 44 KC_1, KC_2, KC_3, KC_4,
49 KC_5, KC_6, KC_7, KC_8 45 KC_5, KC_6, KC_7, KC_8
50 ) 46 )
51}; 47};
52 48
53keyevent_t encoder1_ccw = { 49#ifdef ENCODER_MAP_ENABLE
54 .key = (keypos_t){.row = 0, .col = 12}, 50const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
55 .pressed = false, 51 [0] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
56 .type = KEY_EVENT 52 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
57}; 53 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
58 54 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
59keyevent_t encoder1_cw = {
60 .key = (keypos_t){.row = 0, .col = 13},
61 .pressed = false,
62 .type = KEY_EVENT
63};
64
65keyevent_t encoder2_ccw = {
66 .key = (keypos_t){.row = 0, .col = 14},
67 .pressed = false,
68 .type = KEY_EVENT
69}; 55};
70 56#endif
71keyevent_t encoder2_cw = {
72 .key = (keypos_t){.row = 0, .col = 15},
73 .pressed = false,
74 .type = KEY_EVENT
75};
76
77void matrix_scan_user(void) {
78 if (encoder1_ccw.pressed) {
79 encoder1_ccw.pressed = false;
80 encoder1_ccw.time = timer_read();
81 action_exec(encoder1_ccw);
82 }
83
84 if (encoder1_cw.pressed) {
85 encoder1_cw.pressed = false;
86 encoder1_cw.time = timer_read();
87 action_exec(encoder1_cw);
88 }
89
90 if (encoder2_ccw.pressed) {
91 encoder2_ccw.pressed = false;
92 encoder2_ccw.time = timer_read();
93 action_exec(encoder2_ccw);
94 }
95
96 if (encoder2_cw.pressed) {
97 encoder2_cw.pressed = false;
98 encoder2_cw.time = timer_read();
99 action_exec(encoder2_cw);
100 }
101}
102
103bool encoder_update_user(uint8_t index, bool clockwise) {
104 if (index == 0) { /* First encoder */
105 if (clockwise) {
106 encoder1_cw.pressed = true;
107 encoder1_cw.time = timer_read();
108 action_exec(encoder1_cw);
109 } else {
110 encoder1_ccw.pressed = true;
111 encoder1_ccw.time = timer_read();
112 action_exec(encoder1_ccw);
113 }
114 } else if (index == 1) {
115 if (clockwise) {
116 encoder2_cw.pressed = true;
117 encoder2_cw.time = timer_read();
118 action_exec(encoder2_cw);
119 } else {
120 encoder2_ccw.pressed = true;
121 encoder2_ccw.time = timer_read();
122 action_exec(encoder2_ccw);
123 }
124 }
125
126 return true;
127}
diff --git a/keyboards/dailycraft/owl8/keymaps/via/rules.mk b/keyboards/dailycraft/owl8/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/dailycraft/owl8/keymaps/via/rules.mk
+++ b/keyboards/dailycraft/owl8/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/dailycraft/stickey4/info.json b/keyboards/dailycraft/stickey4/info.json
index c8d5803718..156a6d63a1 100644
--- a/keyboards/dailycraft/stickey4/info.json
+++ b/keyboards/dailycraft/stickey4/info.json
@@ -18,7 +18,7 @@
18 "bootloader": "atmel-dfu", 18 "bootloader": "atmel-dfu",
19 "matrix_pins": { 19 "matrix_pins": {
20 "direct": [ 20 "direct": [
21 ["D4", "C6", "D7", "E6", null, null, null, null] 21 ["D4", "C6", "D7", "E6"]
22 ] 22 ]
23 }, 23 },
24 "layouts": { 24 "layouts": {
@@ -27,12 +27,7 @@
27 {"x": 0, "y": 0, "matrix": [0, 0]}, 27 {"x": 0, "y": 0, "matrix": [0, 0]},
28 {"x": 1, "y": 0, "matrix": [0, 1]}, 28 {"x": 1, "y": 0, "matrix": [0, 1]},
29 {"x": 2, "y": 0, "matrix": [0, 2]}, 29 {"x": 2, "y": 0, "matrix": [0, 2]},
30 {"x": 3, "y": 0, "matrix": [0, 3]}, 30 {"x": 3, "y": 0, "matrix": [0, 3]}
31
32 {"label": "Encoder 1 CCW", "x": 0, "y": 1, "matrix": [0, 4]},
33 {"label": "Encoder 1 CW", "x": 1, "y": 1, "matrix": [0, 5]},
34 {"label": "Encoder 2 CCW", "x": 2, "y": 1, "matrix": [0, 6]},
35 {"label": "Encoder 2 CW", "x": 3, "y": 1, "matrix": [0, 7]}
36 ] 31 ]
37 } 32 }
38 } 33 }
diff --git a/keyboards/dailycraft/stickey4/keymaps/default/keymap.c b/keyboards/dailycraft/stickey4/keymaps/default/keymap.c
index 70de5dca44..40cfc22a0f 100644
--- a/keyboards/dailycraft/stickey4/keymaps/default/keymap.c
+++ b/keyboards/dailycraft/stickey4/keymaps/default/keymap.c
@@ -25,19 +25,6 @@ enum layer_names {
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT(
28 KC_A, KC_B, KC_C, KC_D, 28 KC_A, KC_B, KC_C, KC_D
29 KC_NO, KC_NO, KC_NO, KC_NO // for encoders
30 ),
31 [_FN1] = LAYOUT(
32 KC_NO, KC_NO, KC_NO, KC_NO,
33 KC_NO, KC_NO, KC_NO, KC_NO
34 ),
35 [_FN2] = LAYOUT(
36 KC_NO, KC_NO, KC_NO, KC_NO,
37 KC_NO, KC_NO, KC_NO, KC_NO
38 ),
39 [_FN3] = LAYOUT(
40 KC_NO, KC_NO, KC_NO, KC_NO,
41 KC_NO, KC_NO, KC_NO, KC_NO
42 ) 29 )
43}; 30};
diff --git a/keyboards/dailycraft/stickey4/keymaps/via/keymap.c b/keyboards/dailycraft/stickey4/keymaps/via/keymap.c
index 30de32fa60..d0c681a0d1 100644
--- a/keyboards/dailycraft/stickey4/keymaps/via/keymap.c
+++ b/keyboards/dailycraft/stickey4/keymaps/via/keymap.c
@@ -25,95 +25,24 @@ enum layer_names {
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT(
28 KC_A, KC_B, KC_C, KC_D, 28 KC_A, KC_B, KC_C, KC_D
29 KC_NO, KC_NO, KC_NO, KC_NO // for encoders
30 ), 29 ),
31 [_FN1] = LAYOUT( 30 [_FN1] = LAYOUT(
32 KC_NO, KC_NO, KC_NO, KC_NO,
33 KC_NO, KC_NO, KC_NO, KC_NO 31 KC_NO, KC_NO, KC_NO, KC_NO
34 ), 32 ),
35 [_FN2] = LAYOUT( 33 [_FN2] = LAYOUT(
36 KC_NO, KC_NO, KC_NO, KC_NO,
37 KC_NO, KC_NO, KC_NO, KC_NO 34 KC_NO, KC_NO, KC_NO, KC_NO
38 ), 35 ),
39 [_FN3] = LAYOUT( 36 [_FN3] = LAYOUT(
40 KC_NO, KC_NO, KC_NO, KC_NO,
41 KC_NO, KC_NO, KC_NO, KC_NO 37 KC_NO, KC_NO, KC_NO, KC_NO
42 ) 38 )
43}; 39};
44 40
45keyevent_t encoder1_ccw = { 41#ifdef ENCODER_MAP_ENABLE
46 .key = (keypos_t){.row = 0, .col = 4}, 42const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
47 .pressed = false, 43 [0] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
48 .type = KEY_EVENT 44 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
45 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
46 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
49}; 47};
50 48#endif
51keyevent_t encoder1_cw = {
52 .key = (keypos_t){.row = 0, .col = 5},
53 .pressed = false,
54 .type = KEY_EVENT
55};
56
57keyevent_t encoder2_ccw = {
58 .key = (keypos_t){.row = 0, .col = 6},
59 .pressed = false,
60 .type = KEY_EVENT
61};
62
63keyevent_t encoder2_cw = {
64 .key = (keypos_t){.row = 0, .col = 7},
65 .pressed = false,
66 .type = KEY_EVENT
67};
68
69void matrix_scan_user(void) {
70 if (encoder1_ccw.pressed) {
71 encoder1_ccw.pressed = false;
72 encoder1_ccw.time = timer_read();
73 action_exec(encoder1_ccw);
74 }
75
76 if (encoder1_cw.pressed) {
77 encoder1_cw.pressed = false;
78 encoder1_cw.time = timer_read();
79 action_exec(encoder1_cw);
80 }
81
82 if (encoder2_ccw.pressed) {
83 encoder2_ccw.pressed = false;
84 encoder2_ccw.time = timer_read();
85 action_exec(encoder2_ccw);
86 }
87
88 if (encoder2_cw.pressed) {
89 encoder2_cw.pressed = false;
90 encoder2_cw.time = timer_read();
91 action_exec(encoder2_cw);
92 }
93}
94
95bool encoder_update_user(uint8_t index, bool clockwise) {
96 if (index == 0) { /* First encoder */
97 if (clockwise) {
98 encoder1_cw.pressed = true;
99 encoder1_cw.time = timer_read();
100 action_exec(encoder1_cw);
101 } else {
102 encoder1_ccw.pressed = true;
103 encoder1_ccw.time = timer_read();
104 action_exec(encoder1_ccw);
105 }
106 } else if (index == 1) {
107 if (clockwise) {
108 encoder2_cw.pressed = true;
109 encoder2_cw.time = timer_read();
110 action_exec(encoder2_cw);
111 } else {
112 encoder2_ccw.pressed = true;
113 encoder2_ccw.time = timer_read();
114 action_exec(encoder2_ccw);
115 }
116 }
117
118 return true;
119}
diff --git a/keyboards/dailycraft/stickey4/keymaps/via/rules.mk b/keyboards/dailycraft/stickey4/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/dailycraft/stickey4/keymaps/via/rules.mk
+++ b/keyboards/dailycraft/stickey4/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/dailycraft/wings42/rev2/info.json b/keyboards/dailycraft/wings42/rev2/info.json
index 09cf423e93..261157627a 100644
--- a/keyboards/dailycraft/wings42/rev2/info.json
+++ b/keyboards/dailycraft/wings42/rev2/info.json
@@ -16,6 +16,15 @@
16 "split": { 16 "split": {
17 "soft_serial_pin": "D2" 17 "soft_serial_pin": "D2"
18 }, 18 },
19 "features": {
20 "encoder": true
21 },
22 "encoder": {
23 "rotary": [
24 { "pin_a": "B5", "pin_b": "B4" },
25 { "pin_a": "B6", "pin_b": "B2" }
26 ]
27 },
19 "processor": "atmega32u4", 28 "processor": "atmega32u4",
20 "bootloader": "caterina", 29 "bootloader": "caterina",
21 "layouts": { 30 "layouts": {
@@ -41,9 +50,7 @@
41 {"matrix": [1, 3], "x": 3, "y": 1}, 50 {"matrix": [1, 3], "x": 3, "y": 1},
42 {"matrix": [1, 4], "x": 4, "y": 1}, 51 {"matrix": [1, 4], "x": 4, "y": 1},
43 {"matrix": [1, 5], "x": 5, "y": 1.125}, 52 {"matrix": [1, 5], "x": 5, "y": 1.125},
44 {"matrix": [3, 1], "x": 6, "y": 1.625},
45 53
46 {"matrix": [8, 2], "x": 8, "y": 1.625},
47 {"matrix": [6, 5], "x": 9, "y": 1.125}, 54 {"matrix": [6, 5], "x": 9, "y": 1.125},
48 {"matrix": [6, 4], "x": 10, "y": 1}, 55 {"matrix": [6, 4], "x": 10, "y": 1},
49 {"matrix": [6, 3], "x": 11, "y": 1}, 56 {"matrix": [6, 3], "x": 11, "y": 1},
@@ -57,9 +64,7 @@
57 {"matrix": [2, 3], "x": 3, "y": 2}, 64 {"matrix": [2, 3], "x": 3, "y": 2},
58 {"matrix": [2, 4], "x": 4, "y": 2}, 65 {"matrix": [2, 4], "x": 4, "y": 2},
59 {"matrix": [2, 5], "x": 5, "y": 2.125}, 66 {"matrix": [2, 5], "x": 5, "y": 2.125},
60 {"matrix": [3, 2], "x": 6, "y": 2.625},
61 67
62 {"matrix": [8, 1], "x": 8, "y": 2.625},
63 {"matrix": [7, 5], "x": 9, "y": 2.125}, 68 {"matrix": [7, 5], "x": 9, "y": 2.125},
64 {"matrix": [7, 4], "x": 10, "y": 2}, 69 {"matrix": [7, 4], "x": 10, "y": 2},
65 {"matrix": [7, 3], "x": 11, "y": 2}, 70 {"matrix": [7, 3], "x": 11, "y": 2},
diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c b/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c
index 501b5d2e12..d809d59f4c 100644
--- a/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c
+++ b/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c
@@ -35,9 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------. 35 //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------.
36 KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, 36 KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS,
37 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| 37 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------|
38 KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_BSPC, KC_BSPC, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS, 38 KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS,
39 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| 39 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------|
40 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_DEL , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL, 40 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL,
41 //`--------+--------+--------+--------+--------+--------/ \--------+---------+--------+---------+--------+--------' 41 //`--------+--------+--------+--------+--------+--------/ \--------+---------+--------+---------+--------+--------'
42 KC_A_DEL,KC_S_EN ,KC_L_SPC, KC_R_ENT, KC_S_JA , KC_A_DEL 42 KC_A_DEL,KC_S_EN ,KC_L_SPC, KC_R_ENT, KC_S_JA , KC_A_DEL
43 // `+--------+--------+--------' `--------+---------+--------+' 43 // `+--------+--------+--------' `--------+---------+--------+'
@@ -47,9 +47,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. 47 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
48 _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, 48 _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
49 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 49 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
50 KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, 50 KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN,
51 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 51 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
52 _______, _______, _______, _______, KC_LCBR, KC_LBRC, _______, _______, KC_RBRC, KC_RCBR, _______, _______, _______, _______, 52 _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______,
53 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' 53 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------'
54 _______, _______, _______, _______, _______, QK_BOOT 54 _______, _______, _______, _______, _______, QK_BOOT
55 // `+--------+--------+--------' `--------+-------+--------+' 55 // `+--------+--------+--------' `--------+-------+--------+'
@@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. 59 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
60 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, 60 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
61 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 61 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
62 _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, 62 _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
63 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 63 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
64 KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, 64 KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______,
65 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' 65 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------'
66 QK_BOOT , _______, _______, _______, _______, _______ 66 QK_BOOT , _______, _______, _______, _______, _______
67 // `+--------+--------+--------' `--------+--------+--------+' 67 // `+--------+--------+--------' `--------+--------+--------+'
@@ -71,9 +71,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. 71 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
73 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 73 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
75 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 75 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
77 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' 77 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------'
78 _______, _______, _______, _______, _______, _______ 78 _______, _______, _______, _______, _______, _______
79 // `+--------+--------+--------' `--------+--------+--------+' 79 // `+--------+--------+--------' `--------+--------+--------+'
diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c b/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c
index 7349bf2411..b52b054881 100644
--- a/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c
+++ b/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c
@@ -35,9 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------. 35 //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------.
36 KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, 36 KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS,
37 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| 37 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------|
38 KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_BSPC, KC_BSPC, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS, 38 KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS,
39 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| 39 //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------|
40 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_DEL , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL, 40 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL,
41 //`--------+--------+--------+--------+--------+--------/ \--------+---------+--------+---------+--------+--------' 41 //`--------+--------+--------+--------+--------+--------/ \--------+---------+--------+---------+--------+--------'
42 KC_A_DEL,KC_S_EN ,KC_L_SPC, KC_R_ENT, KC_S_JA , KC_A_DEL 42 KC_A_DEL,KC_S_EN ,KC_L_SPC, KC_R_ENT, KC_S_JA , KC_A_DEL
43 // `+--------+--------+--------' `--------+---------+--------+' 43 // `+--------+--------+--------' `--------+---------+--------+'
@@ -47,9 +47,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. 47 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
48 _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, 48 _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
49 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 49 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
50 KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, 50 KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN,
51 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 51 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
52 _______, _______, _______, _______, KC_LCBR, KC_LBRC, _______, _______, KC_RBRC, KC_RCBR, _______, _______, _______, _______, 52 _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______,
53 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' 53 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------'
54 _______, _______, _______, _______, _______, QK_BOOT 54 _______, _______, _______, _______, _______, QK_BOOT
55 // `+--------+--------+--------' `--------+-------+--------+' 55 // `+--------+--------+--------' `--------+-------+--------+'
@@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. 59 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
60 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, 60 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
61 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 61 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
62 _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, 62 _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
63 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 63 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
64 KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, 64 KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______,
65 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' 65 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------'
66 QK_BOOT , _______, _______, _______, _______, _______ 66 QK_BOOT , _______, _______, _______, _______, _______
67 // `+--------+--------+--------' `--------+--------+--------+' 67 // `+--------+--------+--------' `--------+--------+--------+'
@@ -71,156 +71,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. 71 //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
73 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 73 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
75 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 75 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
77 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' 77 //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------'
78 _______, _______, _______, _______, _______, _______ 78 _______, _______, _______, _______, _______, _______
79 // `+--------+--------+--------' `--------+--------+--------+' 79 // `+--------+--------+--------' `--------+--------+--------+'
80 ), 80 ),
81}; 81};
82 82
83keyevent_t encoder1_ccw = { 83#ifdef ENCODER_MAP_ENABLE
84 .key = (keypos_t){.row = 4, .col = 0}, 84const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
85 .pressed = false, 85 [0] = { ENCODER_CCW_CW(KC_BSPC, KC_DEL), ENCODER_CCW_CW(KC_BSPC, KC_DEL) },
86 .type = KEY_EVENT 86 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
87}; 87 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
88 88 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
89keyevent_t encoder1_cw = {
90 .key = (keypos_t){.row = 4, .col = 1},
91 .pressed = false,
92 .type = KEY_EVENT
93};
94
95keyevent_t encoder2_ccw = {
96 .key = (keypos_t){.row = 4, .col = 2},
97 .pressed = false,
98 .type = KEY_EVENT
99};
100
101keyevent_t encoder2_cw = {
102 .key = (keypos_t){.row = 4, .col = 3},
103 .pressed = false,
104 .type = KEY_EVENT
105};
106
107keyevent_t encoder3_ccw = {
108 .key = (keypos_t){.row = 9, .col = 1},
109 .pressed = false,
110 .type = KEY_EVENT
111};
112
113keyevent_t encoder3_cw = {
114 .key = (keypos_t){.row = 9, .col = 0},
115 .pressed = false,
116 .type = KEY_EVENT
117};
118
119keyevent_t encoder4_ccw = {
120 .key = (keypos_t){.row = 9, .col = 3},
121 .pressed = false,
122 .type = KEY_EVENT
123}; 89};
124 90#endif
125keyevent_t encoder4_cw = {
126 .key = (keypos_t){.row = 9, .col = 2},
127 .pressed = false,
128 .type = KEY_EVENT
129};
130
131
132void matrix_scan_user(void) {
133 if (encoder1_ccw.pressed) {
134 encoder1_ccw.pressed = false;
135 encoder1_ccw.time = timer_read();
136 action_exec(encoder1_ccw);
137 }
138
139 if (encoder1_cw.pressed) {
140 encoder1_cw.pressed = false;
141 encoder1_cw.time = timer_read();
142 action_exec(encoder1_cw);
143 }
144
145 if (encoder2_ccw.pressed) {
146 encoder2_ccw.pressed = false;
147 encoder2_ccw.time = timer_read();
148 action_exec(encoder2_ccw);
149 }
150
151 if (encoder2_cw.pressed) {
152 encoder2_cw.pressed = false;
153 encoder2_cw.time = timer_read();
154 action_exec(encoder2_cw);
155 }
156
157 if (encoder3_ccw.pressed) {
158 encoder3_ccw.pressed = false;
159 encoder3_ccw.time = timer_read();
160 action_exec(encoder3_ccw);
161 }
162
163 if (encoder3_cw.pressed) {
164 encoder3_cw.pressed = false;
165 encoder3_cw.time = timer_read();
166 action_exec(encoder3_cw);
167 }
168
169 if (encoder4_ccw.pressed) {
170 encoder4_ccw.pressed = false;
171 encoder4_ccw.time = timer_read();
172 action_exec(encoder4_ccw);
173 }
174
175 if (encoder4_cw.pressed) {
176 encoder4_cw.pressed = false;
177 encoder4_cw.time = timer_read();
178 action_exec(encoder4_cw);
179 }
180}
181
182bool encoder_update_user(uint8_t index, bool clockwise) {
183 if (index == 0) {
184 if (clockwise) {
185 encoder1_cw.pressed = true;
186 encoder1_cw.time = timer_read();
187 action_exec(encoder1_cw);
188 } else {
189 encoder1_ccw.pressed = true;
190 encoder1_ccw.time = timer_read();
191 action_exec(encoder1_ccw);
192 }
193 } else if (index == 1) {
194 if (clockwise) {
195 encoder2_cw.pressed = true;
196 encoder2_cw.time = timer_read();
197 action_exec(encoder2_cw);
198 } else {
199 encoder2_ccw.pressed = true;
200 encoder2_ccw.time = timer_read();
201 action_exec(encoder2_ccw);
202 }
203 } else if (index == 2) {
204 if (clockwise) {
205 encoder3_cw.pressed = true;
206 encoder3_cw.time = timer_read();
207 action_exec(encoder3_cw);
208 } else {
209 encoder3_ccw.pressed = true;
210 encoder3_ccw.time = timer_read();
211 action_exec(encoder3_ccw);
212 }
213 } else if (index == 3) {
214 if (clockwise) {
215 encoder4_cw.pressed = true;
216 encoder4_cw.time = timer_read();
217 action_exec(encoder4_cw);
218 } else {
219 encoder4_ccw.pressed = true;
220 encoder4_ccw.time = timer_read();
221 action_exec(encoder4_ccw);
222 }
223 }
224
225 return true;
226}
diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk b/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk
index eea5e1e2a2..f1adcab005 100644
--- a/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk
+++ b/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk
@@ -1,2 +1,2 @@
1ENCODER_ENABLE = yes
2VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/gl516/n51gl/info.json b/keyboards/gl516/n51gl/info.json
index c6fa2a1cf6..180a2b4c75 100644
--- a/keyboards/gl516/n51gl/info.json
+++ b/keyboards/gl516/n51gl/info.json
@@ -86,64 +86,6 @@
86 {"matrix": [7, 5], "x": 14.75, "y": 3}, 86 {"matrix": [7, 5], "x": 14.75, "y": 3},
87 {"matrix": [7, 6], "x": 15.75, "y": 3} 87 {"matrix": [7, 6], "x": 15.75, "y": 3}
88 ] 88 ]
89 },
90 "LAYOUT_rotary_layer": {
91 "layout": [
92 {"matrix": [0, 0], "x": 0, "y": 0},
93 {"matrix": [0, 1], "x": 1, "y": 0},
94 {"matrix": [0, 2], "x": 2, "y": 0},
95 {"matrix": [0, 3], "x": 3, "y": 0},
96 {"matrix": [0, 4], "x": 4, "y": 0},
97 {"matrix": [0, 5], "x": 5, "y": 0},
98 {"matrix": [0, 6], "x": 6, "y": 0},
99 {"matrix": [4, 0], "x": 7, "y": 0},
100 {"matrix": [4, 1], "x": 8, "y": 0},
101 {"matrix": [4, 2], "x": 9, "y": 0},
102 {"matrix": [4, 3], "x": 10, "y": 0},
103 {"matrix": [4, 4], "x": 11, "y": 0},
104 {"matrix": [4, 5], "x": 12, "y": 0},
105 {"matrix": [4, 6], "x": 13, "y": 0},
106 {"matrix": [1, 1], "x": 14, "y": 0},
107 {"matrix": [1, 2], "x": 15, "y": 0},
108 {"matrix": [1, 3], "x": 16, "y": 0},
109 {"matrix": [1, 4], "x": 17, "y": 0},
110 {"matrix": [1, 5], "x": 18, "y": 0},
111 {"matrix": [1, 6], "x": 19, "y": 0},
112 {"matrix": [1, 0], "x": 20, "y": 0},
113 {"matrix": [5, 0], "x": 21, "y": 0},
114 {"matrix": [5, 1], "x": 22, "y": 0},
115 {"matrix": [5, 2], "x": 23, "y": 0},
116 {"matrix": [5, 3], "x": 24, "y": 0},
117 {"matrix": [5, 4], "x": 25, "y": 0},
118 {"matrix": [5, 5], "x": 26, "y": 0},
119 {"matrix": [5, 6], "x": 27, "y": 0},
120 {"matrix": [2, 1], "x": 28, "y": 0},
121 {"matrix": [2, 2], "x": 29, "y": 0},
122 {"matrix": [2, 3], "x": 30, "y": 0},
123 {"matrix": [2, 4], "x": 31, "y": 0},
124 {"matrix": [2, 5], "x": 32, "y": 0},
125 {"matrix": [2, 6], "x": 33, "y": 0},
126 {"matrix": [2, 0], "x": 34, "y": 0},
127 {"matrix": [6, 0], "x": 35, "y": 0},
128 {"matrix": [6, 1], "x": 36, "y": 0},
129 {"matrix": [6, 2], "x": 37, "y": 0},
130 {"matrix": [6, 3], "x": 38, "y": 0},
131 {"matrix": [6, 4], "x": 39, "y": 0},
132 {"matrix": [6, 5], "x": 40, "y": 0},
133 {"matrix": [6, 6], "x": 41, "y": 0},
134 {"matrix": [3, 1], "x": 42, "y": 0},
135 {"matrix": [3, 2], "x": 43, "y": 0},
136 {"matrix": [3, 4], "x": 44, "y": 0},
137 {"matrix": [3, 5], "x": 45, "y": 0},
138 {"matrix": [3, 6], "x": 46, "y": 0},
139 {"matrix": [3, 0], "x": 47, "y": 0},
140 {"matrix": [7, 0], "x": 48, "y": 0},
141 {"matrix": [7, 1], "x": 49, "y": 0},
142 {"matrix": [7, 2], "x": 50, "y": 0},
143 {"matrix": [7, 4], "x": 51, "y": 0},
144 {"matrix": [7, 5], "x": 52, "y": 0},
145 {"matrix": [7, 6], "x": 53, "y": 0}
146 ]
147 } 89 }
148 } 90 }
149} 91}
diff --git a/keyboards/gl516/n51gl/keymaps/salicylic/config.h b/keyboards/gl516/n51gl/keymaps/salicylic/config.h
deleted file mode 100644
index 0e221d844d..0000000000
--- a/keyboards/gl516/n51gl/keymaps/salicylic/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
1/* Copyright 2021 Salicylic_acid3
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define QUICK_TAP_TERM 0
22#define TAPPING_TERM 180
diff --git a/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c b/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c
deleted file mode 100644
index 81f7b8665f..0000000000
--- a/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
1/*
2Copyright 2021 Salicylic_Acid
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include QMK_KEYBOARD_H
19#include "keymap_japanese.h"
20
21
22// Each layer gets a name for readability, which is then used in the keymap matrix below.
23// The underscores don't mean anything - you can have a layer called STUFF or any other name.
24// Layer names don't all need to be of the same length, obviously, and you can also skip them
25// entirely and just use numbers.
26enum layer_number {
27 _QWERTY = 0,
28 _LOWER,
29 _RAISE,
30 _ADJUST,
31};
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 [_QWERTY] = LAYOUT_rotary_layer(
35 //,--------------------------------------------------------------| |--------------------------------------------------------------.
36 KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC,
37 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
38 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_VOLU, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_BSLS, KC_ENT,
39 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, JP_SLSH, KC_UP, KC_RSFT,
41 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
42 JP_ZKHK, KC_LALT,LGUI_T(JP_MHEN),LT(_LOWER,KC_ENT),KC_BSPC, KC_VOLD, KC_DEL,LT(_RAISE,KC_SPC),ALT_T(JP_HENK),KC_LEFT, KC_DOWN, KC_RGHT
43 //|--------------------------------------------------------------| |--------------------------------------------------------------'
44 ),
45 [_LOWER] = LAYOUT_rotary_layer(
46 //,--------------------------------------------------------------| |--------------------------------------------------------------.
47 _______, _______, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, KC_BSPC,
48 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
49 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, KC_WH_U, XXXXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, _______,
50 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
51 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_BTN3, KC_0, KC_1, KC_2, KC_3, JP_PLUS, _______, _______,
52 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
53 _______, _______, JP_MHEN, MO(_LOWER), _______, KC_WH_D, _______, MO(_RAISE), JP_DOT, _______, _______, _______
54 //|--------------------------------------------------------------| |--------------------------------------------------------------'
55 ),
56
57 [_RAISE] = LAYOUT_rotary_layer(
58 //,--------------------------------------------------------------| |--------------------------------------------------------------.
59 _______, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP,LALT(KC_PSCR),KC_PSCR,
60 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
61 LCTL_T(KC_F11), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_WH_L, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, _______,
62 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
63 KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, _______, _______,
64 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
65 _______, _______, _______, _______, _______, KC_WH_R, _______, _______, JP_HENK, _______, _______, _______
66 //|--------------------------------------------------------------| |--------------------------------------------------------------'
67 ),
68
69 [_ADJUST] = LAYOUT_rotary_layer(
70 //,--------------------------------------------------------------| |--------------------------------------------------------------.
71 QK_BOOT, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,LALT(KC_PSCR),KC_PSCR,
72 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
73 KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_TOG, RGB_MOD, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, _______,
74 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
75 SFT_T(KC_F12), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, XXXXXXX, _______, _______,
76 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
77 _______, _______, _______, _______, _______,RGB_RMOD, _______, _______, _______, _______, _______, _______
78 //|--------------------------------------------------------------| |--------------------------------------------------------------'
79 )
80};
81
82//A description for expressing the layer position in LED mode.
83layer_state_t layer_state_set_user(layer_state_t state) {
84 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
85#ifdef RGBLIGHT_ENABLE
86 switch (get_highest_layer(state)) {
87 case _LOWER:
88 rgblight_sethsv_at(HSV_BLUE, 0);
89 break;
90 case _RAISE:
91 rgblight_sethsv_at(HSV_RED, 0);
92 break;
93 case _ADJUST:
94 rgblight_sethsv_at(HSV_PURPLE, 0);
95 break;
96 default: // for any other layers, or the default layer
97 rgblight_sethsv_at( 0, 0, 0, 0);
98 break;
99 }
100 rgblight_set_effect_range( 1, 14);
101#endif
102return state;
103}
104
105bool encoder_update_user(uint8_t index, bool clockwise) {
106 keypos_t key;
107 if (clockwise) {
108 key.row = 3;
109 key.col = 0;
110 } else {
111 key.row = 1;
112 key.col = 0;
113 }
114 action_exec(MAKE_KEYEVENT(key.row, key.col, true));
115 action_exec(MAKE_KEYEVENT(key.row, key.col, false));
116 return true;
117}
diff --git a/keyboards/gl516/n51gl/keymaps/via/keymap.c b/keyboards/gl516/n51gl/keymaps/via/keymap.c
index cf1aa7d595..2732324792 100644
--- a/keyboards/gl516/n51gl/keymaps/via/keymap.c
+++ b/keyboards/gl516/n51gl/keymaps/via/keymap.c
@@ -18,48 +18,48 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#include QMK_KEYBOARD_H 18#include QMK_KEYBOARD_H
19 19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_rotary_layer( 21 [0] = LAYOUT(
22 //,--------------------------------------------------------------| |--------------------------------------------------------------. 22 //,--------------------------------------------------------------| |--------------------------------------------------------------.
23 KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, 23 KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC,
24 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 24 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
25 LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_VOLU, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 25 LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
26 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 26 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
27 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, 27 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT,
28 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 28 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
29 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_VOLD, KC_SPC, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT 29 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT
30 //|--------------------------------------------------------------| |--------------------------------------------------------------' 30 //|--------------------------------------------------------------| |--------------------------------------------------------------'
31 ), 31 ),
32 [1] = LAYOUT_rotary_layer( 32 [1] = LAYOUT(
33 //,--------------------------------------------------------------| |--------------------------------------------------------------. 33 //,--------------------------------------------------------------| |--------------------------------------------------------------.
34 _______, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 34 _______, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
35 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 35 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
36 _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, 36 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______,
37 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 37 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 39 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
41 //|--------------------------------------------------------------| |--------------------------------------------------------------' 41 //|--------------------------------------------------------------| |--------------------------------------------------------------'
42 ), 42 ),
43 [2] = LAYOUT_rotary_layer( 43 [2] = LAYOUT(
44 //,--------------------------------------------------------------| |--------------------------------------------------------------. 44 //,--------------------------------------------------------------| |--------------------------------------------------------------.
45 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 45 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
46 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 46 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
47 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 47 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
48 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 48 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
49 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 49 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
50 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 50 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
51 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 51 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
52 //|--------------------------------------------------------------| |--------------------------------------------------------------' 52 //|--------------------------------------------------------------| |--------------------------------------------------------------'
53 ), 53 ),
54 [3] = LAYOUT_rotary_layer( 54 [3] = LAYOUT(
55 //,--------------------------------------------------------------| |--------------------------------------------------------------. 55 //,--------------------------------------------------------------| |--------------------------------------------------------------.
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
57 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 57 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
58 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 58 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
59 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 59 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
60 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 60 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
61 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 61 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
62 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 62 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
63 //|--------------------------------------------------------------| |--------------------------------------------------------------' 63 //|--------------------------------------------------------------| |--------------------------------------------------------------'
64 ) 64 )
65}; 65};
@@ -87,16 +87,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
87return state; 87return state;
88} 88}
89 89
90bool encoder_update_user(uint8_t index, bool clockwise) { 90#ifdef ENCODER_MAP_ENABLE
91 keypos_t key; 91const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
92 if (clockwise) { 92 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
93 key.row = 3; 93 [1] = { ENCODER_CCW_CW(_______, _______) },
94 key.col = 0; 94 [2] = { ENCODER_CCW_CW(_______, _______) },
95 } else { 95 [3] = { ENCODER_CCW_CW(_______, _______) },
96 key.row = 1; 96};
97 key.col = 0; 97#endif
98 }
99 action_exec(MAKE_KEYEVENT(key.row, key.col, true));
100 action_exec(MAKE_KEYEVENT(key.row, key.col, false));
101 return true;
102}
diff --git a/keyboards/gl516/n51gl/keymaps/via/rules.mk b/keyboards/gl516/n51gl/keymaps/via/rules.mk
index 036bd6d1c3..f1adcab005 100644
--- a/keyboards/gl516/n51gl/keymaps/via/rules.mk
+++ b/keyboards/gl516/n51gl/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes \ No newline at end of file 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/jones/v1/info.json b/keyboards/jones/v1/info.json
index 2a093d2496..a2b94543c3 100644
--- a/keyboards/jones/v1/info.json
+++ b/keyboards/jones/v1/info.json
@@ -107,13 +107,7 @@
107 {"label": "k93", "matrix": [9, 3], "x": 11, "y": 4, "w": 1.25}, 107 {"label": "k93", "matrix": [9, 3], "x": 11, "y": 4, "w": 1.25},
108 {"label": "k47", "matrix": [4, 7], "x": 12.25, "y": 4, "w": 1.25}, 108 {"label": "k47", "matrix": [4, 7], "x": 12.25, "y": 4, "w": 1.25},
109 {"label": "k91", "matrix": [9, 1], "x": 13.5, "y": 4}, 109 {"label": "k91", "matrix": [9, 1], "x": 13.5, "y": 4},
110 {"label": "k41", "matrix": [4, 1], "x": 14.5, "y": 4}, 110 {"label": "k41", "matrix": [4, 1], "x": 14.5, "y": 4}
111
112 {"label": "k85", "matrix": [8, 5], "x": 0, "y": 5},
113 {"label": "k86", "matrix": [8, 6], "x": 1, "y": 5},
114
115 {"label": "k95", "matrix": [9, 5], "x": 14, "y": 5},
116 {"label": "k96", "matrix": [9, 6], "x": 15, "y": 5}
117 ] 111 ]
118 } 112 }
119 } 113 }
diff --git a/keyboards/jones/v1/keymaps/default/keymap.c b/keyboards/jones/v1/keymaps/default/keymap.c
index 04da840a77..752c06f815 100644
--- a/keyboards/jones/v1/keymaps/default/keymap.c
+++ b/keyboards/jones/v1/keymaps/default/keymap.c
@@ -34,31 +34,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 34 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
35 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_SCLN, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, 35 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_SCLN, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
36 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, 36 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH,
37 KC_MUTE, KC_LNG2, KC_LGUI, KC_LALT, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,KC_RALT, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, 37 KC_MUTE, KC_LNG2, KC_LGUI, KC_LALT, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,KC_RALT, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
38 KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU
39 ), 38 ),
40 [_LOWER] = LAYOUT( 39 [_LOWER] = LAYOUT(
41 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 40 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
42 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS, 41 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS,
43 _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, 42 _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
44 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_TILD, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, 43 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_TILD, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
45 _______, _______, _______, _______, _______, _______, _______, SP_ADJ,_______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, SP_ADJ,_______, _______, _______, _______, _______
46 _______, _______, _______, _______
47 ), 45 ),
48 [_RAISE] = LAYOUT( 46 [_RAISE] = LAYOUT(
49 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 47 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
50 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, 48 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
51 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT, 49 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT,
52 _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F11, KC_F12, 50 _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F11, KC_F12,
53 _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP, 51 _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP
54 _______, _______, _______, _______
55 ), 52 ),
56 [_ADJUST] = LAYOUT( 53 [_ADJUST] = LAYOUT(
57 _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, 54 _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS,
58 _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_RMOD, _______, 55 _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_RMOD, _______,
59 _______, AU_TOGG, CK_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_MOD, _______, 56 _______, AU_TOGG, CK_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_MOD, _______,
60 KC_CAPS, KC_CAPS, CK_RST, CK_DOWN, CK_UP, AU_PREV, AU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, 57 KC_CAPS, KC_CAPS, CK_RST, CK_DOWN, CK_UP, AU_PREV, AU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, 58 _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______
62 _______, _______, _______, _______
63 ) 59 )
64}; 60};
diff --git a/keyboards/jones/v1/keymaps/via/config.h b/keyboards/jones/v1/keymaps/via/config.h
deleted file mode 100644
index a66ab80904..0000000000
--- a/keyboards/jones/v1/keymaps/via/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/*
2Copyright 2021 Takeshi Nishio
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20//------------------------------------------------------------------------------
21// Rotary Encoder
22//------------------------------------------------------------------------------
23// Encoder triggers specific key matrix position,
24// when turn knob clockwise or counterclockwise.
25// This is handy to assign key codes by VIA.
26
27// Mappings of encoder rotation to key position in key matrix.
28// First encoder, Left side : k85, k86
29// Second encoder, Right side : k95, k96
30#define ENCODERS_CW_KEY { { 6, 8 }, { 6, 9 } }
31#define ENCODERS_CCW_KEY { { 5, 8 }, { 5, 9 } }
diff --git a/keyboards/jones/v1/keymaps/via/keymap.c b/keyboards/jones/v1/keymaps/via/keymap.c
index 3b41c40174..805d887b1d 100644
--- a/keyboards/jones/v1/keymaps/via/keymap.c
+++ b/keyboards/jones/v1/keymaps/via/keymap.c
@@ -37,48 +37,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37 KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_AT, JP_LBRC, JP_Y, JP_U, JP_I, JP_O, JP_P, KC_BSPC, 37 KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_AT, JP_LBRC, JP_Y, JP_U, JP_I, JP_O, JP_P, KC_BSPC,
38 KC_LCTL, JP_A, JP_S, JP_D, JP_F, JP_G, JP_COLN, JP_RBRC, JP_H, JP_J, JP_K, JP_L, JP_SCLN, KC_ENT, 38 KC_LCTL, JP_A, JP_S, JP_D, JP_F, JP_G, JP_COLN, JP_RBRC, JP_H, JP_J, JP_K, JP_L, JP_SCLN, KC_ENT,
39 KC_LSFT, KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_SLSH, JP_BSLS, JP_N, JP_M, JP_COMM, JP_DOT, KC_DOWN, KC_UP, 39 KC_LSFT, KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_SLSH, JP_BSLS, JP_N, JP_M, JP_COMM, JP_DOT, KC_DOWN, KC_UP,
40 KC_MUTE, KC_LGUI, KC_LALT, JP_MHEN, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,SP_RAI, JP_HENK, JP_KANA, KC_LEFT, KC_RGHT, 40 KC_MUTE, KC_LGUI, KC_LALT, JP_MHEN, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,SP_RAI, JP_HENK, JP_KANA, KC_LEFT, KC_RGHT
41 KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU
42 ), 41 ),
43 [_BASE2] = LAYOUT( 42 [_BASE2] = LAYOUT(
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______,_______, KC_P0, KC_PDOT, _______, _______, 47 _______, _______, _______, _______, _______, _______, _______, _______,_______, KC_P0, KC_PDOT, _______, _______
49 _______, _______, _______, _______
50 ), 48 ),
51 [_BASE3] = LAYOUT( 49 [_BASE3] = LAYOUT(
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, 54 _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______
57 _______, _______, _______, _______
58 ), 55 ),
59 [_LOWER] = LAYOUT( 56 [_LOWER] = LAYOUT(
60 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 57 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
61 _______, JP_EXLM, JP_DQUO, JP_HASH, JP_DLR, JP_PERC, JP_TILD, JP_PIPE, JP_AMPR, JP_QUOT, JP_LPRN, JP_RPRN, JP_EQL, KC_INS, 58 _______, JP_EXLM, JP_DQUO, JP_HASH, JP_DLR, JP_PERC, JP_TILD, JP_PIPE, JP_AMPR, JP_QUOT, JP_LPRN, JP_RPRN, JP_EQL, KC_INS,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
63 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 60 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
64 _______, _______, _______, _______, _______, SP_ADJ, _______, SP_ADJ,SP_ADJ, _______, _______, _______, _______, 61 _______, _______, _______, _______, _______, SP_ADJ, _______, SP_ADJ,SP_ADJ, _______, _______, _______, _______
65 _______, _______, _______, _______
66 ), 62 ),
67 [_RAISE] = LAYOUT( 63 [_RAISE] = LAYOUT(
68 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 64 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
69 KC_ESC, JP_1, JP_2, JP_3, JP_4, JP_5, JP_CIRC, JP_YEN, JP_6, JP_7, JP_8, JP_9, JP_0, KC_DEL, 65 KC_ESC, JP_1, JP_2, JP_3, JP_4, JP_5, JP_CIRC, JP_YEN, JP_6, JP_7, JP_8, JP_9, JP_0, KC_DEL,
70 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, 66 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
71 _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, 67 _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
72 _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP, 68 _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP
73 _______, _______, _______, _______
74 ), 69 ),
75 [_ADJUST] = LAYOUT( 70 [_ADJUST] = LAYOUT(
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, 71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS,
77 _______, DF(_BASE1),DF(_BASE2),DF(_BASE3),_______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_RMOD, _______, 72 _______, DF(_BASE1),DF(_BASE2),DF(_BASE3),_______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_RMOD, _______,
78 _______, AU_TOGG, CK_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_MOD, _______, 73 _______, AU_TOGG, CK_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_MOD, _______,
79 KC_CAPS, KC_CAPS, CK_RST, CK_DOWN, CK_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 74 KC_CAPS, KC_CAPS, CK_RST, CK_DOWN, CK_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
80 _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, 75 _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______
81 _______, _______, _______, _______
82 ), 76 ),
83}; 77};
84 78
@@ -164,50 +158,16 @@ bool led_update_user(led_t led_state) {
164} 158}
165#endif 159#endif
166 160
167 161#ifdef ENCODER_MAP_ENABLE
168//------------------------------------------------------------------------------ 162const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
169// Rotary Encoder 163 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
170//------------------------------------------------------------------------------ 164 [1] = { ENCODER_CCW_CW(_______, _______) },
171static uint8_t encoder_state[NUM_ENCODERS] = {0}; 165 [2] = { ENCODER_CCW_CW(_______, _______) },
172static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; 166 [3] = { ENCODER_CCW_CW(_______, _______) },
173static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; 167 [4] = { ENCODER_CCW_CW(_______, _______) },
174 168 [5] = { ENCODER_CCW_CW(_______, _______) },
175void encoder_action_unregister(void) {
176 for (int index = 0; index < NUM_ENCODERS; ++index) {
177 if (encoder_state[index]) {
178 keyevent_t encoder_event = (keyevent_t) {
179 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
180 .pressed = false,
181 .time = timer_read(),
182 .type = KEY_EVENT
183 };
184 encoder_state[index] = 0;
185 action_exec(encoder_event);
186 }
187 }
188}
189
190void encoder_action_register(uint8_t index, bool clockwise) {
191 keyevent_t encoder_event = (keyevent_t) {
192 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
193 .pressed = true,
194 .time = timer_read(),
195 .type = KEY_EVENT
196 };
197 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
198 action_exec(encoder_event);
199}
200
201void matrix_scan_kb(void) {
202 encoder_action_unregister();
203 matrix_scan_user();
204}
205
206bool encoder_update_user(uint8_t index, bool clockwise) {
207 encoder_action_register(index, clockwise);
208 return true;
209}; 169};
210 170#endif
211 171
212//------------------------------------------------------------------------------ 172//------------------------------------------------------------------------------
213// Keyboard Initialization 173// Keyboard Initialization
diff --git a/keyboards/jones/v1/keymaps/via/rules.mk b/keyboards/jones/v1/keymaps/via/rules.mk
index e1d2dc0582..f1adcab005 100644
--- a/keyboards/jones/v1/keymaps/via/rules.mk
+++ b/keyboards/jones/v1/keymaps/via/rules.mk
@@ -1,2 +1,2 @@
1# Use VIA
2VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/kabedon/kabedon98e/config.h b/keyboards/kabedon/kabedon98e/config.h
index 5722578ace..28963e1935 100644
--- a/keyboards/kabedon/kabedon98e/config.h
+++ b/keyboards/kabedon/kabedon98e/config.h
@@ -36,7 +36,4 @@
36/* Locking resynchronize hack */ 36/* Locking resynchronize hack */
37#define LOCKING_RESYNC_ENABLE 37#define LOCKING_RESYNC_ENABLE
38 38
39#define ENCODERS_CW_KEY { { 0, 0 },{ 2, 0 } }
40#define ENCODERS_CCW_KEY { { 6, 0 },{ 8, 0 } }
41
42#define DYNAMIC_KEYMAP_LAYER_COUNT 3 39#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/kabedon/kabedon98e/info.json b/keyboards/kabedon/kabedon98e/info.json
index 98fe9c207d..40888d8292 100644
--- a/keyboards/kabedon/kabedon98e/info.json
+++ b/keyboards/kabedon/kabedon98e/info.json
@@ -53,13 +53,9 @@
53 {"matrix": [1, 7], "x": 14, "y": 0.5}, 53 {"matrix": [1, 7], "x": 14, "y": 0.5},
54 54
55 {"matrix": [5, 7], "x": 15.5, "y": 0.5}, 55 {"matrix": [5, 7], "x": 15.5, "y": 0.5},
56 {"matrix": [0, 0], "x": 16.9, "y": 0, "w": 0.6, "h": 0.5},
57 {"matrix": [4, 8], "x": 17, "y": 0.5}, 56 {"matrix": [4, 8], "x": 17, "y": 0.5},
58 {"matrix": [2, 0], "x": 17.5, "y": 0, "w": 0.6, "h": 0.5},
59 {"matrix": [6, 0], "x": 18.4, "y": 0, "w": 0.6, "h": 0.5},
60 57
61 {"matrix": [4, 0], "x": 18.5, "y": 0.5}, 58 {"matrix": [4, 0], "x": 18.5, "y": 0.5},
62 {"matrix": [8, 0], "x": 19, "y": 0, "w": 0.6, "h": 0.5},
63 59
64 {"matrix": [3, 0], "x": 0, "y": 1.75}, 60 {"matrix": [3, 0], "x": 0, "y": 1.75},
65 {"matrix": [2, 1], "x": 1, "y": 1.75}, 61 {"matrix": [2, 1], "x": 1, "y": 1.75},
diff --git a/keyboards/kabedon/kabedon98e/kabedon98e.c b/keyboards/kabedon/kabedon98e/kabedon98e.c
deleted file mode 100644
index 9fd34b58af..0000000000
--- a/keyboards/kabedon/kabedon98e/kabedon98e.c
+++ /dev/null
@@ -1,57 +0,0 @@
1/* Copyright 2021 KDon<370490639@qq.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "quantum.h"
17
18static uint8_t encoder_state[NUM_ENCODERS] = {0};
19static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
20static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
21
22void encoder_action_unregister(void) {
23 for (int index = 0; index < NUM_ENCODERS; ++index) {
24 if (encoder_state[index]) {
25 keyevent_t encoder_event = (keyevent_t) {
26 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
27 .pressed = false,
28 .time = timer_read(),
29 .type = KEY_EVENT
30 };
31 encoder_state[index] = 0;
32 action_exec(encoder_event);
33 }
34 }
35}
36
37void encoder_action_register(uint8_t index, bool clockwise) {
38 keyevent_t encoder_event = (keyevent_t) {
39 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
40 .pressed = true,
41 .time = timer_read(),
42 .type = KEY_EVENT
43 };
44 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
45 action_exec(encoder_event);
46}
47
48void matrix_scan_kb(void) {
49 encoder_action_unregister();
50 matrix_scan_user();
51}
52
53bool encoder_update_kb(uint8_t index, bool clockwise) {
54 if (!encoder_update_user(index, clockwise)) { return false; }
55 encoder_action_register(index, clockwise);
56 return true;
57};
diff --git a/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c b/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c
index f730ee95b2..f4dd275c86 100644
--- a/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c
+++ b/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c
@@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 └──┘└──┘└──┘ 45 └──┘└──┘└──┘
46 */ 46 */
47[_BASE] = LAYOUT( 47[_BASE] = LAYOUT(
48 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, KC_INS, KC_END, KC_PGUP, KC_MUTE, KC_PGDN, 48 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, KC_MUTE,
49 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 49 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
50 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, 50 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9,
51 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, 51 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
@@ -53,19 +53,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
53 KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), 53 KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
54 54
55[_FN] = LAYOUT( 55[_FN] = LAYOUT(
56 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, 56 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,
57 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, 57 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,
58 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, 58 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,
59 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, 59 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,
60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, 60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS,
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS), 61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS)
62 62};
63[_FN1] = LAYOUT(
64 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,
65 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,
66 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,
67 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,
68 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,
69 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)
70 63
64#ifdef ENCODER_MAP_ENABLE
65const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
66 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
67 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
71}; 68};
69#endif
diff --git a/keyboards/kabedon/kabedon98e/keymaps/default/rules.mk b/keyboards/kabedon/kabedon98e/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/kabedon/kabedon98e/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c b/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c
index f730ee95b2..e24a6ed88f 100644
--- a/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c
+++ b/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c
@@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 └──┘└──┘└──┘ 45 └──┘└──┘└──┘
46 */ 46 */
47[_BASE] = LAYOUT( 47[_BASE] = LAYOUT(
48 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, KC_INS, KC_END, KC_PGUP, KC_MUTE, KC_PGDN, 48 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, KC_MUTE,
49 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 49 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
50 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, 50 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9,
51 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, 51 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
@@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
53 KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), 53 KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
54 54
55[_FN] = LAYOUT( 55[_FN] = LAYOUT(
56 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, 56 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,
57 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, 57 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,
58 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, 58 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,
59 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, 59 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,
@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS), 61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS),
62 62
63[_FN1] = LAYOUT( 63[_FN1] = LAYOUT(
64 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, 64 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,
65 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, 65 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,
66 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, 66 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,
67 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, 67 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,
@@ -69,3 +69,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
69 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) 69 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)
70 70
71}; 71};
72
73#ifdef ENCODER_MAP_ENABLE
74const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
75 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
76 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
77 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
78};
79#endif
diff --git a/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk b/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk
+++ b/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/keebio/bamfk1/config.h b/keyboards/keebio/bamfk1/config.h
index 0aeaffa895..13d85fc4d1 100644
--- a/keyboards/keebio/bamfk1/config.h
+++ b/keyboards/keebio/bamfk1/config.h
@@ -8,9 +8,7 @@
8# define STARTUP_SONG SONG(STARTUP_SOUND) 8# define STARTUP_SONG SONG(STARTUP_SOUND)
9#endif 9#endif
10 10
11#define ENCODERS_CW_KEY { { 1, 1 }, { 3, 1 } } 11# define RGBLED_NUM 16
12#define ENCODERS_CCW_KEY { { 0, 1 }, { 2, 1 } }
13
14# define RGBLIGHT_HUE_STEP 8 12# define RGBLIGHT_HUE_STEP 8
15# define RGBLIGHT_SAT_STEP 8 13# define RGBLIGHT_SAT_STEP 8
16# define RGBLIGHT_VAL_STEP 8 14# define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/keebio/bamfk1/info.json b/keyboards/keebio/bamfk1/info.json
index 9c9cd011e8..8ff985741e 100644
--- a/keyboards/keebio/bamfk1/info.json
+++ b/keyboards/keebio/bamfk1/info.json
@@ -25,8 +25,7 @@
25 "bootloader": "atmel-dfu", 25 "bootloader": "atmel-dfu",
26 "matrix_pins": { 26 "matrix_pins": {
27 "direct": [ 27 "direct": [
28 ["E6", "B6", "D6", null], 28 ["E6", "B6", "D6"]
29 [null, null, null, null]
30 ] 29 ]
31 }, 30 },
32 "layouts": { 31 "layouts": {
@@ -34,12 +33,7 @@
34 "layout": [ 33 "layout": [
35 {"x": 1.5, "y": 0, "h": 2, "w": 2, "matrix": [0, 0]}, 34 {"x": 1.5, "y": 0, "h": 2, "w": 2, "matrix": [0, 0]},
36 {"x": 0.5, "y": 2.25, "matrix": [0, 1]}, 35 {"x": 0.5, "y": 2.25, "matrix": [0, 1]},
37 {"x": 3.5, "y": 2.25, "matrix": [0, 2]}, 36 {"x": 3.5, "y": 2.25, "matrix": [0, 2]}
38
39 {"x": 0, "y": 3.5, "matrix": [1, 0]},
40 {"x": 1, "y": 3.5, "matrix": [1, 1]},
41 {"x": 3, "y": 3.5, "matrix": [1, 2]},
42 {"x": 4, "y": 3.5, "matrix": [1, 3]}
43 ] 37 ]
44 } 38 }
45 } 39 }
diff --git a/keyboards/keebio/bamfk1/keymaps/default/keymap.c b/keyboards/keebio/bamfk1/keymaps/default/keymap.c
index aa0780eafc..d97a7fe39a 100644
--- a/keyboards/keebio/bamfk1/keymaps/default/keymap.c
+++ b/keyboards/keebio/bamfk1/keymaps/default/keymap.c
@@ -13,27 +13,28 @@ enum layer_names {
13 13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 [_MAIN] = LAYOUT( 15 [_MAIN] = LAYOUT(
16 KC_A, // Big Switch 16 RGB_MOD, // Big Switch
17 MO(1), KC_MUTE, // Encoder presses 17 TL_LOWR, KC_MUTE // Encoder presses
18 KC_DOWN, KC_UP, // Left encoder turns
19 KC_VOLD, KC_VOLU // Right encoder turns
20 ), 18 ),
21 [_FN1] = LAYOUT( 19 [_FN1] = LAYOUT(
22 KC_B, // Big Switch 20 KC_B, // Big Switch
23 _______, KC_C, // Encoder presses 21 _______, KC_C // Encoder presses
24 KC_PGDN, KC_PGUP, // Left encoder turns
25 KC_VOLU, KC_VOLD // Right encoder turns
26 ), 22 ),
27 [_FN2] = LAYOUT( 23 [_FN2] = LAYOUT(
28 _______, // Big Switch 24 _______, // Big Switch
29 _______, _______, // Encoder presses 25 _______, _______ // Encoder presses
30 _______, _______, // Left encoder turns
31 _______, _______ // Right encoder turns
32 ), 26 ),
33 [_FN3] = LAYOUT( 27 [_FN3] = LAYOUT(
34 _______, // Big Switch 28 _______, // Big Switch
35 _______, _______, // Encoder presses 29 _______, _______ // Encoder presses
36 _______, _______, // Left encoder turns
37 _______, _______ // Right encoder turns
38 ) 30 )
39}; 31};
32
33#ifdef ENCODER_MAP_ENABLE
34const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
35 [0] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
36 [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(_______, _______) },
37 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
38 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
39};
40#endif
diff --git a/keyboards/keebio/bamfk1/keymaps/default/rules.mk b/keyboards/keebio/bamfk1/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/keebio/bamfk1/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/keebio/bamfk1/keymaps/via/keymap.c b/keyboards/keebio/bamfk1/keymaps/via/keymap.c
index 80ada5d8aa..d97a7fe39a 100644
--- a/keyboards/keebio/bamfk1/keymaps/via/keymap.c
+++ b/keyboards/keebio/bamfk1/keymaps/via/keymap.c
@@ -14,26 +14,27 @@ enum layer_names {
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 [_MAIN] = LAYOUT( 15 [_MAIN] = LAYOUT(
16 RGB_MOD, // Big Switch 16 RGB_MOD, // Big Switch
17 TL_LOWR, KC_MUTE, // Encoder presses 17 TL_LOWR, KC_MUTE // Encoder presses
18 KC_DOWN, KC_UP, // Left encoder turns
19 KC_VOLD, KC_VOLU // Right encoder turns
20 ), 18 ),
21 [_FN1] = LAYOUT( 19 [_FN1] = LAYOUT(
22 KC_B, // Big Switch 20 KC_B, // Big Switch
23 _______, KC_C, // Encoder presses 21 _______, KC_C // Encoder presses
24 KC_PGDN, KC_PGUP, // Left encoder turns
25 KC_VOLU, KC_VOLD // Right encoder turns
26 ), 22 ),
27 [_FN2] = LAYOUT( 23 [_FN2] = LAYOUT(
28 _______, // Big Switch 24 _______, // Big Switch
29 _______, _______, // Encoder presses 25 _______, _______ // Encoder presses
30 _______, _______, // Left encoder turns
31 _______, _______ // Right encoder turns
32 ), 26 ),
33 [_FN3] = LAYOUT( 27 [_FN3] = LAYOUT(
34 _______, // Big Switch 28 _______, // Big Switch
35 _______, _______, // Encoder presses 29 _______, _______ // Encoder presses
36 _______, _______, // Left encoder turns
37 _______, _______ // Right encoder turns
38 ) 30 )
39}; 31};
32
33#ifdef ENCODER_MAP_ENABLE
34const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
35 [0] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
36 [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(_______, _______) },
37 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
38 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
39};
40#endif
diff --git a/keyboards/keebio/bamfk1/keymaps/via/rules.mk b/keyboards/keebio/bamfk1/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/keebio/bamfk1/keymaps/via/rules.mk
+++ b/keyboards/keebio/bamfk1/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/keebio/bamfk1/rules.mk b/keyboards/keebio/bamfk1/rules.mk
index 514d88831a..5275b6ecdc 100644
--- a/keyboards/keebio/bamfk1/rules.mk
+++ b/keyboards/keebio/bamfk1/rules.mk
@@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
12AUDIO_ENABLE = yes # Audio output 12AUDIO_ENABLE = yes # Audio output
13ENCODER_ENABLE = yes 13ENCODER_ENABLE = yes
14LTO_ENABLE = yes 14LTO_ENABLE = yes
15
16SRC += encoder_actions.c
diff --git a/keyboards/keebio/encoder_actions.c b/keyboards/keebio/encoder_actions.c
deleted file mode 100644
index b02881de5f..0000000000
--- a/keyboards/keebio/encoder_actions.c
+++ /dev/null
@@ -1,63 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 * Copyright 2021 drashna jael're (@drashna)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "encoder_actions.h"
19
20#if defined(ENCODER_ENABLE)
21static uint8_t encoder_state[NUM_ENCODERS] = {0};
22static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
23static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
24
25void encoder_action_unregister(void) {
26 for (int index = 0; index < NUM_ENCODERS; ++index) {
27 if (encoder_state[index]) {
28 keyevent_t encoder_event = (keyevent_t) {
29 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
30 .pressed = false,
31 .time = timer_read(),
32 .type = KEY_EVENT
33 };
34 encoder_state[index] = 0;
35 action_exec(encoder_event);
36 }
37 }
38}
39
40void encoder_action_register(uint8_t index, bool clockwise) {
41 keyevent_t encoder_event = (keyevent_t) {
42 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
43 .pressed = true,
44 .time = timer_read(),
45 .type = KEY_EVENT
46 };
47 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
48 action_exec(encoder_event);
49}
50
51void matrix_scan_kb(void) {
52 encoder_action_unregister();
53 matrix_scan_user();
54}
55
56bool encoder_update_kb(uint8_t index, bool clockwise) {
57 encoder_action_register(index, clockwise);
58 // don't return user actions, because they are in the keymap
59 // encoder_update_user(index, clockwise);
60 return true;
61};
62
63#endif
diff --git a/keyboards/keebio/encoder_actions.h b/keyboards/keebio/encoder_actions.h
deleted file mode 100644
index 1a7fb72014..0000000000
--- a/keyboards/keebio/encoder_actions.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise);
diff --git a/keyboards/meletrix/zoom65/info.json b/keyboards/meletrix/zoom65/info.json
index 30e4962a29..59de004989 100644
--- a/keyboards/meletrix/zoom65/info.json
+++ b/keyboards/meletrix/zoom65/info.json
@@ -43,9 +43,7 @@
43 {"matrix": [0, 12], "x": 12, "y": 0}, 43 {"matrix": [0, 12], "x": 12, "y": 0},
44 {"matrix": [0, 13], "x": 13, "y": 0}, 44 {"matrix": [0, 13], "x": 13, "y": 0},
45 {"matrix": [2, 13], "x": 14, "y": 0}, 45 {"matrix": [2, 13], "x": 14, "y": 0},
46 {"matrix": [4, 3], "x": 15, "y": 0, "w": 0.5},
47 {"matrix": [0, 14], "x": 15.5, "y": 0}, 46 {"matrix": [0, 14], "x": 15.5, "y": 0},
48 {"matrix": [4, 5], "x": 16.5, "y": 0, "w": 0.5},
49 47
50 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, 48 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
51 {"matrix": [1, 1], "x": 1.5, "y": 1}, 49 {"matrix": [1, 1], "x": 1.5, "y": 1},
diff --git a/keyboards/meletrix/zoom65/keymaps/default/keymap.c b/keyboards/meletrix/zoom65/keymaps/default/keymap.c
index 3eab5dabb0..b96eff2257 100644
--- a/keyboards/meletrix/zoom65/keymaps/default/keymap.c
+++ b/keyboards/meletrix/zoom65/keymaps/default/keymap.c
@@ -18,14 +18,14 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_MUTE,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPLY,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
diff --git a/keyboards/meletrix/zoom65/keymaps/via/keymap.c b/keyboards/meletrix/zoom65/keymaps/via/keymap.c
index 62e10541c2..44651f3468 100644
--- a/keyboards/meletrix/zoom65/keymaps/via/keymap.c
+++ b/keyboards/meletrix/zoom65/keymaps/via/keymap.c
@@ -18,31 +18,40 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_MUTE,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPLY,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ), 33 ),
34 [2] = LAYOUT_all( 34 [2] = LAYOUT_all(
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ), 40 ),
41 [3] = LAYOUT_all( 41 [3] = LAYOUT_all(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
47 ), 47 ),
48}; 48};
49
50#ifdef ENCODER_MAP_ENABLE
51const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
52 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
53 [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
54 [2] = { ENCODER_CCW_CW(_______, _______) },
55 [3] = { ENCODER_CCW_CW(_______, _______) },
56};
57#endif
diff --git a/keyboards/meletrix/zoom65/keymaps/via/rules.mk b/keyboards/meletrix/zoom65/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/meletrix/zoom65/keymaps/via/rules.mk
+++ b/keyboards/meletrix/zoom65/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/meletrix/zoom65/zoom65.c b/keyboards/meletrix/zoom65/zoom65.c
deleted file mode 100644
index 10b48c7b2d..0000000000
--- a/keyboards/meletrix/zoom65/zoom65.c
+++ /dev/null
@@ -1,64 +0,0 @@
1/* Copyright 2021 meletrix
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19#ifdef VIA_ENABLE
20static uint8_t encoder_state[NUM_ENCODERS] = {0};
21static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
22static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
23
24void encoder_action_unregister(void)
25{
26 for (int index = 0; index < NUM_ENCODERS; ++index)
27 {
28 if (encoder_state[index])
29 {
30 keyevent_t encoder_event = (keyevent_t){
31 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
32 .pressed = false,
33 .time = timer_read(),
34 .type = KEY_EVENT
35 };
36 encoder_state[index] = 0;
37 action_exec(encoder_event);
38 }
39 }
40}
41void encoder_action_register(uint8_t index, bool clockwise)
42{
43 keyevent_t encoder_event = (keyevent_t){
44 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
45 .pressed = true,
46 .time = timer_read(),
47 .type = KEY_EVENT
48 };
49 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
50 action_exec(encoder_event);
51}
52
53void matrix_scan_kb(void)
54{
55 encoder_action_unregister();
56 matrix_scan_user();
57}
58
59bool encoder_update_kb(uint8_t index, bool clockwise)
60{
61 encoder_action_register(index, clockwise);
62 return true;
63};
64#endif
diff --git a/keyboards/meletrix/zoom65_lite/config.h b/keyboards/meletrix/zoom65_lite/config.h
deleted file mode 100644
index e5cc1f3e5b..0000000000
--- a/keyboards/meletrix/zoom65_lite/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
1/* Copyright 2021 meletrix
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// Note: array is { col, row )
20#define ENCODERS_CW_KEY { { 5, 4 } }
21#define ENCODERS_CCW_KEY { { 3, 4 } }
diff --git a/keyboards/meletrix/zoom65_lite/info.json b/keyboards/meletrix/zoom65_lite/info.json
index b8b59a487d..932dc8571e 100644
--- a/keyboards/meletrix/zoom65_lite/info.json
+++ b/keyboards/meletrix/zoom65_lite/info.json
@@ -43,9 +43,7 @@
43 {"matrix": [0, 12], "x": 12, "y": 0}, 43 {"matrix": [0, 12], "x": 12, "y": 0},
44 {"matrix": [0, 13], "x": 13, "y": 0}, 44 {"matrix": [0, 13], "x": 13, "y": 0},
45 {"matrix": [2, 13], "x": 14, "y": 0}, 45 {"matrix": [2, 13], "x": 14, "y": 0},
46 {"matrix": [4, 3], "x": 15, "y": 0, "w": 0.5},
47 {"matrix": [0, 14], "x": 15.5, "y": 0}, 46 {"matrix": [0, 14], "x": 15.5, "y": 0},
48 {"matrix": [4, 5], "x": 16.5, "y": 0, "w": 0.5},
49 47
50 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, 48 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
51 {"matrix": [1, 1], "x": 1.5, "y": 1}, 49 {"matrix": [1, 1], "x": 1.5, "y": 1},
diff --git a/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c b/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c
index 9d9aa67557..b96eff2257 100644
--- a/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c
+++ b/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c
@@ -18,14 +18,14 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_VOLU, KC_MUTE, KC_VOLD, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_MUTE,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MNXT, KC_MPLY, KC_MPRV, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPLY,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
diff --git a/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c b/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c
index 4adfaba69d..44651f3468 100644
--- a/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c
+++ b/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c
@@ -16,78 +16,42 @@
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19static uint8_t encoder_state[NUM_ENCODERS] = {0};
20static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
21static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
22
23void encoder_action_unregister(void)
24{
25 for (int index = 0; index < NUM_ENCODERS; ++index)
26 {
27 if (encoder_state[index])
28 {
29 keyevent_t encoder_event = (keyevent_t){
30 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
31 .pressed = false,
32 .time = timer_read(),
33 .type = KEY_EVENT
34 };
35 encoder_state[index] = 0;
36 action_exec(encoder_event);
37 }
38 }
39}
40void encoder_action_register(uint8_t index, bool clockwise)
41{
42 keyevent_t encoder_event = (keyevent_t){
43 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
44 .pressed = true,
45 .time = timer_read(),
46 .type = KEY_EVENT
47 };
48 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
49 action_exec(encoder_event);
50}
51
52void matrix_scan_kb(void)
53{
54 encoder_action_unregister();
55 matrix_scan_user();
56}
57
58bool encoder_update_kb(uint8_t index, bool clockwise)
59{
60 encoder_action_register(index, clockwise);
61 return true;
62}
63
64const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
66 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_VOLU, KC_MUTE, KC_VOLD, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_MUTE,
67 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
68 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
69 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
70 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
71 ), 26 ),
72 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
73 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MNXT, KC_MPLY, KC_MPRV, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPLY,
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
78 ), 33 ),
79 [2] = LAYOUT_all( 34 [2] = LAYOUT_all(
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
81 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
82 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
83 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
84 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
85 ), 40 ),
86 [3] = LAYOUT_all( 41 [3] = LAYOUT_all(
87 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
89 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
92 ), 47 ),
93}; 48};
49
50#ifdef ENCODER_MAP_ENABLE
51const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
52 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
53 [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
54 [2] = { ENCODER_CCW_CW(_______, _______) },
55 [3] = { ENCODER_CCW_CW(_______, _______) },
56};
57#endif
diff --git a/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk b/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk
+++ b/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/ml/gas75/info.json b/keyboards/ml/gas75/info.json
index 990b45f1ce..a72db33f25 100644
--- a/keyboards/ml/gas75/info.json
+++ b/keyboards/ml/gas75/info.json
@@ -49,9 +49,7 @@
49 49
50 {"matrix": [0, 13], "x": 14, "y": 0}, 50 {"matrix": [0, 13], "x": 14, "y": 0},
51 51
52 {"matrix": [5, 4], "x": 15, "y": 0, "w": 0.5},
53 {"matrix": [0, 14], "x": 15.5, "y": 0}, 52 {"matrix": [0, 14], "x": 15.5, "y": 0},
54 {"matrix": [5, 3], "x": 16.5, "y": 0, "w": 0.5},
55 53
56 {"matrix": [1, 0], "x": 0, "y": 1.25}, 54 {"matrix": [1, 0], "x": 0, "y": 1.25},
57 {"matrix": [1, 1], "x": 1, "y": 1.25}, 55 {"matrix": [1, 1], "x": 1, "y": 1.25},
diff --git a/keyboards/ml/gas75/keymaps/default/keymap.c b/keyboards/ml/gas75/keymaps/default/keymap.c
index aa72a3c853..209685846c 100644
--- a/keyboards/ml/gas75/keymaps/default/keymap.c
+++ b/keyboards/ml/gas75/keymaps/default/keymap.c
@@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
83*/ 83*/
84 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 84 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
85 [_BASE] = LAYOUT( 85 [_BASE] = LAYOUT(
86 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_MUTE, _______, 86 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
87 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 87 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
88 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 88 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
89 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 89 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
@@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
110*/ 110*/
111 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 111 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
112 [_FN] = LAYOUT( 112 [_FN] = LAYOUT(
113 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, 113 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, 114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, 115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD,
116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -158,25 +158,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
158 return true; 158 return true;
159} 159}
160 160
161#ifdef ENCODER_ENABLE 161#ifdef ENCODER_MAP_ENABLE
162bool encoder_update_user(uint8_t index, bool clockwise) { 162const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
163 if (index == 0) { 163 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
164 if (layer_state_is(_BASE)) { 164 [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
165 if (clockwise) { 165};
166 tap_code(KC_VOLU);
167 } else {
168 tap_code(KC_VOLD);
169 }
170 } else if (layer_state_is(_FN)) {
171 if (clockwise) {
172 rgb_matrix_step();
173 } else {
174 rgb_matrix_step_reverse();
175 }
176 }
177 }
178 return true;
179}
180#endif 166#endif
181 167
182bool rgb_matrix_indicators_user(void) { 168bool rgb_matrix_indicators_user(void) {
diff --git a/keyboards/ml/gas75/keymaps/via/keymap.c b/keyboards/ml/gas75/keymaps/via/keymap.c
index 615e36557a..4a707d3d15 100644
--- a/keyboards/ml/gas75/keymaps/via/keymap.c
+++ b/keyboards/ml/gas75/keymaps/via/keymap.c
@@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
83*/ 83*/
84 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 84 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
85 [_BASE] = LAYOUT( 85 [_BASE] = LAYOUT(
86 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLD, KC_MUTE, KC_VOLU, 86 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
87 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 87 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
88 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 88 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
89 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 89 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
@@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
110*/ 110*/
111 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 111 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
112 [_FN] = LAYOUT( 112 [_FN] = LAYOUT(
113 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, 113 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, 114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, 115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD,
116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -158,45 +158,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
158 return true; 158 return true;
159} 159}
160 160
161#ifdef ENCODER_ENABLE 161#ifdef ENCODER_MAP_ENABLE
162static uint8_t encoder_state[NUM_ENCODERS] = {0}; 162const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
163static keypos_t encoder_cw[NUM_ENCODERS] = {{3, 5}}; 163 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
164static keypos_t encoder_ccw[NUM_ENCODERS] = {{4, 5}}; 164 [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
165 165};
166void encoder_action_unregister(void) {
167 for (int index = 0; index < NUM_ENCODERS; ++index) {
168 if (encoder_state[index]) {
169 keyevent_t encoder_event = (keyevent_t) {
170 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
171 .pressed = false,
172 .time = timer_read(),
173 .type = KEY_EVENT
174 };
175 encoder_state[index] = 0;
176 action_exec(encoder_event);
177 }
178 }
179}
180
181void encoder_action_register(uint8_t index, bool clockwise) {
182 keyevent_t encoder_event = (keyevent_t) {
183 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
184 .pressed = true,
185 .time = timer_read(),
186 .type = KEY_EVENT
187 };
188 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
189 action_exec(encoder_event);
190}
191
192void matrix_scan_user(void) {
193 encoder_action_unregister();
194}
195
196bool encoder_update_user(uint8_t index, bool clockwise) {
197 encoder_action_register(index, clockwise);
198 return false;
199}
200#endif 166#endif
201 167
202bool rgb_matrix_indicators_user(void) { 168bool rgb_matrix_indicators_user(void) {
diff --git a/keyboards/ml/gas75/keymaps/via/rules.mk b/keyboards/ml/gas75/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/ml/gas75/keymaps/via/rules.mk
+++ b/keyboards/ml/gas75/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/monarch/info.json b/keyboards/monarch/info.json
index 95daea5cdb..ff47a1be3e 100644
--- a/keyboards/monarch/info.json
+++ b/keyboards/monarch/info.json
@@ -262,10 +262,7 @@
262 262
263 {"matrix": [4, 13], "x": 13.25, "y": 4.25}, 263 {"matrix": [4, 13], "x": 13.25, "y": 4.25},
264 {"matrix": [4, 14], "x": 14.25, "y": 4.25}, 264 {"matrix": [4, 14], "x": 14.25, "y": 4.25},
265 {"matrix": [4, 15], "x": 15.25, "y": 4.25}, 265 {"matrix": [4, 15], "x": 15.25, "y": 4.25}
266
267 {"matrix": [5, 0], "x": 0, "y": 5},
268 {"matrix": [5, 1], "x": 1, "y": 5}
269 ] 266 ]
270 } 267 }
271 } 268 }
diff --git a/keyboards/monarch/keymaps/default/keymap.c b/keyboards/monarch/keymaps/default/keymap.c
index a9f67ee904..76d64c3563 100644
--- a/keyboards/monarch/keymaps/default/keymap.c
+++ b/keyboards/monarch/keymaps/default/keymap.c
@@ -33,12 +33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP 33 _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP
34 ) 34 )
35}; 35};
36
37bool encoder_update_user(uint8_t index, bool clockwise) {
38 if (clockwise) {
39 tap_code(KC_VOLU);
40 } else {
41 tap_code(KC_VOLD);
42 }
43 return true;
44}
diff --git a/keyboards/monarch/keymaps/iso/keymap.c b/keyboards/monarch/keymaps/iso/keymap.c
index e707b2104b..5df9e560d0 100644
--- a/keyboards/monarch/keymaps/iso/keymap.c
+++ b/keyboards/monarch/keymaps/iso/keymap.c
@@ -33,12 +33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP 33 _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP
34 ) 34 )
35}; 35};
36
37bool encoder_update_user(uint8_t index, bool clockwise) {
38 if (clockwise) {
39 tap_code(KC_VOLU);
40 } else {
41 tap_code(KC_VOLD);
42 }
43 return true;
44}
diff --git a/keyboards/monarch/keymaps/via/keymap.c b/keyboards/monarch/keymaps/via/keymap.c
index c70f9c213b..d83c8c92e1 100644
--- a/keyboards/monarch/keymaps/via/keymap.c
+++ b/keyboards/monarch/keymaps/via/keymap.c
@@ -23,70 +23,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
25 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, 25 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
27 KC_VOLD, KC_VOLU
28 ), 27 ),
29 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
30 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, 29 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_ON, 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_ON,
34 _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP, 33 _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP
35 _______, _______
36 ), 34 ),
37 [2] = LAYOUT_all( 35 [2] = LAYOUT_all(
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, 40 _______, _______, _______, _______, _______, _______, _______, _______
43 _______, _______
44 ), 41 ),
45 [3] = LAYOUT_all( 42 [3] = LAYOUT_all(
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, 47 _______, _______, _______, _______, _______, _______, _______, _______
51 _______, _______
52 ) 48 )
53}; 49};
54 50#ifdef ENCODER_MAP_ENABLE
55keyevent_t encoder_ccw = { 51const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56 .key = (keypos_t){.row = 5, .col = 0}, 52 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57 .pressed = false, 53 [1] = { ENCODER_CCW_CW(_______, _______) },
58 .type = KEY_EVENT 54 [2] = { ENCODER_CCW_CW(_______, _______) },
59}; 55 [3] = { ENCODER_CCW_CW(_______, _______) },
60
61keyevent_t encoder_cw = {
62 .key = (keypos_t){.row = 5, .col = 1},
63 .pressed = false,
64 .type = KEY_EVENT
65}; 56};
66 57#endif
67void matrix_scan_user(void) {
68 if (encoder_ccw.pressed) {
69 encoder_ccw.pressed = false;
70 encoder_ccw.time = timer_read();
71 action_exec(encoder_ccw);
72 }
73
74 if (encoder_cw.pressed) {
75 encoder_cw.pressed = false;
76 encoder_cw.time = timer_read();
77 action_exec(encoder_cw);
78 }
79}
80
81bool encoder_update_user(uint8_t index, bool clockwise) {
82 if (clockwise) {
83 encoder_cw.pressed = true;
84 encoder_cw.time = timer_read();
85 action_exec(encoder_cw);
86 } else {
87 encoder_ccw.pressed = true;
88 encoder_ccw.time = timer_read();
89 action_exec(encoder_ccw);
90 }
91 return true;
92}
diff --git a/keyboards/monarch/keymaps/via/rules.mk b/keyboards/monarch/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/monarch/keymaps/via/rules.mk
+++ b/keyboards/monarch/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mwstudio/alicekk/keymaps/via/keymap.c b/keyboards/mwstudio/alicekk/keymaps/via/keymap.c
index 92e893d5c5..a9de70282f 100644
--- a/keyboards/mwstudio/alicekk/keymaps/via/keymap.c
+++ b/keyboards/mwstudio/alicekk/keymaps/via/keymap.c
@@ -51,44 +51,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
51 ), 51 ),
52}; 52};
53 53
54 54#ifdef ENCODER_MAP_ENABLE
55#ifdef ENCODER_ENABLE 55const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56static uint8_t encoder_state[NUM_ENCODERS] = {0}; 56 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57static keypos_t encoder_cw[NUM_ENCODERS] = {{6, 4}}; 57 [1] = { ENCODER_CCW_CW(_______, _______) },
58static keypos_t encoder_ccw[NUM_ENCODERS] = {{7, 4}}; 58 [2] = { ENCODER_CCW_CW(_______, _______) },
59 59 [3] = { ENCODER_CCW_CW(_______, _______) },
60void encoder_action_unregister(void) {
61 for (uint8_t index = 0; index < NUM_ENCODERS; ++index) {
62 if (encoder_state[index]) {
63 keyevent_t encoder_event = (keyevent_t) {
64 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
65 .pressed = false,
66 .time = timer_read(),
67 .type = KEY_EVENT
68 };
69 encoder_state[index] = 0;
70 action_exec(encoder_event);
71 }
72 }
73}
74
75void encoder_action_register(uint8_t index, bool clockwise) {
76 keyevent_t encoder_event = (keyevent_t) {
77 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
78 .pressed = true,
79 .time = timer_read(),
80 .type = KEY_EVENT
81 };
82 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
83 action_exec(encoder_event);
84}
85
86void matrix_scan_user(void) {
87 encoder_action_unregister();
88}
89
90bool encoder_update_user(uint8_t index, bool clockwise) {
91 encoder_action_register(index, clockwise);
92 return false;
93}; 60};
94#endif 61#endif
diff --git a/keyboards/mwstudio/alicekk/keymaps/via/rules.mk b/keyboards/mwstudio/alicekk/keymaps/via/rules.mk
index 541a15608a..f1adcab005 100644
--- a/keyboards/mwstudio/alicekk/keymaps/via/rules.mk
+++ b/keyboards/mwstudio/alicekk/keymaps/via/rules.mk
@@ -1,2 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = no 2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mwstudio/mw65_rgb/info.json b/keyboards/mwstudio/mw65_rgb/info.json
index c2a8a6c188..cb2e62c6e9 100644
--- a/keyboards/mwstudio/mw65_rgb/info.json
+++ b/keyboards/mwstudio/mw65_rgb/info.json
@@ -43,10 +43,7 @@
43 {"matrix": [0, 11], "x": 11, "y": 0}, 43 {"matrix": [0, 11], "x": 11, "y": 0},
44 {"matrix": [0, 12], "x": 12, "y": 0}, 44 {"matrix": [0, 12], "x": 12, "y": 0},
45 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, 45 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
46
47 {"matrix": [4, 4], "x": 15, "y": 0, "w": 0.5},
48 {"matrix": [0, 14], "x": 15.5, "y": 0}, 46 {"matrix": [0, 14], "x": 15.5, "y": 0},
49 {"matrix": [4, 3], "x": 16.5, "y": 0, "w": 0.5},
50 47
51 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, 48 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
52 {"matrix": [1, 1], "x": 1.5, "y": 1}, 49 {"matrix": [1, 1], "x": 1.5, "y": 1},
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c
index 8153790b14..77750b5174 100644
--- a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c
+++ b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c
@@ -18,7 +18,7 @@
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 19
20 [0] = LAYOUT( 20 [0] = LAYOUT(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_DEL, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RGB_TOG, 24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RGB_TOG,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 ), 26 ),
27 27
28 [1] = LAYOUT( 28 [1] = LAYOUT(
29 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_HUI, _______, 29 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_HUI,
30 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, 30 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD,
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c
index ef5ea90b61..6179d4cdc1 100644
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c
+++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c
@@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
48*/ 48*/
49 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 49 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
50 [_BASE] = LAYOUT( 50 [_BASE] = LAYOUT(
51 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_HOME, KC_VOLU, 51 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
52 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 52 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
53 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 53 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
54 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, 54 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71*/ 71*/
72 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 72 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
73 [_FN] = LAYOUT( 73 [_FN] = LAYOUT(
74 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, _______, _______, _______, 74 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, _______,
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUSE, KC_INS, 75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUSE, KC_INS,
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_DEL, 76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_DEL,
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h
index 7fadbdc39c..bd979e9c81 100644
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h
+++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h
@@ -273,19 +273,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
273 return true; 273 return true;
274} 274}
275 275
276#ifdef ENCODER_ENABLE
277bool encoder_update_user(uint8_t index, bool clockwise) {
278 if (index == 0) {
279 if (clockwise) {
280 tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3));
281 } else {
282 tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4));
283 }
284 }
285 return true;
286}
287#endif
288
289bool rgb_matrix_indicators_user(void) { 276bool rgb_matrix_indicators_user(void) {
290 switch (biton32(layer_state)) { 277 switch (biton32(layer_state)) {
291 case _FN: 278 case _FN:
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c
index f4625bf7a7..e51a5e3ab8 100644
--- a/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c
+++ b/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
79*/ 79*/
80 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 80 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
81 [_BASE] = LAYOUT( 81 [_BASE] = LAYOUT(
82 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_HOME, KC_VOLU, 82 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
83 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 83 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
84 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 84 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
85 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, 85 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
@@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
101*/ 101*/
102 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ 102 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
103 [_FN] = LAYOUT( 103 [_FN] = LAYOUT(
104 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, _______, _______, _______, 104 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, _______,
105 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, KC_PAUSE, KC_INS, 105 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, KC_PAUSE, KC_INS,
106 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, KC_PSCR, KC_DEL, 106 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, KC_PSCR, KC_DEL,
107 _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, RGB_VAI, RGB_TOG, 107 _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, RGB_VAI, RGB_TOG,
@@ -168,19 +168,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
168 return true; 168 return true;
169} 169}
170 170
171#ifdef ENCODER_ENABLE
172bool encoder_update_user(uint8_t index, bool clockwise) {
173 if (index == 0) {
174 if (clockwise) {
175 tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3));
176 } else {
177 tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4));
178 }
179 }
180 return true;
181}
182#endif
183
184bool rgb_matrix_indicators_user(void) { 171bool rgb_matrix_indicators_user(void) {
185 HSV hsv = rgb_matrix_config.hsv; 172 HSV hsv = rgb_matrix_config.hsv;
186 uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); 173 uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1));
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c
index a1b54a8411..bf0f30c36b 100644
--- a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c
+++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c
@@ -34,7 +34,7 @@ enum custom_keycodes {
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 35
36 [0] = LAYOUT( 36 [0] = LAYOUT(
37 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_DEL, KC_VOLU, 37 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
39 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 39 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RGB_TOG, 40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RGB_TOG,
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 ), 42 ),
43 43
44 [1] = LAYOUT( 44 [1] = LAYOUT(
45 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_HUI, _______, 45 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_HUI,
46 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, 46 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER00, RGB_SAI, 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER00, RGB_SAI,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER01, RGB_VAI, RGB_SAD, 48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER01, RGB_VAI, RGB_SAD,
@@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 ), 50 ),
51 51
52 [2] = LAYOUT( 52 [2] = LAYOUT(
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
58 ), 58 ),
59 59
60 [3] = LAYOUT( 60 [3] = LAYOUT(
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -96,17 +96,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
96 } 96 }
97} 97}
98 98
99#ifdef ENCODER_ENABLE 99#ifdef ENCODER_MAP_ENABLE
100bool encoder_update_user(uint8_t index, bool clockwise) { 100const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
101 if (index == 0) { 101 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
102 if (clockwise) { 102 [1] = { ENCODER_CCW_CW(_______, _______) },
103 tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 3)); 103 [2] = { ENCODER_CCW_CW(_______, _______) },
104 } else { 104 [3] = { ENCODER_CCW_CW(_______, _______) },
105 tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 4)); 105};
106 }
107 }
108 return true;
109}
110#endif 106#endif
111 107
112bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { 108bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk b/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk
+++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c b/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c
index 633629abc7..0454d3c056 100644
--- a/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c
+++ b/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c
@@ -104,48 +104,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
104 } 104 }
105} 105}
106 106
107#ifdef ENCODER_ENABLE 107#ifdef ENCODER_MAP_ENABLE
108static uint8_t encoder_state[NUM_ENCODERS] = {0}; 108const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
109static keypos_t encoder_cw[NUM_ENCODERS] = {{3, 5}}; 109 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
110static keypos_t encoder_ccw[NUM_ENCODERS] = {{4, 5}}; 110 [1] = { ENCODER_CCW_CW(_______, _______) },
111 111 [2] = { ENCODER_CCW_CW(_______, _______) },
112void encoder_action_unregister(void) { 112 [3] = { ENCODER_CCW_CW(_______, _______) },
113 for (uint8_t index = 0; index < NUM_ENCODERS; ++index) {
114 if (encoder_state[index]) {
115 keyevent_t encoder_event = (keyevent_t) {
116 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
117 .pressed = false,
118 .time = timer_read(),
119 .type = KEY_EVENT
120 };
121 encoder_state[index] = 0;
122 action_exec(encoder_event);
123 }
124 }
125}
126
127void encoder_action_register(uint8_t index, bool clockwise) {
128 keyevent_t encoder_event = (keyevent_t) {
129 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
130 .pressed = true,
131 .time = timer_read(),
132 .type = KEY_EVENT
133 };
134 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
135 action_exec(encoder_event);
136}
137
138void matrix_scan_user(void) {
139 encoder_action_unregister();
140}
141
142bool encoder_update_user(uint8_t index, bool clockwise) {
143 encoder_action_register(index, clockwise);
144 return true;
145}; 113};
146#endif 114#endif
147 115
148
149bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { 116bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
150 117
151 if (user_config.top_rgb_change) 118 if (user_config.top_rgb_change)
diff --git a/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk b/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk
+++ b/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nightly_boards/adellein/adellein.c b/keyboards/nightly_boards/adellein/adellein.c
deleted file mode 100644
index 8ae826d49e..0000000000
--- a/keyboards/nightly_boards/adellein/adellein.c
+++ /dev/null
@@ -1,28 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "adellein.h"
18
19void matrix_scan_kb(void) {
20 encoder_action_unregister();
21 matrix_scan_user();
22}
23
24bool encoder_update_kb(uint8_t index, bool clockwise) {
25// if (!encoder_update_user(index, clockwise)) return false;
26 encoder_action_register(index, clockwise);
27 return true;
28};
diff --git a/keyboards/nightly_boards/adellein/adellein.h b/keyboards/nightly_boards/adellein/adellein.h
deleted file mode 100644
index 33cf8e0b68..0000000000
--- a/keyboards/nightly_boards/adellein/adellein.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20#include "encoder_action.h"
diff --git a/keyboards/nightly_boards/adellein/config.h b/keyboards/nightly_boards/adellein/config.h
index 39245e1cf0..6bcd3aafa3 100644
--- a/keyboards/nightly_boards/adellein/config.h
+++ b/keyboards/nightly_boards/adellein/config.h
@@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define RGBLIGHT_EFFECT_ALTERNATING 28#define RGBLIGHT_EFFECT_ALTERNATING
29#define RGBLIGHT_EFFECT_TWINKLE 29#define RGBLIGHT_EFFECT_TWINKLE
30 30
31/* Encoders */
32#define ENCODERS_CW_KEY { { 3, 3 } }
33#define ENCODERS_CCW_KEY { { 1, 3 } }
34
35/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 31/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
36#define LOCKING_SUPPORT_ENABLE 32#define LOCKING_SUPPORT_ENABLE
37/* Locking resynchronize hack */ 33/* Locking resynchronize hack */
diff --git a/keyboards/nightly_boards/adellein/encoder_action.c b/keyboards/nightly_boards/adellein/encoder_action.c
deleted file mode 100644
index 522fb58d5a..0000000000
--- a/keyboards/nightly_boards/adellein/encoder_action.c
+++ /dev/null
@@ -1,47 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "encoder_action.h"
18
19static uint8_t encoder_state[NUM_ENCODERS] = {0};
20static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
21static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
22
23void encoder_action_unregister(void) {
24 for (int index = 0; index < NUM_ENCODERS; ++index) {
25 if (encoder_state[index]) {
26 keyevent_t encoder_event = (keyevent_t) {
27 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
28 .pressed = false,
29 .time = timer_read(),
30 .type = KEY_EVENT
31 };
32 encoder_state[index] = 0;
33 action_exec(encoder_event);
34 }
35 }
36}
37
38void encoder_action_register(uint8_t index, bool clockwise) {
39 keyevent_t encoder_event = (keyevent_t) {
40 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
41 .pressed = true,
42 .time = timer_read(),
43 .type = KEY_EVENT
44 };
45 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
46 action_exec(encoder_event);
47}
diff --git a/keyboards/nightly_boards/adellein/encoder_action.h b/keyboards/nightly_boards/adellein/encoder_action.h
deleted file mode 100644
index fb22632632..0000000000
--- a/keyboards/nightly_boards/adellein/encoder_action.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file
diff --git a/keyboards/nightly_boards/adellein/info.json b/keyboards/nightly_boards/adellein/info.json
index df81389ac3..8d29f87163 100644
--- a/keyboards/nightly_boards/adellein/info.json
+++ b/keyboards/nightly_boards/adellein/info.json
@@ -83,66 +83,6 @@
83 {"matrix": [3, 9], "x": 10.75, "y": 3, "w": 1.25}, 83 {"matrix": [3, 9], "x": 10.75, "y": 3, "w": 1.25},
84 {"matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.25} 84 {"matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.25}
85 ] 85 ]
86 },
87 "LAYOUT_40ergo_split_ent_encoder": {
88 "layout": [
89 {"matrix": [0, 0], "x": 0.5, "y": 0},
90 {"matrix": [0, 1], "x": 1.5, "y": 0},
91 {"matrix": [0, 2], "x": 2.5, "y": 0},
92 {"matrix": [0, 3], "x": 3.5, "y": 0},
93 {"matrix": [0, 4], "x": 4.5, "y": 0},
94 {"matrix": [0, 5], "x": 5.5, "y": 0},
95
96 {"matrix": [0, 6], "x": 8.25, "y": 0},
97 {"matrix": [0, 7], "x": 9.25, "y": 0},
98 {"matrix": [0, 8], "x": 10.25, "y": 0},
99 {"matrix": [0, 9], "x": 11.25, "y": 0},
100 {"matrix": [0, 10], "x": 12.25, "y": 0},
101 {"matrix": [0, 11], "x": 13.25, "y": 0},
102 {"matrix": [0, 12], "x": 14.25, "y": 0, "w": 1.5},
103
104 {"matrix": [1, 0], "x": 0.25, "y": 1, "w": 1.25},
105 {"matrix": [1, 1], "x": 1.5, "y": 1},
106 {"matrix": [1, 2], "x": 2.5, "y": 1},
107 {"matrix": [1, 3], "x": 3.5, "y": 1},
108 {"matrix": [1, 4], "x": 4.5, "y": 1},
109 {"matrix": [1, 5], "x": 5.5, "y": 1},
110
111 {"matrix": [1, 6], "x": 8.75, "y": 1},
112 {"matrix": [1, 7], "x": 9.75, "y": 1},
113 {"matrix": [1, 8], "x": 10.75, "y": 1},
114 {"matrix": [1, 9], "x": 11.75, "y": 1},
115 {"matrix": [1, 10], "x": 12.75, "y": 1},
116 {"matrix": [1, 11], "x": 13.75, "y": 1},
117 {"matrix": [1, 12], "x": 14.75, "y": 1, "w": 1.25},
118
119 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
120 {"matrix": [2, 1], "x": 1.75, "y": 2},
121 {"matrix": [2, 2], "x": 2.75, "y": 2},
122 {"matrix": [2, 3], "x": 3.75, "y": 2},
123 {"matrix": [2, 4], "x": 4.75, "y": 2},
124 {"matrix": [2, 5], "x": 5.75, "y": 2},
125
126 {"matrix": [2, 6], "x": 8.5, "y": 2},
127 {"matrix": [2, 7], "x": 9.5, "y": 2},
128 {"matrix": [2, 8], "x": 10.5, "y": 2},
129 {"matrix": [2, 9], "x": 11.5, "y": 2},
130 {"matrix": [2, 10], "x": 12.5, "y": 2},
131 {"matrix": [2, 11], "x": 13.5, "y": 2},
132 {"matrix": [2, 12], "x": 14.5, "y": 2, "w": 1.75},
133
134 {"matrix": [3, 0], "x": 0.25, "y": 3, "w": 1.25},
135 {"matrix": [3, 2], "x": 2.75, "y": 3, "w": 1.25},
136 {"matrix": [3, 4], "x": 4, "y": 3, "w": 2.25},
137 {"matrix": [3, 5], "x": 6.25, "y": 3},
138
139 {"matrix": [3, 7], "x": 8, "y": 3, "w": 2.75},
140 {"matrix": [3, 9], "x": 10.75, "y": 3, "w": 1.25},
141 {"matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.25},
142
143 {"matrix": [3, 1], "x": 5.75, "y": 4},
144 {"matrix": [3, 3], "x": 6.75, "y": 4}
145 ]
146 } 86 }
147 } 87 }
148} 88}
diff --git a/keyboards/nightly_boards/adellein/keymaps/via/keymap.c b/keyboards/nightly_boards/adellein/keymaps/via/keymap.c
index c4c0adffe3..c0d4fa4355 100644
--- a/keyboards/nightly_boards/adellein/keymaps/via/keymap.c
+++ b/keyboards/nightly_boards/adellein/keymaps/via/keymap.c
@@ -15,35 +15,39 @@
15 */ 15 */
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_40ergo_split_ent_encoder( 19 [0] = LAYOUT_40ergo_split_ent(
21 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, 20 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC,
22 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 21 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 22 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
24 KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, 23 KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL
25 KC_VOLD, KC_VOLU
26 ), 24 ),
27 [1] = LAYOUT_40ergo_split_ent_encoder( 25 [1] = LAYOUT_40ergo_split_ent(
28 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, 26 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,
29 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, 27 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,
30 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, 28 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,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
32 KC_TRNS, KC_TRNS
33 ), 30 ),
34 [2] = LAYOUT_40ergo_split_ent_encoder( 31 [2] = LAYOUT_40ergo_split_ent(
35 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, 32 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,
36 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, 33 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,
37 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, 34 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,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
39 KC_TRNS, KC_TRNS
40 ), 36 ),
41 [3] = LAYOUT_40ergo_split_ent_encoder( 37 [3] = LAYOUT_40ergo_split_ent(
42 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, 38 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,
43 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, 39 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,
44 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, 40 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,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
46 KC_TRNS, KC_TRNS
47 ), 42 ),
48 43
49}; 44};
45
46#ifdef ENCODER_MAP_ENABLE
47const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
48 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
49 [1] = { ENCODER_CCW_CW(_______, _______) },
50 [2] = { ENCODER_CCW_CW(_______, _______) },
51 [3] = { ENCODER_CCW_CW(_______, _______) },
52};
53#endif
diff --git a/keyboards/nightly_boards/adellein/keymaps/via/rules.mk b/keyboards/nightly_boards/adellein/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/nightly_boards/adellein/keymaps/via/rules.mk
+++ b/keyboards/nightly_boards/adellein/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nightly_boards/adellein/rules.mk b/keyboards/nightly_boards/adellein/rules.mk
index 8daf6a353a..aa619121b9 100644
--- a/keyboards/nightly_boards/adellein/rules.mk
+++ b/keyboards/nightly_boards/adellein/rules.mk
@@ -11,6 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
11RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 11RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
12ENCODER_ENABLE = yes # Enable Rotary Encoders 12ENCODER_ENABLE = yes # Enable Rotary Encoders
13LTO_ENABLE = yes 13LTO_ENABLE = yes
14
15# Added encoder Action
16SRC += encoder_action.c \ No newline at end of file
diff --git a/keyboards/nightly_boards/n40_o/config.h b/keyboards/nightly_boards/n40_o/config.h
index 3a25ad1261..43e0b691c6 100644
--- a/keyboards/nightly_boards/n40_o/config.h
+++ b/keyboards/nightly_boards/n40_o/config.h
@@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define RGBLIGHT_EFFECT_ALTERNATING 28#define RGBLIGHT_EFFECT_ALTERNATING
29#define RGBLIGHT_EFFECT_TWINKLE 29#define RGBLIGHT_EFFECT_TWINKLE
30 30
31/* Encoders */
32#define ENCODERS_CW_KEY { { 2, 4 },{ 4, 4 },{ 6, 4 } }
33#define ENCODERS_CCW_KEY { { 1, 4 },{ 3, 4 },{ 5, 4 } }
34
35/* Audio */ 31/* Audio */
36 32
37#define AUDIO_PIN B7 33#define AUDIO_PIN B7
diff --git a/keyboards/nightly_boards/n40_o/encoder_action.c b/keyboards/nightly_boards/n40_o/encoder_action.c
deleted file mode 100644
index 522fb58d5a..0000000000
--- a/keyboards/nightly_boards/n40_o/encoder_action.c
+++ /dev/null
@@ -1,47 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "encoder_action.h"
18
19static uint8_t encoder_state[NUM_ENCODERS] = {0};
20static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
21static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
22
23void encoder_action_unregister(void) {
24 for (int index = 0; index < NUM_ENCODERS; ++index) {
25 if (encoder_state[index]) {
26 keyevent_t encoder_event = (keyevent_t) {
27 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
28 .pressed = false,
29 .time = timer_read(),
30 .type = KEY_EVENT
31 };
32 encoder_state[index] = 0;
33 action_exec(encoder_event);
34 }
35 }
36}
37
38void encoder_action_register(uint8_t index, bool clockwise) {
39 keyevent_t encoder_event = (keyevent_t) {
40 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
41 .pressed = true,
42 .time = timer_read(),
43 .type = KEY_EVENT
44 };
45 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
46 action_exec(encoder_event);
47}
diff --git a/keyboards/nightly_boards/n40_o/encoder_action.h b/keyboards/nightly_boards/n40_o/encoder_action.h
deleted file mode 100644
index fb22632632..0000000000
--- a/keyboards/nightly_boards/n40_o/encoder_action.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file
diff --git a/keyboards/nightly_boards/n40_o/info.json b/keyboards/nightly_boards/n40_o/info.json
index 967dd81793..78506bb728 100644
--- a/keyboards/nightly_boards/n40_o/info.json
+++ b/keyboards/nightly_boards/n40_o/info.json
@@ -10,7 +10,7 @@
10 }, 10 },
11 "matrix_pins": { 11 "matrix_pins": {
12 "cols": ["B5", "C7", "D6", "D4", "B3", "B2", "B1", "B0", "D5", "D3", "D2", "D1", "D0"], 12 "cols": ["B5", "C7", "D6", "D4", "B3", "B2", "B1", "B0", "D5", "D3", "D2", "D1", "D0"],
13 "rows": ["E6", "F0", "F1", "D7", null] 13 "rows": ["E6", "F0", "F1", "D7"]
14 }, 14 },
15 "diode_direction": "COL2ROW", 15 "diode_direction": "COL2ROW",
16 "encoder": { 16 "encoder": {
@@ -29,71 +29,6 @@
29 "processor": "atmega32u4", 29 "processor": "atmega32u4",
30 "bootloader": "atmel-dfu", 30 "bootloader": "atmel-dfu",
31 "layouts": { 31 "layouts": {
32 "LAYOUT_ortho_4x13_encoders": {
33 "layout": [
34 {"matrix": [4, 1], "x": 0, "y": 0},
35 {"matrix": [4, 2], "x": 1, "y": 0},
36 {"matrix": [0, 0], "x": 2.25, "y": 0},
37 {"matrix": [0, 1], "x": 3.5, "y": 0},
38 {"matrix": [0, 2], "x": 4.5, "y": 0},
39 {"matrix": [0, 3], "x": 5.5, "y": 0},
40 {"matrix": [0, 4], "x": 6.5, "y": 0},
41 {"matrix": [0, 5], "x": 7.5, "y": 0},
42 {"matrix": [0, 6], "x": 8.5, "y": 0},
43 {"matrix": [0, 7], "x": 9.5, "y": 0},
44 {"matrix": [0, 8], "x": 10.5, "y": 0},
45 {"matrix": [0, 9], "x": 11.5, "y": 0},
46 {"matrix": [0, 10], "x": 12.5, "y": 0},
47 {"matrix": [0, 11], "x": 13.5, "y": 0},
48 {"matrix": [0, 12], "x": 14.5, "y": 0},
49
50 {"matrix": [4, 3], "x": 0, "y": 1},
51 {"matrix": [4, 4], "x": 1, "y": 1},
52 {"matrix": [1, 0], "x": 2.25, "y": 1},
53 {"matrix": [1, 1], "x": 3.5, "y": 1},
54 {"matrix": [1, 2], "x": 4.5, "y": 1},
55 {"matrix": [1, 3], "x": 5.5, "y": 1},
56 {"matrix": [1, 4], "x": 6.5, "y": 1},
57 {"matrix": [1, 5], "x": 7.5, "y": 1},
58 {"matrix": [1, 6], "x": 8.5, "y": 1},
59 {"matrix": [1, 7], "x": 9.5, "y": 1},
60 {"matrix": [1, 8], "x": 10.5, "y": 1},
61 {"matrix": [1, 9], "x": 11.5, "y": 1},
62 {"matrix": [1, 10], "x": 12.5, "y": 1},
63 {"matrix": [1, 11], "x": 13.5, "y": 1},
64 {"matrix": [1, 12], "x": 14.5, "y": 1},
65
66 {"matrix": [4, 5], "x": 0, "y": 2},
67 {"matrix": [4, 6], "x": 1, "y": 2},
68 {"matrix": [2, 0], "x": 2.25, "y": 2},
69 {"matrix": [2, 1], "x": 3.5, "y": 2},
70 {"matrix": [2, 2], "x": 4.5, "y": 2},
71 {"matrix": [2, 3], "x": 5.5, "y": 2},
72 {"matrix": [2, 4], "x": 6.5, "y": 2},
73 {"matrix": [2, 5], "x": 7.5, "y": 2},
74 {"matrix": [2, 6], "x": 8.5, "y": 2},
75 {"matrix": [2, 7], "x": 9.5, "y": 2},
76 {"matrix": [2, 8], "x": 10.5, "y": 2},
77 {"matrix": [2, 9], "x": 11.5, "y": 2},
78 {"matrix": [2, 10], "x": 12.5, "y": 2},
79 {"matrix": [2, 11], "x": 13.5, "y": 2},
80 {"matrix": [2, 12], "x": 14.5, "y": 2},
81
82 {"matrix": [3, 0], "x": 2.25, "y": 3},
83 {"matrix": [3, 1], "x": 3.5, "y": 3},
84 {"matrix": [3, 2], "x": 4.5, "y": 3},
85 {"matrix": [3, 3], "x": 5.5, "y": 3},
86 {"matrix": [3, 4], "x": 6.5, "y": 3},
87 {"matrix": [3, 5], "x": 7.5, "y": 3},
88 {"matrix": [3, 6], "x": 8.5, "y": 3},
89 {"matrix": [3, 7], "x": 9.5, "y": 3},
90 {"matrix": [3, 8], "x": 10.5, "y": 3},
91 {"matrix": [3, 9], "x": 11.5, "y": 3},
92 {"matrix": [3, 10], "x": 12.5, "y": 3},
93 {"matrix": [3, 11], "x": 13.5, "y": 3},
94 {"matrix": [3, 12], "x": 14.5, "y": 3}
95 ]
96 },
97 "LAYOUT_ortho_4x13": { 32 "LAYOUT_ortho_4x13": {
98 "layout": [ 33 "layout": [
99 {"matrix": [0, 0], "x": 0, "y": 0}, 34 {"matrix": [0, 0], "x": 0, "y": 0},
diff --git a/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c b/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c
index 830d8d8782..8ad25a8f25 100644
--- a/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c
+++ b/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c
@@ -17,32 +17,38 @@
17 17
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_ortho_4x13_encoders( 20 [0] = LAYOUT_ortho_4x13(
21 KC_SPC, KC_SPC, KC_SPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 21 KC_SPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
22 KC_SPC, KC_SPC, KC_SPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 22 KC_SPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
23 KC_SPC, KC_SPC, KC_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, 23 KC_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
24 KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT 24 KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
25 25
26 ),
27 [1] = LAYOUT_ortho_4x13_encoders(
28 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,
29 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,
30 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,
31 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
32
33 ), 26 ),
34 [2] = LAYOUT_ortho_4x13_encoders( 27 [1] = LAYOUT_ortho_4x13(
35 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, 28 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,
36 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, 29 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,
37 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, 30 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,
38 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 31 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
39
40 ), 32 ),
41 [3] = LAYOUT_ortho_4x13_encoders( 33 [2] = LAYOUT_ortho_4x13(
42 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, 34 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,
43 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, 35 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,
44 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, 36 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,
45 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 37 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
46
47 ), 38 ),
39 [3] = LAYOUT_ortho_4x13(
40 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,
41 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,
42 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,
43 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
44 )
45};
46
47#ifdef ENCODER_MAP_ENABLE
48const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
49 [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
50 [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
51 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
52 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
48}; 53};
54#endif
diff --git a/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk b/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk
+++ b/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nightly_boards/n40_o/n40_o.c b/keyboards/nightly_boards/n40_o/n40_o.c
deleted file mode 100644
index 643803f903..0000000000
--- a/keyboards/nightly_boards/n40_o/n40_o.c
+++ /dev/null
@@ -1,29 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18#include "encoder_action.h"
19
20void matrix_scan_kb(void) {
21 encoder_action_unregister();
22 matrix_scan_user();
23}
24
25bool encoder_update_kb(uint8_t index, bool clockwise) {
26// if (!encoder_update_user(index, clockwise)) return false;
27 encoder_action_register(index, clockwise);
28 return true;
29};
diff --git a/keyboards/nightly_boards/n40_o/rules.mk b/keyboards/nightly_boards/n40_o/rules.mk
index f1189a87d2..a81ce0571d 100644
--- a/keyboards/nightly_boards/n40_o/rules.mk
+++ b/keyboards/nightly_boards/n40_o/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
12AUDIO_ENABLE = yes # Audio output 12AUDIO_ENABLE = yes # Audio output
13ENCODER_ENABLE = yes # Enable Rotary Encoders 13ENCODER_ENABLE = yes # Enable Rotary Encoders
14LTO_ENABLE = yes 14LTO_ENABLE = yes
15
16# Added encoder Action
17SRC += encoder_action.c \ No newline at end of file
diff --git a/keyboards/nightly_boards/n60_s/config.h b/keyboards/nightly_boards/n60_s/config.h
index d973424454..cabcb8f14f 100644
--- a/keyboards/nightly_boards/n60_s/config.h
+++ b/keyboards/nightly_boards/n60_s/config.h
@@ -17,10 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
17 17
18#pragma once 18#pragma once
19 19
20/* Encoders */
21#define ENCODERS_CW_KEY { { 1, 5 } }
22#define ENCODERS_CCW_KEY { { 0, 5 } }
23
24/* Audio */ 20/* Audio */
25 21
26#define B7_AUDIO 22#define B7_AUDIO
diff --git a/keyboards/nightly_boards/n60_s/encoder_action.c b/keyboards/nightly_boards/n60_s/encoder_action.c
deleted file mode 100644
index 522fb58d5a..0000000000
--- a/keyboards/nightly_boards/n60_s/encoder_action.c
+++ /dev/null
@@ -1,47 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "encoder_action.h"
18
19static uint8_t encoder_state[NUM_ENCODERS] = {0};
20static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
21static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
22
23void encoder_action_unregister(void) {
24 for (int index = 0; index < NUM_ENCODERS; ++index) {
25 if (encoder_state[index]) {
26 keyevent_t encoder_event = (keyevent_t) {
27 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
28 .pressed = false,
29 .time = timer_read(),
30 .type = KEY_EVENT
31 };
32 encoder_state[index] = 0;
33 action_exec(encoder_event);
34 }
35 }
36}
37
38void encoder_action_register(uint8_t index, bool clockwise) {
39 keyevent_t encoder_event = (keyevent_t) {
40 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
41 .pressed = true,
42 .time = timer_read(),
43 .type = KEY_EVENT
44 };
45 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
46 action_exec(encoder_event);
47}
diff --git a/keyboards/nightly_boards/n60_s/encoder_action.h b/keyboards/nightly_boards/n60_s/encoder_action.h
deleted file mode 100644
index fb22632632..0000000000
--- a/keyboards/nightly_boards/n60_s/encoder_action.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file
diff --git a/keyboards/nightly_boards/n60_s/info.json b/keyboards/nightly_boards/n60_s/info.json
index 487fc5457a..0642944b2d 100644
--- a/keyboards/nightly_boards/n60_s/info.json
+++ b/keyboards/nightly_boards/n60_s/info.json
@@ -10,7 +10,7 @@
10 }, 10 },
11 "matrix_pins": { 11 "matrix_pins": {
12 "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "B5", "B6", "C6", "C7"], 12 "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "B5", "B6", "C6", "C7"],
13 "rows": ["B4", "D7", "D6", "D0", "E6", null] 13 "rows": ["B4", "D7", "D6", "D0", "E6"]
14 }, 14 },
15 "diode_direction": "COL2ROW", 15 "diode_direction": "COL2ROW",
16 "encoder": { 16 "encoder": {
@@ -99,80 +99,6 @@
99 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} 99 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
100 ] 100 ]
101 }, 101 },
102 "LAYOUT_60_ansi_split_bs_rshift_encoder": {
103 "layout": [
104 {"matrix": [0, 0], "x": 0, "y": 0},
105 {"matrix": [0, 1], "x": 1, "y": 0},
106 {"matrix": [0, 2], "x": 2, "y": 0},
107 {"matrix": [0, 3], "x": 3, "y": 0},
108 {"matrix": [0, 4], "x": 4, "y": 0},
109 {"matrix": [0, 5], "x": 5, "y": 0},
110 {"matrix": [0, 6], "x": 6, "y": 0},
111 {"matrix": [0, 7], "x": 7, "y": 0},
112 {"matrix": [0, 8], "x": 8, "y": 0},
113 {"matrix": [0, 9], "x": 9, "y": 0},
114 {"matrix": [0, 10], "x": 10, "y": 0},
115 {"matrix": [0, 11], "x": 11, "y": 0},
116 {"matrix": [0, 12], "x": 12, "y": 0},
117 {"matrix": [0, 13], "x": 13, "y": 0},
118 {"matrix": [1, 13], "x": 14, "y": 0},
119
120 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
121 {"matrix": [1, 1], "x": 1.5, "y": 1},
122 {"matrix": [1, 2], "x": 2.5, "y": 1},
123 {"matrix": [1, 3], "x": 3.5, "y": 1},
124 {"matrix": [1, 4], "x": 4.5, "y": 1},
125 {"matrix": [1, 5], "x": 5.5, "y": 1},
126 {"matrix": [1, 6], "x": 6.5, "y": 1},
127 {"matrix": [1, 7], "x": 7.5, "y": 1},
128 {"matrix": [1, 8], "x": 8.5, "y": 1},
129 {"matrix": [1, 9], "x": 9.5, "y": 1},
130 {"matrix": [1, 10], "x": 10.5, "y": 1},
131 {"matrix": [1, 11], "x": 11.5, "y": 1},
132 {"matrix": [1, 12], "x": 12.5, "y": 1},
133 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
134
135 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
136 {"matrix": [2, 1], "x": 1.75, "y": 2},
137 {"matrix": [2, 2], "x": 2.75, "y": 2},
138 {"matrix": [2, 3], "x": 3.75, "y": 2},
139 {"matrix": [2, 4], "x": 4.75, "y": 2},
140 {"matrix": [2, 5], "x": 5.75, "y": 2},
141 {"matrix": [2, 6], "x": 6.75, "y": 2},
142 {"matrix": [2, 7], "x": 7.75, "y": 2},
143 {"matrix": [2, 8], "x": 8.75, "y": 2},
144 {"matrix": [2, 9], "x": 9.75, "y": 2},
145 {"matrix": [2, 10], "x": 10.75, "y": 2},
146 {"matrix": [2, 11], "x": 11.75, "y": 2},
147 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
148
149 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
150 {"matrix": [3, 2], "x": 2.25, "y": 3},
151 {"matrix": [3, 3], "x": 3.25, "y": 3},
152 {"matrix": [3, 4], "x": 4.25, "y": 3},
153 {"matrix": [3, 5], "x": 5.25, "y": 3},
154 {"matrix": [3, 6], "x": 6.25, "y": 3},
155 {"matrix": [3, 7], "x": 7.25, "y": 3},
156 {"matrix": [3, 8], "x": 8.25, "y": 3},
157 {"matrix": [3, 9], "x": 9.25, "y": 3},
158 {"matrix": [3, 10], "x": 10.25, "y": 3},
159 {"matrix": [3, 11], "x": 11.25, "y": 3},
160 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
161 {"matrix": [3, 13], "x": 14, "y": 3},
162
163 {"matrix": [5, 0], "x": 15.25, "y": 3},
164 {"matrix": [5, 1], "x": 16.25, "y": 3},
165
166 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
167 {"matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
168 {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
169 {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
170 {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
171 {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
172 {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
173 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
174 ]
175 },
176 "LAYOUT_60_ansi_split_bs_rshift_tsangan": { 102 "LAYOUT_60_ansi_split_bs_rshift_tsangan": {
177 "layout": [ 103 "layout": [
178 {"matrix": [0, 0], "x": 0, "y": 0}, 104 {"matrix": [0, 0], "x": 0, "y": 0},
@@ -242,79 +168,6 @@
242 {"matrix": [4, 12], "x": 12.5, "y": 4}, 168 {"matrix": [4, 12], "x": 12.5, "y": 4},
243 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} 169 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
244 ] 170 ]
245 },
246 "LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder": {
247 "layout": [
248 {"matrix": [0, 0], "x": 0, "y": 0},
249 {"matrix": [0, 1], "x": 1, "y": 0},
250 {"matrix": [0, 2], "x": 2, "y": 0},
251 {"matrix": [0, 3], "x": 3, "y": 0},
252 {"matrix": [0, 4], "x": 4, "y": 0},
253 {"matrix": [0, 5], "x": 5, "y": 0},
254 {"matrix": [0, 6], "x": 6, "y": 0},
255 {"matrix": [0, 7], "x": 7, "y": 0},
256 {"matrix": [0, 8], "x": 8, "y": 0},
257 {"matrix": [0, 9], "x": 9, "y": 0},
258 {"matrix": [0, 10], "x": 10, "y": 0},
259 {"matrix": [0, 11], "x": 11, "y": 0},
260 {"matrix": [0, 12], "x": 12, "y": 0},
261 {"matrix": [0, 13], "x": 13, "y": 0},
262 {"matrix": [1, 13], "x": 14, "y": 0},
263
264 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
265 {"matrix": [1, 1], "x": 1.5, "y": 1},
266 {"matrix": [1, 2], "x": 2.5, "y": 1},
267 {"matrix": [1, 3], "x": 3.5, "y": 1},
268 {"matrix": [1, 4], "x": 4.5, "y": 1},
269 {"matrix": [1, 5], "x": 5.5, "y": 1},
270 {"matrix": [1, 6], "x": 6.5, "y": 1},
271 {"matrix": [1, 7], "x": 7.5, "y": 1},
272 {"matrix": [1, 8], "x": 8.5, "y": 1},
273 {"matrix": [1, 9], "x": 9.5, "y": 1},
274 {"matrix": [1, 10], "x": 10.5, "y": 1},
275 {"matrix": [1, 11], "x": 11.5, "y": 1},
276 {"matrix": [1, 12], "x": 12.5, "y": 1},
277 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
278
279 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
280 {"matrix": [2, 1], "x": 1.75, "y": 2},
281 {"matrix": [2, 2], "x": 2.75, "y": 2},
282 {"matrix": [2, 3], "x": 3.75, "y": 2},
283 {"matrix": [2, 4], "x": 4.75, "y": 2},
284 {"matrix": [2, 5], "x": 5.75, "y": 2},
285 {"matrix": [2, 6], "x": 6.75, "y": 2},
286 {"matrix": [2, 7], "x": 7.75, "y": 2},
287 {"matrix": [2, 8], "x": 8.75, "y": 2},
288 {"matrix": [2, 9], "x": 9.75, "y": 2},
289 {"matrix": [2, 10], "x": 10.75, "y": 2},
290 {"matrix": [2, 11], "x": 11.75, "y": 2},
291 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
292
293 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
294 {"matrix": [3, 2], "x": 2.25, "y": 3},
295 {"matrix": [3, 3], "x": 3.25, "y": 3},
296 {"matrix": [3, 4], "x": 4.25, "y": 3},
297 {"matrix": [3, 5], "x": 5.25, "y": 3},
298 {"matrix": [3, 6], "x": 6.25, "y": 3},
299 {"matrix": [3, 7], "x": 7.25, "y": 3},
300 {"matrix": [3, 8], "x": 8.25, "y": 3},
301 {"matrix": [3, 9], "x": 9.25, "y": 3},
302 {"matrix": [3, 10], "x": 10.25, "y": 3},
303 {"matrix": [3, 11], "x": 11.25, "y": 3},
304 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
305 {"matrix": [3, 13], "x": 14, "y": 3},
306
307 {"matrix": [5, 0], "x": 15.25, "y": 3},
308 {"matrix": [5, 1], "x": 16.25, "y": 3},
309
310 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
311 {"matrix": [4, 2], "x": 1.5, "y": 4},
312 {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
313 {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
314 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
315 {"matrix": [4, 12], "x": 12.5, "y": 4},
316 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
317 ]
318 } 171 }
319 } 172 }
320} 173}
diff --git a/keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c b/keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c
deleted file mode 100644
index 9316b20c75..0000000000
--- a/keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Base */
20 [0] = LAYOUT_60_ansi_split_bs_rshift_encoder(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_VOLD, KC_VOLU,
25 KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL
26 ),
27 [1] = LAYOUT_60_ansi_split_bs_rshift_encoder(
28 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
29 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
33 )
34};
diff --git a/keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c b/keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c
deleted file mode 100644
index cc25ac42e7..0000000000
--- a/keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Base */
20 [0] = LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_VOLD, KC_VOLU,
25 KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
26 ),
27 [1] = LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder(
28 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
29 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
33 )
34};
diff --git a/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c b/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c
index d76c734782..54e9888ff6 100644
--- a/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c
+++ b/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c
@@ -17,32 +17,41 @@
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Base */ 19 /* Base */
20 [0] = LAYOUT_60_ansi_split_bs_rshift_encoder( 20 [0] = LAYOUT_60_ansi_split_bs_rshift(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_VOLD, KC_VOLU, 24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT,
25 KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_LALT, KC_APP, KC_RGUI, KC_LCTL 25 KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_LALT, KC_APP, KC_RGUI, KC_LCTL
26 ), 26 ),
27 [1] = LAYOUT_60_ansi_split_bs_rshift_encoder( 27 [1] = LAYOUT_60_ansi_split_bs_rshift(
28 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_F12, KC_DEL, KC_DEL, 28 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_F12, KC_DEL, KC_DEL,
29 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 29 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, 30 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS 32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
33 ), 33 ),
34 [2] = LAYOUT_60_ansi_split_bs_rshift_encoder( 34 [2] = LAYOUT_60_ansi_split_bs_rshift(
35 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, 35 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,
36 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, 36 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,
37 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, 37 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,
38 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, 38 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,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS 39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
40 ), 40 ),
41 [3] = LAYOUT_60_ansi_split_bs_rshift_encoder( 41 [3] = LAYOUT_60_ansi_split_bs_rshift(
42 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, 42 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,
43 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, 43 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,
44 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, 44 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,
45 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, 45 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,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS 46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
47 ) 47 )
48}; 48};
49
50#ifdef ENCODER_MAP_ENABLE
51const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
52 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
53 [1] = { ENCODER_CCW_CW(_______, _______) },
54 [2] = { ENCODER_CCW_CW(_______, _______) },
55 [3] = { ENCODER_CCW_CW(_______, _______) },
56};
57#endif
diff --git a/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk b/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk
+++ b/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nightly_boards/n60_s/n60_s.c b/keyboards/nightly_boards/n60_s/n60_s.c
deleted file mode 100644
index dd0d23425b..0000000000
--- a/keyboards/nightly_boards/n60_s/n60_s.c
+++ /dev/null
@@ -1,28 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "n60_s.h"
18
19void matrix_scan_kb(void) {
20 encoder_action_unregister();
21 matrix_scan_user();
22}
23
24bool encoder_update_kb(uint8_t index, bool clockwise) {
25// if (!encoder_update_user(index, clockwise)) return false;
26 encoder_action_register(index, clockwise);
27 return true;
28};
diff --git a/keyboards/nightly_boards/n60_s/n60_s.h b/keyboards/nightly_boards/n60_s/n60_s.h
deleted file mode 100644
index 33cf8e0b68..0000000000
--- a/keyboards/nightly_boards/n60_s/n60_s.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20#include "encoder_action.h"
diff --git a/keyboards/nightly_boards/n60_s/rules.mk b/keyboards/nightly_boards/n60_s/rules.mk
index a37378959e..f404ad0163 100644
--- a/keyboards/nightly_boards/n60_s/rules.mk
+++ b/keyboards/nightly_boards/n60_s/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
12AUDIO_ENABLE = yes # Audio output 12AUDIO_ENABLE = yes # Audio output
13ENCODER_ENABLE = yes # Enable Rotary Encoders 13ENCODER_ENABLE = yes # Enable Rotary Encoders
14LTO_ENABLE = yes 14LTO_ENABLE = yes
15
16# Added encoder Action
17SRC += encoder_action.c \ No newline at end of file
diff --git a/keyboards/nightly_boards/octopad/config.h b/keyboards/nightly_boards/octopad/config.h
index 10aebd0d07..b8b9535fb0 100644
--- a/keyboards/nightly_boards/octopad/config.h
+++ b/keyboards/nightly_boards/octopad/config.h
@@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define RGBLIGHT_EFFECT_ALTERNATING 28#define RGBLIGHT_EFFECT_ALTERNATING
29#define RGBLIGHT_EFFECT_TWINKLE 29#define RGBLIGHT_EFFECT_TWINKLE
30 30
31/* Encoders */
32#define ENCODERS_CW_KEY { { 3, 2 },{ 1, 2 } }
33#define ENCODERS_CCW_KEY { { 2, 2 },{ 0, 2 } }
34
35/* Audio */ 31/* Audio */
36 32
37#define AUDIO_PIN B5 33#define AUDIO_PIN B5
diff --git a/keyboards/nightly_boards/octopad/encoder_action.c b/keyboards/nightly_boards/octopad/encoder_action.c
deleted file mode 100644
index 522fb58d5a..0000000000
--- a/keyboards/nightly_boards/octopad/encoder_action.c
+++ /dev/null
@@ -1,47 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "encoder_action.h"
18
19static uint8_t encoder_state[NUM_ENCODERS] = {0};
20static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
21static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
22
23void encoder_action_unregister(void) {
24 for (int index = 0; index < NUM_ENCODERS; ++index) {
25 if (encoder_state[index]) {
26 keyevent_t encoder_event = (keyevent_t) {
27 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
28 .pressed = false,
29 .time = timer_read(),
30 .type = KEY_EVENT
31 };
32 encoder_state[index] = 0;
33 action_exec(encoder_event);
34 }
35 }
36}
37
38void encoder_action_register(uint8_t index, bool clockwise) {
39 keyevent_t encoder_event = (keyevent_t) {
40 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
41 .pressed = true,
42 .time = timer_read(),
43 .type = KEY_EVENT
44 };
45 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
46 action_exec(encoder_event);
47}
diff --git a/keyboards/nightly_boards/octopad/encoder_action.h b/keyboards/nightly_boards/octopad/encoder_action.h
deleted file mode 100644
index fb22632632..0000000000
--- a/keyboards/nightly_boards/octopad/encoder_action.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file
diff --git a/keyboards/nightly_boards/octopad/info.json b/keyboards/nightly_boards/octopad/info.json
index 6a889bece6..0f1463e986 100644
--- a/keyboards/nightly_boards/octopad/info.json
+++ b/keyboards/nightly_boards/octopad/info.json
@@ -10,7 +10,7 @@
10 }, 10 },
11 "matrix_pins": { 11 "matrix_pins": {
12 "cols": ["F1", "F0", "D0", "D1", "B1"], 12 "cols": ["F1", "F0", "D0", "D1", "B1"],
13 "rows": ["B2", "B3", null] 13 "rows": ["B2", "B3"]
14 }, 14 },
15 "diode_direction": "COL2ROW", 15 "diode_direction": "COL2ROW",
16 "encoder": { 16 "encoder": {
@@ -30,13 +30,9 @@
30 "layouts": { 30 "layouts": {
31 "LAYOUT": { 31 "LAYOUT": {
32 "layout": [ 32 "layout": [
33 {"matrix": [2, 0], "x": 0, "y": 0},
34 {"matrix": [0, 4], "x": 1, "y": 0}, 33 {"matrix": [0, 4], "x": 1, "y": 0},
35 {"matrix": [2, 1], "x": 2, "y": 0},
36 34
37 {"matrix": [2, 2], "x": 3.5, "y": 0},
38 {"matrix": [1, 4], "x": 4.5, "y": 0}, 35 {"matrix": [1, 4], "x": 4.5, "y": 0},
39 {"matrix": [2, 3], "x": 5.5, "y": 0},
40 36
41 {"matrix": [0, 0], "x": 1.25, "y": 1.25}, 37 {"matrix": [0, 0], "x": 1.25, "y": 1.25},
42 {"matrix": [0, 1], "x": 2.25, "y": 1.25}, 38 {"matrix": [0, 1], "x": 2.25, "y": 1.25},
diff --git a/keyboards/nightly_boards/octopad/keymaps/default/keymap.c b/keyboards/nightly_boards/octopad/keymaps/default/keymap.c
index 7025c89375..78613e55ba 100644
--- a/keyboards/nightly_boards/octopad/keymaps/default/keymap.c
+++ b/keyboards/nightly_boards/octopad/keymaps/default/keymap.c
@@ -17,16 +17,15 @@
17 17
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Base */
21 /* ENC1_CCW, ENC1_P, ENC1_CW, ENC2_CCW, ENC2_P, ENC2_CW,
22 MACRO1, MACRO2, MACRO3, MACRO4,
23 MACRO5, MACRO6, MACRO7, MACRO8
24 */
25 [0] = LAYOUT( 20 [0] = LAYOUT(
26 KC_VOLD, KC_ESC, KC_VOLU, KC_BRID, QK_BOOT, KC_BRIU, 21 KC_ESC, QK_BOOT,
27 KC_Q, KC_W, KC_E, KC_R, 22 KC_Q, KC_W, KC_E, KC_R,
28 KC_A, KC_S, KC_D, KC_F 23 KC_A, KC_S, KC_D, KC_F
29 24 )
30 ),
31}; 25};
32 26
27#ifdef ENCODER_MAP_ENABLE
28const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
29 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
30};
31#endif
diff --git a/keyboards/nightly_boards/octopad/keymaps/default/rules.mk b/keyboards/nightly_boards/octopad/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/nightly_boards/octopad/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nightly_boards/octopad/keymaps/via/keymap.c b/keyboards/nightly_boards/octopad/keymaps/via/keymap.c
index 44c2d63cc7..2cb3b7ed99 100644
--- a/keyboards/nightly_boards/octopad/keymaps/via/keymap.c
+++ b/keyboards/nightly_boards/octopad/keymaps/via/keymap.c
@@ -17,57 +17,21 @@
17 17
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Base */
21 /* ENC1_CCW, ENC1_P, ENC1_CW, ENC2_CCW, ENC2_P, ENC2_CW,
22 MACRO1, MACRO2, MACRO3, MACRO4,
23 MACRO5, MACRO6, MACRO7, MACRO8
24 */
25 [0] = LAYOUT( 20 [0] = LAYOUT(
26 KC_VOLD, KC_ESC, KC_VOLU, KC_BRID, QK_BOOT, KC_BRIU, 21 KC_ESC, QK_BOOT,
27 KC_Q, KC_W, KC_E, KC_R, 22 KC_Q, KC_W, KC_E, KC_R,
28 KC_A, KC_S, KC_D, KC_F 23 KC_A, KC_S, KC_D, KC_F
29
30 ),
31 [1] = LAYOUT(
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
35
36 ),
37 [2] = LAYOUT(
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
41
42 ),
43 [3] = LAYOUT(
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
47
48 ),
49 [4] = LAYOUT(
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
53
54 ),
55 [5] = LAYOUT(
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
59
60 ),
61 [6] = LAYOUT(
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
64 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
65
66 ),
67 [7] = LAYOUT(
68 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
69 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
70 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
71
72 ), 24 ),
25 [1 ... 7] = LAYOUT(
26 _______, _______,
27 _______, _______, _______, _______,
28 _______, _______, _______, _______
29 )
30};
31
32#ifdef ENCODER_MAP_ENABLE
33const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
34 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
35 [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
73}; 36};
37#endif
diff --git a/keyboards/nightly_boards/octopad/keymaps/via/rules.mk b/keyboards/nightly_boards/octopad/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/nightly_boards/octopad/keymaps/via/rules.mk
+++ b/keyboards/nightly_boards/octopad/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nightly_boards/octopad/octopad.c b/keyboards/nightly_boards/octopad/octopad.c
deleted file mode 100644
index e05782677e..0000000000
--- a/keyboards/nightly_boards/octopad/octopad.c
+++ /dev/null
@@ -1,28 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "octopad.h"
18
19void matrix_scan_kb(void) {
20 encoder_action_unregister();
21 matrix_scan_user();
22}
23
24bool encoder_update_kb(uint8_t index, bool clockwise) {
25// if (!encoder_update_user(index, clockwise)) return false;
26 encoder_action_register(index, clockwise);
27 return true;
28};
diff --git a/keyboards/nightly_boards/octopad/octopad.h b/keyboards/nightly_boards/octopad/octopad.h
deleted file mode 100644
index 33cf8e0b68..0000000000
--- a/keyboards/nightly_boards/octopad/octopad.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20#include "encoder_action.h"
diff --git a/keyboards/nightly_boards/octopad/rules.mk b/keyboards/nightly_boards/octopad/rules.mk
index d36fbdc860..660f934499 100644
--- a/keyboards/nightly_boards/octopad/rules.mk
+++ b/keyboards/nightly_boards/octopad/rules.mk
@@ -12,6 +12,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
12RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 12RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
13AUDIO_ENABLE = yes # Audio output 13AUDIO_ENABLE = yes # Audio output
14ENCODER_ENABLE = yes # Enable Rotary Encoders 14ENCODER_ENABLE = yes # Enable Rotary Encoders
15
16# Added encoder Action
17SRC += encoder_action.c
diff --git a/keyboards/nullbitsco/tidbit/info.json b/keyboards/nullbitsco/tidbit/info.json
index 00e8a9d7df..0fb13a25c2 100644
--- a/keyboards/nullbitsco/tidbit/info.json
+++ b/keyboards/nullbitsco/tidbit/info.json
@@ -35,33 +35,21 @@
35 {"matrix": [0, 4], "x": 4.25, "y": 0}, 35 {"matrix": [0, 4], "x": 4.25, "y": 0},
36 {"matrix": [0, 5], "x": 5.25, "y": 0}, 36 {"matrix": [0, 5], "x": 5.25, "y": 0},
37 37
38 {"matrix": [1, 0], "x": 0, "y": 1},
39 {"matrix": [1, 1], "x": 1, "y": 1},
40
41 {"matrix": [1, 2], "x": 2.25, "y": 1}, 38 {"matrix": [1, 2], "x": 2.25, "y": 1},
42 {"matrix": [1, 3], "x": 3.25, "y": 1}, 39 {"matrix": [1, 3], "x": 3.25, "y": 1},
43 {"matrix": [1, 4], "x": 4.25, "y": 1}, 40 {"matrix": [1, 4], "x": 4.25, "y": 1},
44 {"matrix": [1, 5], "x": 5.25, "y": 1}, 41 {"matrix": [1, 5], "x": 5.25, "y": 1},
45 42
46 {"matrix": [2, 0], "x": 0, "y": 2},
47 {"matrix": [2, 1], "x": 1, "y": 2},
48
49 {"matrix": [2, 2], "x": 2.25, "y": 2}, 43 {"matrix": [2, 2], "x": 2.25, "y": 2},
50 {"matrix": [2, 3], "x": 3.25, "y": 2}, 44 {"matrix": [2, 3], "x": 3.25, "y": 2},
51 {"matrix": [2, 4], "x": 4.25, "y": 2}, 45 {"matrix": [2, 4], "x": 4.25, "y": 2},
52 {"matrix": [2, 5], "x": 5.25, "y": 2}, 46 {"matrix": [2, 5], "x": 5.25, "y": 2},
53 47
54 {"matrix": [3, 0], "x": 0, "y": 3},
55 {"matrix": [3, 1], "x": 1, "y": 3},
56
57 {"matrix": [3, 2], "x": 2.25, "y": 3}, 48 {"matrix": [3, 2], "x": 2.25, "y": 3},
58 {"matrix": [3, 3], "x": 3.25, "y": 3}, 49 {"matrix": [3, 3], "x": 3.25, "y": 3},
59 {"matrix": [3, 4], "x": 4.25, "y": 3}, 50 {"matrix": [3, 4], "x": 4.25, "y": 3},
60 {"matrix": [3, 5], "x": 5.25, "y": 3}, 51 {"matrix": [3, 5], "x": 5.25, "y": 3},
61 52
62 {"matrix": [4, 0], "x": 0, "y": 4},
63 {"matrix": [4, 1], "x": 1, "y": 4},
64
65 {"matrix": [4, 2], "x": 2.25, "y": 4}, 53 {"matrix": [4, 2], "x": 2.25, "y": 4},
66 {"matrix": [4, 3], "x": 3.25, "y": 4}, 54 {"matrix": [4, 3], "x": 3.25, "y": 4},
67 {"matrix": [4, 4], "x": 4.25, "y": 4}, 55 {"matrix": [4, 4], "x": 4.25, "y": 4},
diff --git a/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c
index 6cd9f48c94..e3d9152fea 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c
+++ b/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c
@@ -22,19 +22,26 @@ enum layers {
22}; 22};
23 23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 [_BASE] = LAYOUT( 25 [_BASE] = LAYOUT(
26 KC_PSLS, KC_PAST, KC_PMNS, 26 KC_PSLS, KC_PAST, KC_PMNS,
27 KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, 27 KC_P7, KC_P8, KC_P9, KC_PPLS,
28 KC_MPRV, KC_MNXT, KC_P4, KC_P5, KC_P6, KC_PPLS, 28 KC_P4, KC_P5, KC_P6, KC_PPLS,
29 KC_LEFT, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, 29 KC_P1, KC_P2, KC_P3, KC_PENT,
30 KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT 30 KC_P0, KC_P0, KC_PDOT, KC_PENT
31 ), 31 ),
32 32
33 [_FUNC] = LAYOUT( 33 [_FUNC] = LAYOUT(
34 _______, _______, _______, 34 _______, _______, _______,
35 _______, _______, _______, _______, _______, _______, 35 _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______ 38 _______, _______, _______, _______
39 ), 39 )
40}; 40};
41
42#ifdef ENCODER_MAP_ENABLE
43const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
44 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
45 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
46};
47#endif
diff --git a/keyboards/nullbitsco/tidbit/keymaps/default/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c
index 2555026534..96c26c50ab 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c
+++ b/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c
@@ -25,34 +25,40 @@ enum layers {
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT(
28 KC_PSLS, KC_PAST, KC_PMNS, 28 KC_PSLS, KC_PAST, KC_PMNS,
29 KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, 29 KC_P7, KC_P8, KC_P9, KC_PPLS,
30 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, 30 KC_P4, KC_P5, KC_P6, KC_PPLS,
31 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, 31 KC_P1, KC_P2, KC_P3, KC_PENT,
32 KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT 32 KC_P0, KC_P0, KC_PDOT, KC_PENT
33 ), 33 ),
34
35 [_VIA1] = LAYOUT( 34 [_VIA1] = LAYOUT(
36 _______, _______, _______, 35 _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______ 39 _______, _______, _______, _______
41 ), 40 ),
42
43 [_VIA2] = LAYOUT( 41 [_VIA2] = LAYOUT(
44 _______, _______, _______, 42 _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______ 46 _______, _______, _______, _______
49 ), 47 ),
50
51 [_VIA3] = LAYOUT( 48 [_VIA3] = LAYOUT(
52 _______, _______, _______, 49 _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, 50 _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, 51 _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, _______, 52 _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______ 53 _______, _______, _______, _______
57 ), 54 )
55};
56
57#ifdef ENCODER_MAP_ENABLE
58const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
59 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
60 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
61 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
62 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
58}; 63};
64#endif
diff --git a/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk
index ef531564fc..1b3509eac8 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk
+++ b/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk
@@ -1,3 +1,4 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2OLED_ENABLE = yes 2OLED_ENABLE = yes
3OLED_DRIVER = SSD1306 3OLED_DRIVER = SSD1306
4ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c
index 32306ef9d6..37bbaaab32 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c
+++ b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c
@@ -25,38 +25,44 @@ enum layer_names {
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_LAY0] = LAYOUT( 27 [_LAY0] = LAYOUT(
28 KC_PSLS, KC_PAST, KC_PMNS, 28 KC_PSLS, KC_PAST, KC_PMNS,
29 KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, 29 KC_P7, KC_P8, KC_P9, KC_PPLS,
30 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, 30 KC_P4, KC_P5, KC_P6, KC_PPLS,
31 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, 31 KC_P1, KC_P2, KC_P3, KC_PENT,
32 KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT 32 KC_P0, KC_P0, KC_PDOT, KC_PENT
33 ), 33 ),
34
35 [_LAY1] = LAYOUT( 34 [_LAY1] = LAYOUT(
36 _______, _______, _______, 35 _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______ 39 _______, _______, _______, _______
41 ), 40 ),
42
43 [_LAY2] = LAYOUT( 41 [_LAY2] = LAYOUT(
44 _______, _______, _______, 42 _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______ 46 _______, _______, _______, _______
49 ), 47 ),
50
51 [_LAY3] = LAYOUT( 48 [_LAY3] = LAYOUT(
52 _______, _______, _______, 49 _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, 50 _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, 51 _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, _______, 52 _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______ 53 _______, _______, _______, _______
57 ), 54 )
58}; 55};
59 56
57#ifdef ENCODER_MAP_ENABLE
58const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
59 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
60 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
61 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
62 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
63};
64#endif
65
60#ifdef OLED_ENABLE 66#ifdef OLED_ENABLE
61/*=========================================== OLED CONFIGURATION ===========================================*/ 67/*=========================================== OLED CONFIGURATION ===========================================*/
62#define OLED_ROTATE true // OLED rotation (flip 180* from default orientation) 68#define OLED_ROTATE true // OLED rotation (flip 180* from default orientation)
@@ -112,18 +118,18 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
112// Draw static background image to OLED (keyboard with no bottom row) 118// Draw static background image to OLED (keyboard with no bottom row)
113static void render_background(void) { 119static void render_background(void) {
114 static const char PROGMEM nullbits_n_oled[] = { 120 static const char PROGMEM nullbits_n_oled[] = {
115 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 121 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
116 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 122 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
117 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 123 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
118 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 124 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00,
119 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 125 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
120 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 126 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
121 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 127 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
122 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 128 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
123 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 129 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
124 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 130 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
125 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 131 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
126 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00, 132 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00,
127 }; 133 };
128 oled_write_raw_P(nullbits_n_oled, sizeof(nullbits_n_oled)); 134 oled_write_raw_P(nullbits_n_oled, sizeof(nullbits_n_oled));
129} 135}
diff --git a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk
index 1b72fd006a..605f034e1d 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk
+++ b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk
@@ -4,3 +4,4 @@ VIA_ENABLE = yes
4SPACE_CADET_ENABLE = no 4SPACE_CADET_ENABLE = no
5GRAVE_ESC_ENABLE = no 5GRAVE_ESC_ENABLE = no
6MAGIC_ENABLE = no 6MAGIC_ENABLE = no
7ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c
index 895b02c292..96c26c50ab 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c
+++ b/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c
@@ -24,36 +24,41 @@ enum layers {
24}; 24};
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT(
28 KC_PSLS, KC_PAST, KC_PMNS, 28 KC_PSLS, KC_PAST, KC_PMNS,
29 KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, 29 KC_P7, KC_P8, KC_P9, KC_PPLS,
30 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, 30 KC_P4, KC_P5, KC_P6, KC_PPLS,
31 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, 31 KC_P1, KC_P2, KC_P3, KC_PENT,
32 KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT 32 KC_P0, KC_P0, KC_PDOT, KC_PENT
33 ), 33 ),
34 34 [_VIA1] = LAYOUT(
35 [_VIA1] = LAYOUT( 35 _______, _______, _______,
36 _______, _______, _______, 36 _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, 39 _______, _______, _______, _______
40 _______, _______, _______, _______, _______, _______ 40 ),
41 ), 41 [_VIA2] = LAYOUT(
42 42 _______, _______, _______,
43 [_VIA2] = LAYOUT( 43 _______, _______, _______, _______,
44 _______, _______, _______, 44 _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______
47 _______, _______, _______, _______, _______, _______, 47 ),
48 _______, _______, _______, _______, _______, _______ 48 [_VIA3] = LAYOUT(
49 ), 49 _______, _______, _______,
50 50 _______, _______, _______, _______,
51 [_VIA3] = LAYOUT( 51 _______, _______, _______, _______,
52 _______, _______, _______, 52 _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, 53 _______, _______, _______, _______
54 _______, _______, _______, _______, _______, _______, 54 )
55 _______, _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______
57 ),
58}; 55};
59 56
57#ifdef ENCODER_MAP_ENABLE
58const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
59 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
60 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
61 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
62 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
63};
64#endif
diff --git a/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk
index 036bd6d1c3..f1adcab005 100644
--- a/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk
+++ b/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes \ No newline at end of file 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/nullbitsco/tidbit/tidbit.c b/keyboards/nullbitsco/tidbit/tidbit.c
index eea5a5d54c..15bc0f6a7a 100644
--- a/keyboards/nullbitsco/tidbit/tidbit.c
+++ b/keyboards/nullbitsco/tidbit/tidbit.c
@@ -18,20 +18,6 @@
18#include "common/remote_kb.h" 18#include "common/remote_kb.h"
19#include "common/bitc_led.h" 19#include "common/bitc_led.h"
20 20
21typedef struct PACKED {
22 uint8_t r;
23 uint8_t c;
24} encodermap_t;
25
26// Map encoders to their respective virtual matrix entry
27// Allows for encoder control using VIA
28const encodermap_t encoder_map[4][2] = {
29 {{1, 0}, {1, 1}}, // Encoder 1 matrix location
30 {{2, 0}, {2, 1}}, // Encoder 2 matrix location
31 {{3, 0}, {3, 1}}, // Encoder 3 matrix location
32 {{4, 0}, {4, 1}}, // Encoder 4 matrix location
33};
34
35bool numlock_set = false; 21bool numlock_set = false;
36 22
37#ifdef OLED_ENABLE 23#ifdef OLED_ENABLE
@@ -41,40 +27,40 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
41 27
42static void render_logo(void) { 28static void render_logo(void) {
43 static const char PROGMEM tidbit_oled[] = { 29 static const char PROGMEM tidbit_oled[] = {
44 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 30 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
45 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 31 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff,
46 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 32 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f,
47 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 33 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00,
48 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 34 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
49 0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 35 0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
50 0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 36 0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
51 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00, 37 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00,
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
54 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 40 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
55 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0, 41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0,
56 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 42 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
57 0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 43 0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 44 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 45 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
62 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 48 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03, 49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03,
64 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 50 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
65 0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 51 0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
66 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 52 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
67 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 53 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f, 54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 55 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
70 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 56 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8,
71 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00, 57 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00,
72 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 58 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
73 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 59 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
74 0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 60 0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 61 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
76 }; 62 };
77 63
78 oled_write_raw_P(tidbit_oled, sizeof(tidbit_oled)); 64 oled_write_raw_P(tidbit_oled, sizeof(tidbit_oled));
79}; 65};
80 66
@@ -86,20 +72,6 @@ bool oled_task_kb(void) {
86 72
87#endif 73#endif
88 74
89static void process_encoder_matrix(encodermap_t pos) {
90 action_exec(MAKE_KEYEVENT(pos.r, pos.c, true));
91#if TAP_CODE_DELAY > 0
92 wait_ms(TAP_CODE_DELAY);
93#endif
94 action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
95}
96
97bool encoder_update_kb(uint8_t index, bool clockwise) {
98 if (!encoder_update_user(index, clockwise)) return false;
99 process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]);
100 return false;
101}
102
103// Use Bit-C LED to show NUM LOCK status 75// Use Bit-C LED to show NUM LOCK status
104void led_update_ports(led_t led_state) { 76void led_update_ports(led_t led_state) {
105 set_bitc_LED(led_state.num_lock ? LED_DIM : LED_OFF); 77 set_bitc_LED(led_state.num_lock ? LED_DIM : LED_OFF);
diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c
index 57a216f30a..65c0ee7eed 100644
--- a/keyboards/owlab/voice65/hotswap/hotswap.c
+++ b/keyboards/owlab/voice65/hotswap/hotswap.c
@@ -14,7 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include "hotswap.h" 17#include "quantum.h"
18 18
19#ifdef RGB_MATRIX_ENABLE 19#ifdef RGB_MATRIX_ENABLE
20const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { 20const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
@@ -122,329 +122,3 @@ bool rgb_matrix_indicators_kb(void) {
122 } 122 }
123 return true; 123 return true;
124} 124}
125
126enum encoder_modes{
127 ENCODER_MODE_ONE,
128 ENCODER_MODE_TWO,
129 ENCODER_MODE_THREE
130};
131
132keyboard_config_t keyboard_config;
133rgblight_config_t rgblight_config;
134
135uint8_t pre_hue, pre_sat, pre_val;
136uint8_t previous_rgb_mode = 0;
137uint8_t dir_hue, dir_sat;
138
139bool encoder_in = false;
140uint32_t encoder_timer;
141
142bool encoder_ani_start= false;
143uint32_t encoder_ani_timer = 0;
144
145bool encoder_direction_start = false;
146uint32_t encoder_direction_timer = 0;
147
148
149bool lizm_restart_snake = false;
150void rgblight_snake_restart(uint8_t hue, uint8_t sat, uint8_t val){
151 lizm_restart_snake = true; // restart signal to local each effect
152 rgblight_config.hue = hue;
153 rgblight_config.sat = sat;
154 rgblight_config.val = val;
155}
156
157
158void keyboard_post_init_kb(void){
159 keyboard_config.raw = eeconfig_read_kb();
160 if( keyboard_config.encoder_mode_index > ENCODER_MODE_THREE ){
161 keyboard_config.encoder_mode_index = ENCODER_MODE_ONE;
162 eeconfig_update_kb(keyboard_config.raw);
163 }
164}
165
166void switch_encoder_mode(uint8_t mode){
167 switch(mode){
168 case ENCODER_MODE_ONE:
169 dir_hue = 88;
170 dir_sat = 255;
171 break;
172
173 case ENCODER_MODE_TWO:
174 dir_hue = 0;
175 dir_sat = 240;
176 break;
177
178 case ENCODER_MODE_THREE:
179 dir_hue = 176;
180 dir_sat = 255;
181 break;
182 }
183 rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val);
184}
185
186
187void init_encoder_mode(uint8_t mode){
188 previous_rgb_mode = rgblight_get_mode();
189 pre_hue = rgblight_get_hue();
190 pre_sat = rgblight_get_sat();
191 pre_val = rgblight_get_val();
192 encoder_in = true;
193
194 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
195
196 switch_encoder_mode(mode);
197}
198
199
200void set_encoder_mode(uint8_t mode){
201 if(encoder_in == false){
202 init_encoder_mode(mode);
203 }else{
204 switch_encoder_mode(mode);
205 }
206 eeconfig_update_kb(keyboard_config.raw);
207 encoder_timer = timer_read32();
208}
209
210bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
211 if (record->event.pressed) {
212 switch(keycode) {
213 case RGB_MOD:
214 case RGB_RMOD:
215 case RGB_HUI:
216 case RGB_HUD:
217 case RGB_SAI:
218 case RGB_SAD:
219 case RGB_VAI:
220 case RGB_VAD:
221
222 if(encoder_in){
223 return false;
224 }
225 break;
226
227 case KC_F13:
228 rgb_matrix_toggle();
229 break;
230
231 case KC_F14:
232 rgb_matrix_step();
233 break;
234
235 case KC_F15:
236 rgb_matrix_step_reverse();
237 break;
238
239 case KC_F16:
240 rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs
241 break;
242
243 case KC_F17:
244 rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs
245 break;
246
247 case KC_F18:
248 rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs
249 break;
250
251 case KC_F19:
252 rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs
253 break;
254
255 case KC_F20:
256 rgb_matrix_increase_val(); //Increase the value for effect range LEDs
257 break;
258
259 case KC_F21:
260 rgb_matrix_decrease_val();//Decrease the value for effect range LEDs
261 break;
262
263 case KC_F22: //change encoder mode upward
264 if(!encoder_direction_start){
265 if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){
266 keyboard_config.encoder_mode_index++;
267 }
268 else{
269 keyboard_config.encoder_mode_index = ENCODER_MODE_ONE;
270 }
271 set_encoder_mode(keyboard_config.encoder_mode_index);
272 }
273 return false;
274 case KC_F23:
275 if(!encoder_direction_start){
276 if(keyboard_config.encoder_mode_index > ENCODER_MODE_ONE){
277 keyboard_config.encoder_mode_index--;
278 }
279 else{
280 keyboard_config.encoder_mode_index = ENCODER_MODE_THREE;
281 }
282 set_encoder_mode(keyboard_config.encoder_mode_index);
283 }
284 return false;
285
286 default:
287 break;
288 }
289 }
290 return process_record_user(keycode, record);
291}
292
293
294void matrix_scan_kb(void) {
295 if(encoder_in){
296 if(timer_elapsed32(encoder_timer) > 5000){
297 rgblight_mode(previous_rgb_mode);
298 rgblight_sethsv(pre_hue, pre_sat, pre_val);
299 encoder_in = false;
300 }
301 }
302
303 if(encoder_ani_start){
304 if(timer_elapsed32(encoder_ani_timer) > VOLUME_ANIMATION_TIMER){
305 encoder_ani_start = false;
306 rgblight_sethsv_noeeprom(0,0,0);
307 }
308 }
309
310 if(encoder_direction_start){
311 if(timer_elapsed32(encoder_direction_timer) > (VOLUME_ANIMATION_TIMER+1500)){
312 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
313 rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val);
314 encoder_direction_start = false;
315 }
316 }
317 matrix_scan_user();
318}
319
320
321void set_volume_animation(bool increase){
322 if(!encoder_ani_start){
323 rgblight_snake_restart(dir_hue, dir_sat, pre_val);
324 }
325
326 if(increase){
327 rgblight_mode_noeeprom(17);
328 } else {
329 rgblight_mode_noeeprom(18);
330 }
331
332 encoder_ani_timer = timer_read32();
333 encoder_direction_timer = encoder_ani_timer;
334 encoder_ani_start = true;
335 encoder_direction_start = true;
336}
337
338
339bool encoder_update_kb(uint8_t index, bool clockwise) {
340 uint8_t layer_now = keyboard_config.encoder_mode_index +1;
341 uint16_t encoder_cw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=1 });
342 uint16_t encoder_ccw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=2 });
343 if (index == 0) { /* First encoder */
344 if(encoder_in == false){
345 init_encoder_mode(keyboard_config.encoder_mode_index);
346 }
347
348 if (!clockwise) {
349 switch(encoder_cw_keycode) {
350
351 case KC_F13:
352 rgb_matrix_toggle();
353 break;
354
355 case KC_F14:
356 rgb_matrix_step();
357 break;
358
359 case KC_F15:
360 rgb_matrix_step_reverse();
361 break;
362
363 case KC_F16:
364 rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs
365 break;
366
367 case KC_F17:
368 rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs
369 break;
370
371 case KC_F18:
372 rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs
373 break;
374
375 case KC_F19:
376 rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs
377 break;
378
379 case KC_F20:
380 rgb_matrix_increase_val(); //Increase the value for effect range LEDs
381 break;
382
383 case KC_F21:
384 rgb_matrix_decrease_val();//Decrease the value for effect range LEDs
385 break;
386
387 case KC_VOLU:
388 case KC_VOLD:
389 tap_code(encoder_cw_keycode);
390 break;
391
392 default:
393 tap_code(encoder_cw_keycode);
394 break;
395 }
396 set_volume_animation(true);
397 } else {
398 switch(encoder_ccw_keycode) {
399
400 case KC_F13:
401 rgb_matrix_toggle();
402 break;
403
404 case KC_F14:
405 rgb_matrix_step();
406 break;
407
408 case KC_F15:
409 rgb_matrix_step_reverse();
410 break;
411
412 case KC_F16:
413 rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs
414 break;
415
416 case KC_F17:
417 rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs
418 break;
419
420 case KC_F18:
421 rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs
422 break;
423
424 case KC_F19:
425 rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs
426 break;
427
428 case KC_F20:
429 rgb_matrix_increase_val(); //Increase the value for effect range LEDs
430 break;
431
432 case KC_F21:
433 rgb_matrix_decrease_val();//Decrease the value for effect range LEDs
434 break;
435
436 case KC_VOLU:
437 case KC_VOLD:
438 tap_code(encoder_ccw_keycode);
439 break;
440
441 default:
442 tap_code(encoder_ccw_keycode);
443 break;
444 }
445 set_volume_animation(false);
446 }
447 encoder_timer = timer_read32();
448 }
449 return true;
450}
diff --git a/keyboards/owlab/voice65/hotswap/hotswap.h b/keyboards/owlab/voice65/hotswap/hotswap.h
deleted file mode 100644
index 6536af4c49..0000000000
--- a/keyboards/owlab/voice65/hotswap/hotswap.h
+++ /dev/null
@@ -1,30 +0,0 @@
1/* Copyright 2021 kb-elmo<mail@elmo.space>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21typedef union {
22 uint32_t raw;
23 struct {
24 uint8_t encoder_mode_index :8;
25 };
26} keyboard_config_t;
27
28extern keyboard_config_t keyboard_config;
29
30#define VOLUME_ANIMATION_TIMER 580
diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c
index 055f93e188..061104a775 100644
--- a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c
+++ b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c
@@ -16,35 +16,44 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18// How long (in ms) to wait between animation steps for the snake mode 18// How long (in ms) to wait between animation steps for the snake mode
19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; 19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20};
20 20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 [0] = LAYOUT_65_ansi_blocker( 22 [0] = LAYOUT_65_ansi_blocker(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 [1] = LAYOUT_65_ansi_blocker( 29 [1] = LAYOUT_65_ansi_blocker(
30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, 30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT,
31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, 31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME,
32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, 32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, 33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS 34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS
35 ), 35 ),
36 [2] = LAYOUT_65_ansi_blocker( 36 [2] = LAYOUT_65_ansi_blocker(
37 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, 37 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,
38 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, 38 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,
39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 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, 40 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,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42 ), 42 ),
43 [3] = LAYOUT_65_ansi_blocker( 43 [3] = LAYOUT_65_ansi_blocker(
44 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, 44 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,
45 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, 45 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,
46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 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, 47 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,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 ) 49 )
50}; \ No newline at end of file 50};
51
52#ifdef ENCODER_MAP_ENABLE
53const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
54 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
55 [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
56 [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
57 [3] = { ENCODER_CCW_CW(_______, _______) },
58};
59#endif
diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk b/keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c
index 68801ff2f8..061104a775 100644
--- a/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c
+++ b/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c
@@ -16,36 +16,44 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18// How long (in ms) to wait between animation steps for the snake mode 18// How long (in ms) to wait between animation steps for the snake mode
19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; 19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20};
20 20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 [0] = LAYOUT_65_ansi_blocker( 22 [0] = LAYOUT_65_ansi_blocker(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 [1] = LAYOUT_65_ansi_blocker( 29 [1] = LAYOUT_65_ansi_blocker(
30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, 30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT,
31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, 31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME,
32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, 32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, 33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS 34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS
35 ), 35 ),
36 [2] = LAYOUT_65_ansi_blocker( 36 [2] = LAYOUT_65_ansi_blocker(
37 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, 37 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,
38 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, 38 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,
39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 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, 40 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,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42 ), 42 ),
43 [3] = LAYOUT_65_ansi_blocker( 43 [3] = LAYOUT_65_ansi_blocker(
44 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, 44 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,
45 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, 45 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,
46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 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, 47 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,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 ) 49 )
50}; 50};
51 51
52#ifdef ENCODER_MAP_ENABLE
53const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
54 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
55 [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
56 [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
57 [3] = { ENCODER_CCW_CW(_______, _______) },
58};
59#endif
diff --git a/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk b/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk
+++ b/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c
index 055f93e188..061104a775 100644
--- a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c
+++ b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c
@@ -16,35 +16,44 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18// How long (in ms) to wait between animation steps for the snake mode 18// How long (in ms) to wait between animation steps for the snake mode
19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; 19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20};
20 20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 [0] = LAYOUT_65_ansi_blocker( 22 [0] = LAYOUT_65_ansi_blocker(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 [1] = LAYOUT_65_ansi_blocker( 29 [1] = LAYOUT_65_ansi_blocker(
30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, 30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT,
31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, 31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME,
32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, 32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, 33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS 34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS
35 ), 35 ),
36 [2] = LAYOUT_65_ansi_blocker( 36 [2] = LAYOUT_65_ansi_blocker(
37 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, 37 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,
38 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, 38 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,
39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 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, 40 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,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42 ), 42 ),
43 [3] = LAYOUT_65_ansi_blocker( 43 [3] = LAYOUT_65_ansi_blocker(
44 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, 44 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,
45 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, 45 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,
46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 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, 47 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,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 ) 49 )
50}; \ No newline at end of file 50};
51
52#ifdef ENCODER_MAP_ENABLE
53const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
54 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
55 [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
56 [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
57 [3] = { ENCODER_CCW_CW(_______, _______) },
58};
59#endif
diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/rules.mk b/keyboards/owlab/voice65/soldered/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/owlab/voice65/soldered/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c
index 055f93e188..061104a775 100644
--- a/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c
+++ b/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c
@@ -16,35 +16,44 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18// How long (in ms) to wait between animation steps for the snake mode 18// How long (in ms) to wait between animation steps for the snake mode
19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; 19const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20};
20 20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 [0] = LAYOUT_65_ansi_blocker( 22 [0] = LAYOUT_65_ansi_blocker(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 [1] = LAYOUT_65_ansi_blocker( 29 [1] = LAYOUT_65_ansi_blocker(
30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, 30 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT,
31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, 31 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME,
32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, 32 KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, 33 KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS 34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS
35 ), 35 ),
36 [2] = LAYOUT_65_ansi_blocker( 36 [2] = LAYOUT_65_ansi_blocker(
37 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, 37 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,
38 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, 38 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,
39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 39 KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 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, 40 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,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42 ), 42 ),
43 [3] = LAYOUT_65_ansi_blocker( 43 [3] = LAYOUT_65_ansi_blocker(
44 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, 44 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,
45 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, 45 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,
46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 46 KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 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, 47 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,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 ) 49 )
50}; \ No newline at end of file 50};
51
52#ifdef ENCODER_MAP_ENABLE
53const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
54 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
55 [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
56 [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
57 [3] = { ENCODER_CCW_CW(_______, _______) },
58};
59#endif
diff --git a/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk b/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk
+++ b/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c
index cfdaaad4ae..1444b05864 100644
--- a/keyboards/owlab/voice65/soldered/soldered.c
+++ b/keyboards/owlab/voice65/soldered/soldered.c
@@ -14,7 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include "soldered.h" 17#include "quantum.h"
18 18
19#ifdef RGB_MATRIX_ENABLE 19#ifdef RGB_MATRIX_ENABLE
20const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { 20const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
@@ -126,330 +126,3 @@ bool rgb_matrix_indicators_kb(void) {
126 } 126 }
127 return true; 127 return true;
128} 128}
129
130enum encoder_modes{
131 ENCODER_MODE_ONE,
132 ENCODER_MODE_TWO,
133 ENCODER_MODE_THREE
134};
135
136keyboard_config_t keyboard_config;
137rgblight_config_t rgblight_config;
138
139uint8_t pre_hue, pre_sat, pre_val;
140uint8_t previous_rgb_mode = 0;
141uint8_t dir_hue, dir_sat;
142
143bool encoder_in = false;
144uint32_t encoder_timer;
145
146bool encoder_ani_start= false;
147uint32_t encoder_ani_timer = 0;
148
149bool encoder_direction_start = false;
150uint32_t encoder_direction_timer = 0;
151
152
153bool lizm_restart_snake = false;
154void rgblight_snake_restart(uint8_t hue, uint8_t sat, uint8_t val){
155 lizm_restart_snake = true; // restart signal to local each effect
156 rgblight_config.hue = hue;
157 rgblight_config.sat = sat;
158 rgblight_config.val = val;
159}
160
161
162void keyboard_post_init_kb(void){
163 keyboard_config.raw = eeconfig_read_kb();
164 if( keyboard_config.encoder_mode_index > ENCODER_MODE_THREE ){
165 keyboard_config.encoder_mode_index = ENCODER_MODE_ONE;
166 eeconfig_update_kb(keyboard_config.raw);
167 }
168}
169
170void switch_encoder_mode(uint8_t mode){
171 switch(mode){
172 case ENCODER_MODE_ONE:
173 dir_hue = 88;
174 dir_sat = 255;
175 break;
176
177 case ENCODER_MODE_TWO:
178 dir_hue = 0;
179 dir_sat = 240;
180 break;
181
182 case ENCODER_MODE_THREE:
183 dir_hue = 176;
184 dir_sat = 255;
185 break;
186 }
187 rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val);
188}
189
190
191void init_encoder_mode(uint8_t mode){
192 previous_rgb_mode = rgblight_get_mode();
193 pre_hue = rgblight_get_hue();
194 pre_sat = rgblight_get_sat();
195 pre_val = rgblight_get_val();
196 encoder_in = true;
197
198 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
199
200 switch_encoder_mode(mode);
201}
202
203
204void set_encoder_mode(uint8_t mode){
205 if(encoder_in == false){
206 init_encoder_mode(mode);
207 }else{
208 switch_encoder_mode(mode);
209 }
210 eeconfig_update_kb(keyboard_config.raw);
211 encoder_timer = timer_read32();
212}
213
214bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
215 if (record->event.pressed) {
216 switch(keycode) {
217 case RGB_MOD:
218 case RGB_RMOD:
219 case RGB_HUI:
220 case RGB_HUD:
221 case RGB_SAI:
222 case RGB_SAD:
223 case RGB_VAI:
224 case RGB_VAD:
225
226 if(encoder_in){
227 return false;
228 }
229 break;
230
231 case KC_F13:
232 rgb_matrix_toggle();
233 break;
234
235 case KC_F14:
236 rgb_matrix_step();
237 break;
238
239 case KC_F15:
240 rgb_matrix_step_reverse();
241 break;
242
243 case KC_F16:
244 rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs
245 break;
246
247 case KC_F17:
248 rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs
249 break;
250
251 case KC_F18:
252 rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs
253 break;
254
255 case KC_F19:
256 rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs
257 break;
258
259 case KC_F20:
260 rgb_matrix_increase_val(); //Increase the value for effect range LEDs
261 break;
262
263 case KC_F21:
264 rgb_matrix_decrease_val();//Decrease the value for effect range LEDs
265 break;
266
267 case KC_F22: //change encoder mode upward
268 if(!encoder_direction_start){
269 if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){
270 keyboard_config.encoder_mode_index++;
271 }
272 else{
273 keyboard_config.encoder_mode_index = ENCODER_MODE_ONE;
274 }
275 set_encoder_mode(keyboard_config.encoder_mode_index);
276 }
277 return false;
278
279 case KC_F23:
280 if(!encoder_direction_start){
281 if(keyboard_config.encoder_mode_index > ENCODER_MODE_ONE){
282 keyboard_config.encoder_mode_index--;
283 }
284 else{
285 keyboard_config.encoder_mode_index = ENCODER_MODE_THREE;
286 }
287 set_encoder_mode(keyboard_config.encoder_mode_index);
288 }
289 return false;
290
291 default:
292 break;
293 }
294 }
295 return process_record_user(keycode, record);
296}
297
298
299void matrix_scan_kb(void) {
300 if(encoder_in){
301 if(timer_elapsed32(encoder_timer) > 5000){
302 rgblight_mode(previous_rgb_mode);
303 rgblight_sethsv(pre_hue, pre_sat, pre_val);
304 encoder_in = false;
305 }
306 }
307
308 if(encoder_ani_start){
309 if(timer_elapsed32(encoder_ani_timer) > VOLUME_ANIMATION_TIMER){
310 encoder_ani_start = false;
311 rgblight_sethsv_noeeprom(0,0,0);
312 }
313 }
314
315 if(encoder_direction_start){
316 if(timer_elapsed32(encoder_direction_timer) > (VOLUME_ANIMATION_TIMER+1500)){
317 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
318 rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val);
319 encoder_direction_start = false;
320 }
321 }
322 matrix_scan_user();
323}
324
325
326void set_volume_animation(bool increase){
327 if(!encoder_ani_start){
328 rgblight_snake_restart(dir_hue, dir_sat, pre_val);
329 }
330
331 if(increase){
332 rgblight_mode_noeeprom(17);
333 } else {
334 rgblight_mode_noeeprom(18);
335 }
336
337 encoder_ani_timer = timer_read32();
338 encoder_direction_timer = encoder_ani_timer;
339 encoder_ani_start = true;
340 encoder_direction_start = true;
341}
342
343
344bool encoder_update_kb(uint8_t index, bool clockwise) {
345 uint8_t layer_now = keyboard_config.encoder_mode_index +1;
346 uint16_t encoder_cw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=1 });
347 uint16_t encoder_ccw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=2 });
348 if (index == 0) { /* First encoder */
349 if(encoder_in == false){
350 init_encoder_mode(keyboard_config.encoder_mode_index);
351 }
352
353 if (!clockwise) {
354 switch(encoder_cw_keycode) {
355
356 case KC_F13:
357 rgb_matrix_toggle();
358 break;
359
360 case KC_F14:
361 rgb_matrix_step();
362 break;
363
364 case KC_F15:
365 rgb_matrix_step_reverse();
366 break;
367
368 case KC_F16:
369 rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs
370 break;
371
372 case KC_F17:
373 rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs
374 break;
375
376 case KC_F18:
377 rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs
378 break;
379
380 case KC_F19:
381 rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs
382 break;
383
384 case KC_F20:
385 rgb_matrix_increase_val(); //Increase the value for effect range LEDs
386 break;
387
388 case KC_F21:
389 rgb_matrix_decrease_val();//Decrease the value for effect range LEDs
390 break;
391
392 case KC_VOLU:
393 case KC_VOLD:
394 tap_code(encoder_cw_keycode);
395 break;
396
397 default:
398 tap_code(encoder_cw_keycode);
399 break;
400 }
401 set_volume_animation(true);
402 } else {
403 switch(encoder_ccw_keycode) {
404
405 case KC_F13:
406 rgb_matrix_toggle();
407 break;
408
409 case KC_F14:
410 rgb_matrix_step();
411 break;
412
413 case KC_F15:
414 rgb_matrix_step_reverse();
415 break;
416
417 case KC_F16:
418 rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs
419 break;
420
421 case KC_F17:
422 rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs
423 break;
424
425 case KC_F18:
426 rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs
427 break;
428
429 case KC_F19:
430 rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs
431 break;
432
433 case KC_F20:
434 rgb_matrix_increase_val(); //Increase the value for effect range LEDs
435 break;
436
437 case KC_F21:
438 rgb_matrix_decrease_val();//Decrease the value for effect range LEDs
439 break;
440
441 case KC_VOLU:
442 case KC_VOLD:
443 tap_code(encoder_ccw_keycode);
444 break;
445
446 default:
447 tap_code(encoder_ccw_keycode);
448 break;
449 }
450 set_volume_animation(false);
451 }
452 encoder_timer = timer_read32();
453 }
454 return true;
455}
diff --git a/keyboards/owlab/voice65/soldered/soldered.h b/keyboards/owlab/voice65/soldered/soldered.h
deleted file mode 100644
index 2c10428cec..0000000000
--- a/keyboards/owlab/voice65/soldered/soldered.h
+++ /dev/null
@@ -1,30 +0,0 @@
1/* Copyright 2021 kb-elmo<mail@elmo.space>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21typedef union {
22 uint32_t raw;
23 struct {
24 uint8_t encoder_mode_index :8;
25 };
26} keyboard_config_t;
27
28extern keyboard_config_t keyboard_config;
29
30#define VOLUME_ANIMATION_TIMER 580
diff --git a/keyboards/rate/pistachio_mp/keymaps/default/keymap.c b/keyboards/rate/pistachio_mp/keymaps/default/keymap.c
index 86f88d9143..e73abd09eb 100644
--- a/keyboards/rate/pistachio_mp/keymaps/default/keymap.c
+++ b/keyboards/rate/pistachio_mp/keymaps/default/keymap.c
@@ -41,16 +41,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 KC_NO, KC_NO, KC_NO 41 KC_NO, KC_NO, KC_NO
42 ) 42 )
43}; 43};
44#ifdef ENCODER_ENABLE
45bool encoder_update_user(uint8_t index, bool clockwise) {
46 if (index == 0) {
47 // Volume control
48 if (clockwise) {
49 tap_code(KC_VOLU);
50 } else {
51 tap_code(KC_VOLD);
52 }
53 }
54 return true;
55}
56#endif
diff --git a/keyboards/rate/pistachio_mp/keymaps/via/keymap.c b/keyboards/rate/pistachio_mp/keymaps/via/keymap.c
index f459a76970..fb920e628f 100644
--- a/keyboards/rate/pistachio_mp/keymaps/via/keymap.c
+++ b/keyboards/rate/pistachio_mp/keymaps/via/keymap.c
@@ -23,29 +23,10 @@ enum layer_names {
23 _RESERVE_1 23 _RESERVE_1
24}; 24};
25 25
26static uint8_t encoder_state = 0;
27static const keypos_t ENC_CW = {.row = 3, .col = 3};
28static const keypos_t ENC_CCW = {.row = 4, .col = 1};
29
30#define LAYOUT_via( \
31 ECW,ECCW, K07, \
32 K00, K01, K02, K03, \
33 K04, K05, K06, \
34 K08, K09, K10, K11, \
35 K12, K13, K14, \
36 K15, K16, K17 ) { \
37 { K00, K01, K02, K03 }, \
38 { K04, K05, K06, K07 }, \
39 { K08, K09, K10, K11 }, \
40 { K12, K13, K14, ECCW }, \
41 { K15, ECW, K16, K17 }, \
42}
43
44
45const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 /* Base */ 27 /* Base */
47 [_BASE] = LAYOUT_via( 28 [_BASE] = LAYOUT(
48 KC_VOLU,KC_VOLD,KC_MPLY, 29 KC_MPLY,
49 LT(_FN, KC_NUM), KC_PSLS, KC_PAST, KC_PMNS, 30 LT(_FN, KC_NUM), KC_PSLS, KC_PAST, KC_PMNS,
50 KC_P7, KC_P8, KC_P9, 31 KC_P7, KC_P8, KC_P9,
51 KC_P4, KC_P5, KC_P6, KC_PPLS, 32 KC_P4, KC_P5, KC_P6, KC_PPLS,
@@ -53,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
53 KC_P0, KC_PDOT, KC_PENT 34 KC_P0, KC_PDOT, KC_PENT
54 ), 35 ),
55 /* Fn */ 36 /* Fn */
56 [_FN] = LAYOUT_via( 37 [_FN] = LAYOUT(
57 KC_VOLU,KC_VOLD,KC_NO, 38 KC_NO,
58 KC_NO, KC_NO, KC_NO, KC_NO, 39 KC_NO, KC_NO, KC_NO, KC_NO,
59 RGB_HUI, RGB_SAI, RGB_VAI, 40 RGB_HUI, RGB_SAI, RGB_VAI,
60 RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, 41 RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG,
@@ -62,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62 KC_NO, KC_NO, KC_NO 43 KC_NO, KC_NO, KC_NO
63 ), 44 ),
64 /* Reserve */ 45 /* Reserve */
65 [_RESERVE_0] = LAYOUT_via( 46 [_RESERVE_0] = LAYOUT(
66 KC_VOLU,KC_VOLD,KC_TRNS, 47 KC_TRNS,
67 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
68 KC_TRNS, KC_TRNS, KC_TRNS, 49 KC_TRNS, KC_TRNS, KC_TRNS,
69 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -71,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 KC_TRNS, KC_TRNS, KC_TRNS 52 KC_TRNS, KC_TRNS, KC_TRNS
72 ), 53 ),
73 /* Reserve */ 54 /* Reserve */
74 [_RESERVE_1] = LAYOUT_via( 55 [_RESERVE_1] = LAYOUT(
75 KC_VOLU,KC_VOLD,KC_TRNS, 56 KC_TRNS,
76 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
77 KC_TRNS, KC_TRNS, KC_TRNS, 58 KC_TRNS, KC_TRNS, KC_TRNS,
78 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -81,43 +62,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
81 ), 62 ),
82}; 63};
83 64
84#ifdef ENCODER_ENABLE 65#ifdef ENCODER_MAP_ENABLE
85void encoder_action_unregister(void) { 66const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
86 if (encoder_state) { 67 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
87 keyevent_t encoder_event = (keyevent_t) { 68 [1] = { ENCODER_CCW_CW(_______, _______) },
88 .key = encoder_state >> 1 ? ENC_CW : ENC_CCW, 69 [2] = { ENCODER_CCW_CW(_______, _______) },
89 .pressed = false, 70 [3] = { ENCODER_CCW_CW(_______, _______) },
90 .time = timer_read(),
91 .type = KEY_EVENT
92 };
93 encoder_state = 0;
94 action_exec(encoder_event);
95 }
96 return;
97}
98
99void encoder_action_register(uint8_t index, bool clockwise) {
100 keyevent_t encoder_event = (keyevent_t) {
101 .key = clockwise ? ENC_CW : ENC_CCW,
102 .pressed = true,
103 .time = timer_read(),
104 .type = KEY_EVENT
105 };
106 encoder_state = (clockwise ^ 1) | (clockwise << 1);
107 action_exec(encoder_event);
108 return;
109}
110
111void matrix_scan_kb(void) {
112 encoder_action_unregister();
113 matrix_scan_user();
114 return;
115}
116
117bool encoder_update_kb(uint8_t index, bool clockwise) {
118 encoder_action_register(index, clockwise);
119 // don't return user actions, because they are in the keymap
120 // encoder_update_user(index, clockwise);
121 return true;
122}; 71};
123#endif 72#endif
diff --git a/keyboards/rate/pistachio_mp/keymaps/via/rules.mk b/keyboards/rate/pistachio_mp/keymaps/via/rules.mk
index 036bd6d1c3..f1adcab005 100644
--- a/keyboards/rate/pistachio_mp/keymaps/via/rules.mk
+++ b/keyboards/rate/pistachio_mp/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes \ No newline at end of file 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rate/pistachio_pro/keymaps/default/keymap.c b/keyboards/rate/pistachio_pro/keymaps/default/keymap.c
index 5a543ef11c..a757bcce32 100644
--- a/keyboards/rate/pistachio_pro/keymaps/default/keymap.c
+++ b/keyboards/rate/pistachio_pro/keymaps/default/keymap.c
@@ -91,20 +91,6 @@ bool oled_task_user(void) {
91 return false; 91 return false;
92} 92}
93 93
94/* Encoder */
95bool encoder_update_user(uint8_t index, bool clockwise) {
96 if (index == 0) {
97 // Volume control
98 if (clockwise) {
99 tap_code(KC_VOLU);
100 } else {
101 tap_code(KC_VOLD);
102 }
103 }
104
105 return true;
106}
107
108/* Keyboard */ 94/* Keyboard */
109void keyboard_post_init_user(void) { 95void keyboard_post_init_user(void) {
110 bme280_init(); 96 bme280_init();
diff --git a/keyboards/rate/pistachio_pro/keymaps/via/keymap.c b/keyboards/rate/pistachio_pro/keymaps/via/keymap.c
index b5b8e3c440..870cd53cbd 100644
--- a/keyboards/rate/pistachio_pro/keymaps/via/keymap.c
+++ b/keyboards/rate/pistachio_pro/keymaps/via/keymap.c
@@ -26,30 +26,10 @@ enum layer_names {
26 _RESERVE_1 26 _RESERVE_1
27}; 27};
28 28
29static uint8_t encoder_state = 0;
30static const keypos_t ENC_CW = {.row = 0, .col = 14 };
31static const keypos_t ENC_CCW = {.row = 0, .col = 15 };
32
33#define LAYOUT_via( \
34 k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, ENC_CW, ENC_CCW, k013, \
35 k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117, \
36 k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, \
37 k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
38 k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, \
39 k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k510, k511, k512, k513 ) { \
40 { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ENC_CW, ENC_CCW, KC_NO, KC_NO }, \
41 { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117 }, \
42 { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, KC_NO, KC_NO }, \
43 { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, KC_NO, KC_NO, KC_NO }, \
44 { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, KC_NO, KC_NO, KC_NO, KC_NO }, \
45 { k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k510, k511, k512, k513, KC_NO, KC_NO, KC_NO, KC_NO } \
46}
47
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 /* Base */ 30 /* Base */
51 [_BASE] = LAYOUT_via( 31 [_BASE] = LAYOUT_via(
52 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU,KC_VOLD,KC_MPLY, 32 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY,
53 JP_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, 33 JP_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
54 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_DEL, KC_END, KC_PGDN, 34 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_DEL, KC_END, KC_PGDN,
55 JP_EISU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, 35 JP_EISU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT,
@@ -57,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
57 KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, KC_SPC, LT(_FN, JP_HENK), JP_KANA, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 37 KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, KC_SPC, LT(_FN, JP_HENK), JP_KANA, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
58 ), 38 ),
59 [_FN] = LAYOUT_via( 39 [_FN] = LAYOUT_via(
60 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_VOLU,KC_VOLD,KC_MPLY, 40 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_MPLY,
61 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, 41 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,
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS, 42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS,
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, 43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS,
@@ -65,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, JP_DOT, JP_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, JP_DOT, JP_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
66 ), 46 ),
67 [_RESERVE_0] = LAYOUT_via( 47 [_RESERVE_0] = LAYOUT_via(
68 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_VOLU,KC_VOLD,KC_MPLY, 48 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_MPLY,
69 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, 49 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,
70 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, 50 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,
71 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, 51 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,
@@ -73,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
73 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 53 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
74 ), 54 ),
75 [_RESERVE_1] = LAYOUT_via( 55 [_RESERVE_1] = LAYOUT_via(
76 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_VOLU,KC_VOLD,KC_MPLY, 56 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_MPLY,
77 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, 57 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,
78 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, 58 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,
79 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, 59 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,
@@ -129,40 +109,6 @@ bool oled_task_user(void) {
129 return false; 109 return false;
130} 110}
131 111
132/* Encoder */
133void encoder_action_unregister(void) {
134 if (encoder_state) {
135 keyevent_t encoder_event = (keyevent_t) {
136 .key = encoder_state >> 1 ? ENC_CW : ENC_CCW,
137 .pressed = false,
138 .time = timer_read(),
139 .type = KEY_EVENT
140 };
141 encoder_state = 0;
142 action_exec(encoder_event);
143 }
144}
145
146void encoder_action_register(uint8_t index, bool clockwise) {
147 keyevent_t encoder_event = (keyevent_t) {
148 .key = clockwise ? ENC_CW : ENC_CCW,
149 .pressed = true,
150 .time = timer_read(),
151 .type = KEY_EVENT
152 };
153 encoder_state = (clockwise ^ 1) | (clockwise << 1);
154 action_exec(encoder_event);
155}
156
157void matrix_scan_user(void) {
158 encoder_action_unregister();
159}
160
161bool encoder_update_user(uint8_t index, bool clockwise) {
162 encoder_action_register(index, clockwise);
163 return false;
164}
165
166/* Keyboard */ 112/* Keyboard */
167void keyboard_post_init_user(void) { 113void keyboard_post_init_user(void) {
168 bme280_init(); 114 bme280_init();
@@ -179,3 +125,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
179 125
180 return true; 126 return true;
181} 127}
128
129#ifdef ENCODER_MAP_ENABLE
130const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
131 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
132 [1] = { ENCODER_CCW_CW(_______, _______) },
133 [2] = { ENCODER_CCW_CW(_______, _______) },
134 [3] = { ENCODER_CCW_CW(_______, _______) },
135};
136#endif
diff --git a/keyboards/rate/pistachio_pro/keymaps/via/rules.mk b/keyboards/rate/pistachio_pro/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/rate/pistachio_pro/keymaps/via/rules.mk
+++ b/keyboards/rate/pistachio_pro/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/mun/keymaps/default/keymap.c b/keyboards/rgbkb/mun/keymaps/default/keymap.c
index a1b9dcfe46..3173b9836f 100644
--- a/keyboards/rgbkb/mun/keymaps/default/keymap.c
+++ b/keyboards/rgbkb/mun/keymaps/default/keymap.c
@@ -66,9 +66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 66 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
67 * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl | 67 * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl |
68 * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' 68 * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
69 * Encoder 1 Encoder 2 Encoder 3 Encoder 4
70 * .-----------------------------------. .-----------------------------------.
71 * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn |
72 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| 69 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
73 * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | 70 * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI |
74 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' 71 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
@@ -80,7 +77,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
80 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, 77 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT,
81 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, 78 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL,
82 79
83 KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP,
84 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD 80 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD
85 ), 81 ),
86 82
@@ -91,7 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
91 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 87 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
93 89
94 _______, _______, _______, _______, _______, _______, _______, _______,
95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
96 ), 91 ),
97 92
@@ -102,7 +97,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
102 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 97 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
103 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 98 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
104 99
105 _______, _______, _______, _______, _______, _______, _______, _______,
106 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 100 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
107 ), 101 ),
108 102
@@ -113,7 +107,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 107 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
114 _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 108 _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
115 109
116 _______, _______, _______, _______, _______, _______, _______, _______,
117 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
118 ), 111 ),
119 112
@@ -124,7 +117,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, 117 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME,
125 _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, 118 _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK,
126 119
127 _______, _______, _______, _______, _______, _______, _______, _______,
128 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 120 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
129 ), 121 ),
130 122
@@ -135,7 +127,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
135 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
136 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 128 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
137 129
138 _______, _______, _______, _______, _______, _______, _______, _______,
139 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 130 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
140 ), 131 ),
141 132
@@ -146,7 +137,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
146 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 138 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
148 139
149 _______, _______, _______, _______, _______, _______, _______, _______,
150 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 140 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
151 ), 141 ),
152 142
@@ -157,7 +147,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
157 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
158 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 148 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
159 149
160 _______, _______, _______, _______, _______, _______, _______, _______,
161 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 150 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
162 ), 151 ),
163}; 152};
@@ -251,3 +240,10 @@ bool oled_task_user(void) {
251oled_rotation_t oled_init_user(oled_rotation_t rotation) { 240oled_rotation_t oled_init_user(oled_rotation_t rotation) {
252 return OLED_ROTATION_270; 241 return OLED_ROTATION_270;
253} 242}
243
244#ifdef ENCODER_MAP_ENABLE
245const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
246 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
247 [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
248};
249#endif
diff --git a/keyboards/rgbkb/mun/keymaps/default/rules.mk b/keyboards/rgbkb/mun/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/rgbkb/mun/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c b/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c
index 8767edbb57..1b2bb9a95a 100644
--- a/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c
+++ b/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c
@@ -42,40 +42,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' 42 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
43 */ 43 */
44 [_BASE] = LAYOUT( 44 [_BASE] = LAYOUT(
45 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 45 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
46 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 46 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
47 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_END, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 47 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_END, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
48 SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, 48 SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
49 KC_LCTL, KC_LGUI, KC_LALT, MO(3), DEL_FUNC, SPC_LHND, SPC_LHND, BSP_FUNC, BSP_FUNC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, 49 KC_LCTL, KC_LGUI, KC_LALT, MO(3), DEL_FUNC, SPC_LHND, SPC_LHND, BSP_FUNC, BSP_FUNC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL,
50 // Here we have the encoder setup. Encoder 0 clockwise, Encoder 0 counter-clockwise, Encoder 1 clockwise, Encoder 1 counter-clockwise , then right side 50 // Here we have the encoder setup. Encoder 0 clockwise, Encoder 0 counter-clockwise, Encoder 1 clockwise, Encoder 1 counter-clockwise , then right side
51 KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD, RGB_TOG, RGB_MOD 51 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD, RGB_TOG, RGB_MOD
52 ), 52 ),
53 [_LHAND] = LAYOUT( 53 [_LHAND] = LAYOUT(
54 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, 54 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, 55 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, 56 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
57 KC_LSFT, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_RSFT, 57 KC_LSFT, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_RSFT,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, 58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS,
59 // Encoders. 59 // Encoders.
60 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 60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
61 ), 61 ),
62 [_FUNC] = LAYOUT( 62 [_FUNC] = LAYOUT(
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, QK_BOOT, 63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, QK_BOOT,
64 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, 64 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,
65 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, 65 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,
66 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, 66 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,
67 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, 67 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,
68 // Encoders. 68 // Encoders.
69 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 69 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
70 ), 70 ),
71 // Placeholder layer! 71 // Placeholder layer!
72 [3] = LAYOUT( 72 [3] = LAYOUT(
73 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 73 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
74 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 74 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
75 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 75 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
76 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 76 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
77 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 77 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
78 // Encoders. 78 // Encoders.
79 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO 79 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
80 ) 80 )
81}; \ No newline at end of file 81};
82
83#ifdef ENCODER_MAP_ENABLE
84const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
85 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
86 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
87 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
88 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
89};
90#endif
diff --git a/keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk b/keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/mun/keymaps/via/keymap.c b/keyboards/rgbkb/mun/keymaps/via/keymap.c
index a1b9dcfe46..3173b9836f 100644
--- a/keyboards/rgbkb/mun/keymaps/via/keymap.c
+++ b/keyboards/rgbkb/mun/keymaps/via/keymap.c
@@ -66,9 +66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 66 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
67 * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl | 67 * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl |
68 * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' 68 * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
69 * Encoder 1 Encoder 2 Encoder 3 Encoder 4
70 * .-----------------------------------. .-----------------------------------.
71 * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn |
72 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| 69 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
73 * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | 70 * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI |
74 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' 71 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
@@ -80,7 +77,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
80 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, 77 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT,
81 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, 78 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL,
82 79
83 KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP,
84 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD 80 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD
85 ), 81 ),
86 82
@@ -91,7 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
91 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 87 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
93 89
94 _______, _______, _______, _______, _______, _______, _______, _______,
95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
96 ), 91 ),
97 92
@@ -102,7 +97,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
102 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 97 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
103 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 98 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
104 99
105 _______, _______, _______, _______, _______, _______, _______, _______,
106 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 100 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
107 ), 101 ),
108 102
@@ -113,7 +107,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 107 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
114 _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 108 _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
115 109
116 _______, _______, _______, _______, _______, _______, _______, _______,
117 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
118 ), 111 ),
119 112
@@ -124,7 +117,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, 117 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME,
125 _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, 118 _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK,
126 119
127 _______, _______, _______, _______, _______, _______, _______, _______,
128 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 120 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
129 ), 121 ),
130 122
@@ -135,7 +127,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
135 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
136 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 128 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
137 129
138 _______, _______, _______, _______, _______, _______, _______, _______,
139 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 130 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
140 ), 131 ),
141 132
@@ -146,7 +137,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
146 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 138 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
148 139
149 _______, _______, _______, _______, _______, _______, _______, _______,
150 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 140 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
151 ), 141 ),
152 142
@@ -157,7 +147,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
157 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
158 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 148 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
159 149
160 _______, _______, _______, _______, _______, _______, _______, _______,
161 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 150 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
162 ), 151 ),
163}; 152};
@@ -251,3 +240,10 @@ bool oled_task_user(void) {
251oled_rotation_t oled_init_user(oled_rotation_t rotation) { 240oled_rotation_t oled_init_user(oled_rotation_t rotation) {
252 return OLED_ROTATION_270; 241 return OLED_ROTATION_270;
253} 242}
243
244#ifdef ENCODER_MAP_ENABLE
245const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
246 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
247 [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
248};
249#endif
diff --git a/keyboards/rgbkb/mun/keymaps/via/rules.mk b/keyboards/rgbkb/mun/keymaps/via/rules.mk
index 40bded3991..74b4513b04 100644
--- a/keyboards/rgbkb/mun/keymaps/via/rules.mk
+++ b/keyboards/rgbkb/mun/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE=yes \ No newline at end of file 1VIA_ENABLE=yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c b/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c
index 960cc9266d..8180f3daa5 100644
--- a/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c
+++ b/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c
@@ -46,9 +46,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 46 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
47 * | Ctrl- | Win | Alt | Del | Space | | ADJ | | FN | | Space | '" | Alt | App | Ctrl= | 47 * | Ctrl- | Win | Alt | Del | Space | | ADJ | | FN | | Space | '" | Alt | App | Ctrl= |
48 * '--------+--------+--------+--------|--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' 48 * '--------+--------+--------+--------|--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
49 * Encoder 1 Encoder 2 Encoder 3 Encoder 4
50 * .-----------------------------------. .-----------------------------------.
51 * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn |
52 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| 49 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
53 * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | 50 * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI |
54 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' 51 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
@@ -60,7 +57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
60 SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, 57 SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
61 SC_LCPO, KC_LGUI, KC_LALT, KC_DEL, KC_SPC, KC_NO, ADJ, FN, KC_NO, KC_SPC, KC_QUOTE,KC_RALT, KC_APP, SC_RCPC, 58 SC_LCPO, KC_LGUI, KC_LALT, KC_DEL, KC_SPC, KC_NO, ADJ, FN, KC_NO, KC_SPC, KC_QUOTE,KC_RALT, KC_APP, SC_RCPC,
62 59
63 KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, MENU_DN, MENU_UP, MENU_DN, MENU_UP,
64 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD 60 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD
65 ), 61 ),
66 62
@@ -76,9 +72,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 72 * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
77 * | | | | | | | | | | | Play | Prev | Next | VolUp | VolDn | 73 * | | | | | | | | | | | Play | Prev | Next | VolUp | VolDn |
78 * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' 74 * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------'
79 * Encoder 1 Encoder 2 Encoder 3 Encoder 4
80 * .-----------------------------------. .-----------------------------------.
81 * | | | | | | | | | |
82 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| 75 * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------|
83 * | | | | | | Touch Encoder Touch Encoder | | | | | | 76 * | | | | | | Touch Encoder Touch Encoder | | | | | |
84 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' 77 * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------'
@@ -90,7 +83,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
90 _______, RGB_RST, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, 83 _______, RGB_RST, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______,
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD, 84 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD,
92 85
93 _______, _______, _______, _______, _______, _______, _______, _______,
94 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 86 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
95 ), 87 ),
96 88
@@ -120,7 +112,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
120 _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, 112 _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
121 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______, 113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______,
122 114
123 _______, _______, _______, _______, _______, _______, _______, _______,
124 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
125 ) 116 )
126}; 117};
@@ -247,3 +238,11 @@ bool oled_task_user(void) {
247oled_rotation_t oled_init_user(oled_rotation_t rotation) { 238oled_rotation_t oled_init_user(oled_rotation_t rotation) {
248 return OLED_ROTATION_270; 239 return OLED_ROTATION_270;
249} 240}
241
242#ifdef ENCODER_MAP_ENABLE
243const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
244 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MENU_DN, MENU_UP), ENCODER_CCW_CW(MENU_DN, MENU_UP) },
245 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
246 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
247};
248#endif
diff --git a/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk b/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk
index a087f669da..e6b71e56d1 100644
--- a/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk
+++ b/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk
@@ -1,3 +1,5 @@
1MOUSEKEY_ENABLE = yes # using for mouse wheel up and down, more granular than page up/down 1MOUSEKEY_ENABLE = yes # using for mouse wheel up and down, more granular than page up/down
2 2
3OPT_DEFS += -DRGB_UNLIMITED_POWER \ No newline at end of file 3OPT_DEFS += -DRGB_UNLIMITED_POWER
4
5ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/mun/rev1/info.json b/keyboards/rgbkb/mun/rev1/info.json
index 865ff816e5..16d18f4d22 100644
--- a/keyboards/rgbkb/mun/rev1/info.json
+++ b/keyboards/rgbkb/mun/rev1/info.json
@@ -118,16 +118,6 @@
118 {"matrix": [11, 1], "x": 12.5, "y": 4}, 118 {"matrix": [11, 1], "x": 12.5, "y": 4},
119 {"matrix": [11, 0], "x": 13.5, "y": 4}, 119 {"matrix": [11, 0], "x": 13.5, "y": 4},
120 120
121 {"matrix": [5, 0], "x": 0, "y": 5.5},
122 {"matrix": [5, 1], "x": 1, "y": 5.5},
123 {"matrix": [5, 2], "x": 2, "y": 5.5},
124 {"matrix": [5, 3], "x": 3, "y": 5.5},
125
126 {"matrix": [12, 0], "x": 10.5, "y": 5.5},
127 {"matrix": [12, 1], "x": 11.5, "y": 5.5},
128 {"matrix": [12, 2], "x": 12.5, "y": 5.5},
129 {"matrix": [12, 3], "x": 13.5, "y": 5.5},
130
131 {"matrix": [6, 0], "x": 0, "y": 6.5}, 121 {"matrix": [6, 0], "x": 0, "y": 6.5},
132 {"matrix": [6, 1], "x": 1, "y": 6.5}, 122 {"matrix": [6, 1], "x": 1, "y": 6.5},
133 {"matrix": [6, 2], "x": 2, "y": 6.5}, 123 {"matrix": [6, 2], "x": 2, "y": 6.5},
diff --git a/keyboards/rgbkb/mun/rev1/rev1.c b/keyboards/rgbkb/mun/rev1/rev1.c
index 564ce4dfb9..986916b4a9 100644
--- a/keyboards/rgbkb/mun/rev1/rev1.c
+++ b/keyboards/rgbkb/mun/rev1/rev1.c
@@ -12,25 +12,12 @@
12#define NUMBER_OF_TOUCH_ENCODERS 2 12#define NUMBER_OF_TOUCH_ENCODERS 2
13#define TOUCH_ENCODER_OPTIONS TOUCH_SEGMENTS + 2 13#define TOUCH_ENCODER_OPTIONS TOUCH_SEGMENTS + 2
14 14
15#define NUMBER_OF_ENCODERS 4
16#define ENCODER_OPTIONS 2
17
18typedef struct PACKED { 15typedef struct PACKED {
19 uint8_t r; 16 uint8_t r;
20 uint8_t c; 17 uint8_t c;
21} encodermap_t; 18} encodermap_t;
22 19
23// this maps encoders and then touch encoders to their respective electrical matrix entry 20const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] =
24// mapping is row (y) then column (x) when looking at the electrical layout
25const encodermap_t encoder_map[NUMBER_OF_ENCODERS][ENCODER_OPTIONS] =
26{
27 { { 5, 0 }, { 5, 1 } }, // Encoder 1 matrix entries
28 { { 5, 2 }, { 5, 3 } }, // Encoder 2 matrix entries
29 { { 12, 0 }, { 12, 1 } }, // Encoder 3 matrix entries
30 { { 12, 2 }, { 12, 3 } }, // Encoder 4 matrix entries
31};
32
33const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] =
34{ 21{
35 { { 6, 0 }, { 6, 1 }, { 6, 2 }, { 6, 3 }, { 6, 4 } }, // Touch Encoder 1 matrix entries 22 { { 6, 0 }, { 6, 1 }, { 6, 2 }, { 6, 3 }, { 6, 4 } }, // Touch Encoder 1 matrix entries
36 { { 13, 0 }, { 13, 1 }, { 13, 2 }, { 13, 3 }, { 13, 4 } } // Touch Encoder 2 matrix entries 23 { { 13, 0 }, { 13, 1 }, { 13, 2 }, { 13, 3 }, { 13, 4 } } // Touch Encoder 2 matrix entries
@@ -44,24 +31,6 @@ static void process_encoder_matrix(encodermap_t pos) {
44 action_exec(MAKE_KEYEVENT(pos.r, pos.c, false)); 31 action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
45} 32}
46 33
47bool encoder_update_kb(uint8_t index, bool clockwise) {
48 if (!encoder_update_user(index, clockwise))
49 return false;
50
51 // Mapping clockwise (typically increase) to zero, and counter clockwise (decrease) to 1
52 process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]);
53 return false;
54}
55
56bool touch_encoder_update_kb(uint8_t index, bool clockwise) {
57 if (!touch_encoder_update_user(index, clockwise))
58 return false;
59
60 // Mapping clockwise (typically increase) to zero, and counter clockwise (decrease) to 1
61 process_encoder_matrix(touch_encoder_map[index][clockwise ? 0 : 1]);
62 return false;
63}
64
65bool touch_encoder_tapped_kb(uint8_t index, uint8_t section) { 34bool touch_encoder_tapped_kb(uint8_t index, uint8_t section) {
66 if (!touch_encoder_tapped_user(index, section)) 35 if (!touch_encoder_tapped_user(index, section))
67 return false; 36 return false;
diff --git a/keyboards/rgbkb/sol3/keymaps/default/keymap.c b/keyboards/rgbkb/sol3/keymaps/default/keymap.c
index 19499ab3c3..a60a5cbda3 100644
--- a/keyboards/rgbkb/sol3/keymaps/default/keymap.c
+++ b/keyboards/rgbkb/sol3/keymaps/default/keymap.c
@@ -23,9 +23,6 @@
23 * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤ ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘ 23 * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤ ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘
24 * │ │ DEL │ │ Enter│ │ 24 * │ │ DEL │ │ Enter│ │
25 * └──────┴──────┘ └──────┴──────┘ 25 * └──────┴──────┘ └──────┴──────┘
26 * ┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐
27 * │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│ │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│
28 * └──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘
29 * ┌──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┐ 26 * ┌──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┐
30 * │Vol Dn│Vol Up│ Prev │ Play │ Next │ │Vol Dn│Vol Up│ Prev │ Play │ Next │ 27 * │Vol Dn│Vol Up│ Prev │ Play │ Next │ │Vol Dn│Vol Up│ Prev │ Play │ Next │
31 * └──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┘ 28 * └──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┘
@@ -65,7 +62,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, 62 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT,
66 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, 63 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL,
67 64
68 KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU,
69 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV 65 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV
70 ), 66 ),
71 67
@@ -76,7 +72,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 72 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
78 74
79 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
81 ), 76 ),
82 77
@@ -87,7 +82,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
87 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 82 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
88 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 83 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
89 84
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
92 ), 86 ),
93 87
@@ -98,7 +92,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
98 _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 92 _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
99 _______, CK_TOGG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 93 _______, CK_TOGG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
100 94
101 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
103 ), 96 ),
104 97
@@ -109,7 +102,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
109 _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, 102 _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME,
110 _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, 103 _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK,
111 104
112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
114 ), 106 ),
115 107
@@ -171,3 +163,12 @@ void render_layer_status(void) {
171 oled_write_ln_P(PSTR("Undef"), false); 163 oled_write_ln_P(PSTR("Undef"), false);
172 } 164 }
173} 165}
166
167#ifdef ENCODER_MAP_ENABLE
168const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
169 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
170 ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
171 [1 ... 4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______),
172 ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
173};
174#endif
diff --git a/keyboards/rgbkb/sol3/keymaps/default/rules.mk b/keyboards/rgbkb/sol3/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/rgbkb/sol3/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c b/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c
index ab8f7d0ce3..49ab63842d 100644
--- a/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c
+++ b/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c
@@ -28,7 +28,6 @@ extern keymap_config_t keymap_config;
28 * `-------------' `--------=----' 28 * `-------------' `--------=----'
29 */ 29 */
30#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__, \ 30#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__, \
31 KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, \
32 KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU ) 31 KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU )
33 32
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -59,3 +58,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 ) 58 )
60 59
61}; 60};
61
62#ifdef ENCODER_MAP_ENABLE
63const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
64 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
65 ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
66 [1 ... 4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______),
67 ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
68};
69#endif
diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk b/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk
+++ b/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/sol3/keymaps/via/keymap.c b/keyboards/rgbkb/sol3/keymaps/via/keymap.c
index 1147925908..4d69a5ec6b 100644
--- a/keyboards/rgbkb/sol3/keymaps/via/keymap.c
+++ b/keyboards/rgbkb/sol3/keymaps/via/keymap.c
@@ -23,9 +23,6 @@
23 * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤ ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘ 23 * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤ ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘
24 * │ │ DEL │ │ Enter│ │ 24 * │ │ DEL │ │ Enter│ │
25 * └──────┴──────┘ └──────┴──────┘ 25 * └──────┴──────┘ └──────┴──────┘
26 * ┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐
27 * │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│ │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│
28 * └──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘
29 * ┌──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┐ 26 * ┌──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┐
30 * │Vol Dn│Vol Up│ Prev │ Play │ Next │ │Vol Dn│Vol Up│ Prev │ Play │ Next │ 27 * │Vol Dn│Vol Up│ Prev │ Play │ Next │ │Vol Dn│Vol Up│ Prev │ Play │ Next │
31 * └──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┘ 28 * └──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┘
@@ -68,7 +65,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, 65 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT,
69 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, 66 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL,
70 67
71 KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU,
72 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV 68 KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV
73 ), 69 ),
74 70
@@ -79,7 +75,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
79 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 75 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
81 77
82 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
83 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
84 ), 79 ),
85 80
@@ -90,7 +85,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
90 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 85 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
91 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 86 _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
92 87
93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
94 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
95 ), 89 ),
96 90
@@ -101,7 +95,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
101 _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 95 _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
102 _______, CK_TOGG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 96 _______, CK_TOGG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
103 97
104 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
106 ), 99 ),
107 100
@@ -112,7 +105,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
112 _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, 105 _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME,
113 _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, 106 _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK,
114 107
115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 108 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
117 ), 109 ),
118 110
@@ -123,7 +115,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
123 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
124 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
125 117
126 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 118 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
128 ), 119 ),
129 120
@@ -134,7 +125,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
134 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 125 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
135 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 126 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
136 127
137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
138 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 128 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
139 ), 129 ),
140 130
@@ -145,7 +135,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
145 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 135 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
146 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 136 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
147 137
148 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
149 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 138 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
150 ) 139 )
151 140
@@ -216,3 +205,12 @@ void render_layer_status(void) {
216 oled_write_ln_P(PSTR("Undef"), false); 205 oled_write_ln_P(PSTR("Undef"), false);
217 } 206 }
218} 207}
208
209#ifdef ENCODER_MAP_ENABLE
210const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
211 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
212 ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
213 [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______),
214 ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
215};
216#endif
diff --git a/keyboards/rgbkb/sol3/keymaps/via/rules.mk b/keyboards/rgbkb/sol3/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/rgbkb/sol3/keymaps/via/rules.mk
+++ b/keyboards/rgbkb/sol3/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json
index 6db25dab19..d8c1280239 100644
--- a/keyboards/rgbkb/sol3/rev1/info.json
+++ b/keyboards/rgbkb/sol3/rev1/info.json
@@ -136,20 +136,6 @@
136 {"matrix": [10, 1], "x": 14.5, "y": 4}, 136 {"matrix": [10, 1], "x": 14.5, "y": 4},
137 {"matrix": [10, 0], "x": 15.5, "y": 4, "w": 1.5}, 137 {"matrix": [10, 0], "x": 15.5, "y": 4, "w": 1.5},
138 138
139 {"matrix": [5, 0], "x": 0, "y": 7, "w": 0.8, "h": 0.8},
140 {"matrix": [5, 1], "x": 0.8, "y": 7, "w": 0.8, "h": 0.8},
141 {"matrix": [5, 2], "x": 1.6, "y": 7, "w": 0.8, "h": 0.8},
142 {"matrix": [5, 3], "x": 2.4, "y": 7, "w": 0.8, "h": 0.8},
143 {"matrix": [5, 4], "x": 3.2, "y": 7, "w": 0.8, "h": 0.8},
144 {"matrix": [5, 5], "x": 4, "y": 7, "w": 0.8, "h": 0.8},
145
146 {"matrix": [11, 0], "x": 12.2, "y": 7, "w": 0.8, "h": 0.8},
147 {"matrix": [11, 1], "x": 13, "y": 7, "w": 0.8, "h": 0.8},
148 {"matrix": [11, 2], "x": 13.8, "y": 7, "w": 0.8, "h": 0.8},
149 {"matrix": [11, 3], "x": 14.6, "y": 7, "w": 0.8, "h": 0.8},
150 {"matrix": [11, 4], "x": 15.4, "y": 7, "w": 0.8, "h": 0.8},
151 {"matrix": [11, 5], "x": 16.2, "y": 7, "w": 0.8, "h": 0.8},
152
153 {"matrix": [0, 7], "x": 0, "y": 7.8, "w": 0.8, "h": 0.8}, 139 {"matrix": [0, 7], "x": 0, "y": 7.8, "w": 0.8, "h": 0.8},
154 {"matrix": [1, 7], "x": 0.8, "y": 7.8, "w": 0.8, "h": 0.8}, 140 {"matrix": [1, 7], "x": 0.8, "y": 7.8, "w": 0.8, "h": 0.8},
155 {"matrix": [2, 7], "x": 1.6, "y": 7.8, "w": 0.8, "h": 0.8}, 141 {"matrix": [2, 7], "x": 1.6, "y": 7.8, "w": 0.8, "h": 0.8},
diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c
index ff330a83d6..e853ed9b98 100644
--- a/keyboards/rgbkb/sol3/rev1/rev1.c
+++ b/keyboards/rgbkb/sol3/rev1/rev1.c
@@ -13,27 +13,12 @@
13#define NUMBER_OF_TOUCH_ENCODERS 2 13#define NUMBER_OF_TOUCH_ENCODERS 2
14#define TOUCH_ENCODER_OPTIONS TOUCH_SEGMENTS + 2 14#define TOUCH_ENCODER_OPTIONS TOUCH_SEGMENTS + 2
15 15
16#define NUMBER_OF_ENCODERS 6
17#define ENCODER_OPTIONS 2
18
19typedef struct PACKED { 16typedef struct PACKED {
20 uint8_t r; 17 uint8_t r;
21 uint8_t c; 18 uint8_t c;
22} encodermap_t; 19} encodermap_t;
23 20
24// this maps encoders and then touch encoders to their respective electrical matrix entry 21const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] =
25// mapping is row (y) then column (x) when looking at the electrical layout
26const encodermap_t encoder_map[NUMBER_OF_ENCODERS][ENCODER_OPTIONS] =
27{
28 { { 5, 0 }, { 5, 1 } }, // Encoder 0 matrix entries
29 { { 5, 2 }, { 5, 3 } }, // Encoder 1 matrix entries
30 { { 5, 4 }, { 5, 5 } }, // Encoder 2 matrix entries
31 { { 11, 0 }, { 11, 1 } }, // Encoder 3 matrix entries
32 { { 11, 2 }, { 11, 3 } }, // Encoder 4 matrix entries
33 { { 11, 4 }, { 11, 5 } } // Encoder 5 matrix entries
34};
35
36const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] =
37{ 22{
38 { { 1, 7 }, { 0, 7 }, { 2, 7 }, { 5, 6 }, { 5, 7 }, }, // Touch Encoder 0 matrix entries 23 { { 1, 7 }, { 0, 7 }, { 2, 7 }, { 5, 6 }, { 5, 7 }, }, // Touch Encoder 0 matrix entries
39 { { 7, 7 }, { 6, 7 }, { 8, 7 }, { 11, 6 }, { 11, 7 }, } // Touch Encoder 1 matrix entries 24 { { 7, 7 }, { 6, 7 }, { 8, 7 }, { 11, 6 }, { 11, 7 }, } // Touch Encoder 1 matrix entries
@@ -43,7 +28,7 @@ static bool limit_lightning = true;
43 28
44RGB rgb_matrix_hsv_to_rgb(HSV hsv) { 29RGB rgb_matrix_hsv_to_rgb(HSV hsv) {
45 if (limit_lightning) hsv.v /= 2; 30 if (limit_lightning) hsv.v /= 2;
46 return hsv_to_rgb(hsv); 31 return hsv_to_rgb(hsv);
47} 32}
48 33
49bool dip_switch_update_kb(uint8_t index, bool active) { 34bool dip_switch_update_kb(uint8_t index, bool active) {
@@ -72,15 +57,6 @@ static void process_encoder_matrix(encodermap_t pos) {
72 action_exec(MAKE_KEYEVENT(pos.r, pos.c, false)); 57 action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
73} 58}
74 59
75bool encoder_update_kb(uint8_t index, bool clockwise) {
76 if (!encoder_update_user(index, clockwise))
77 return false;
78
79 // Mapping clockwise (typically increase) to zero, and counter clockwise (decrease) to 1
80 process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]);
81 return false;
82}
83
84bool touch_encoder_update_kb(uint8_t index, bool clockwise) { 60bool touch_encoder_update_kb(uint8_t index, bool clockwise) {
85 if (!touch_encoder_update_user(index, clockwise)) 61 if (!touch_encoder_update_user(index, clockwise))
86 return false; 62 return false;
@@ -189,7 +165,7 @@ void rgb_matrix_increase_flags(void)
189#endif 165#endif
190 166
191 167
192__attribute__((weak)) 168__attribute__((weak))
193void render_layer_status(void) { 169void render_layer_status(void) {
194 // Keymap specific, expected to be overridden 170 // Keymap specific, expected to be overridden
195 // Host Keyboard Layer Status 171 // Host Keyboard Layer Status
@@ -245,7 +221,7 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
245bool oled_task_kb(void) { 221bool oled_task_kb(void) {
246 if (!oled_task_user()) 222 if (!oled_task_user())
247 return false; 223 return false;
248 224
249 if (is_keyboard_left()) { 225 if (is_keyboard_left()) {
250 render_icon(); 226 render_icon();
251 oled_write_P(PSTR(" "), false); 227 oled_write_P(PSTR(" "), false);
diff --git a/keyboards/rmi_kb/chevron/info.json b/keyboards/rmi_kb/chevron/info.json
index ef1d823536..48f4373c26 100644
--- a/keyboards/rmi_kb/chevron/info.json
+++ b/keyboards/rmi_kb/chevron/info.json
@@ -10,7 +10,7 @@
10 }, 10 },
11 "matrix_pins": { 11 "matrix_pins": {
12 "cols": ["A5", "A6", "A7", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "A4", "A3", "A2", "B4"], 12 "cols": ["A5", "A6", "A7", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "A4", "A3", "A2", "B4"],
13 "rows": ["D5", "D6", "C0", "D7", null] 13 "rows": ["D5", "D6", "C0", "D7"]
14 }, 14 },
15 "diode_direction": "COL2ROW", 15 "diode_direction": "COL2ROW",
16 "encoder": { 16 "encoder": {
@@ -136,66 +136,6 @@
136 {"matrix": [3, 12], "x": 12, "y": 4, "w": 1.25}, 136 {"matrix": [3, 12], "x": 12, "y": 4, "w": 1.25},
137 {"matrix": [3, 13], "x": 13.25, "y": 4, "w": 1.25} 137 {"matrix": [3, 13], "x": 13.25, "y": 4, "w": 1.25}
138 ] 138 ]
139 },
140 "LAYOUT_all": {
141 "layout": [
142 {"matrix": [4, 0], "x": 11.5, "y": 0},
143 {"matrix": [1, 13], "x": 12.5, "y": 0},
144 {"matrix": [4, 1], "x": 13.5, "y": 0},
145
146 {"matrix": [0, 0], "x": 0, "y": 1},
147 {"matrix": [0, 1], "x": 1, "y": 1},
148 {"matrix": [0, 2], "x": 2, "y": 1},
149 {"matrix": [0, 3], "x": 3, "y": 1},
150 {"matrix": [0, 4], "x": 4, "y": 1},
151 {"matrix": [0, 5], "x": 5, "y": 1},
152 {"matrix": [0, 6], "x": 6, "y": 1},
153 {"matrix": [0, 7], "x": 7, "y": 1},
154 {"matrix": [0, 8], "x": 8, "y": 1},
155 {"matrix": [0, 9], "x": 9, "y": 1},
156 {"matrix": [0, 10], "x": 10, "y": 1},
157 {"matrix": [0, 11], "x": 11, "y": 1},
158 {"matrix": [0, 12], "x": 12, "y": 1},
159 {"matrix": [0, 13], "x": 13, "y": 1, "w": 1.5},
160
161 {"matrix": [1, 0], "x": 0, "y": 2, "w": 1.25},
162 {"matrix": [1, 1], "x": 1.25, "y": 2},
163 {"matrix": [1, 2], "x": 2.25, "y": 2},
164 {"matrix": [1, 3], "x": 3.25, "y": 2},
165 {"matrix": [1, 4], "x": 4.25, "y": 2},
166 {"matrix": [1, 5], "x": 5.25, "y": 2},
167 {"matrix": [1, 6], "x": 6.25, "y": 2},
168 {"matrix": [1, 7], "x": 7.25, "y": 2},
169 {"matrix": [1, 8], "x": 8.25, "y": 2},
170 {"matrix": [1, 9], "x": 9.25, "y": 2},
171 {"matrix": [1, 10], "x": 10.25, "y": 2},
172 {"matrix": [1, 11], "x": 11.25, "y": 2},
173 {"matrix": [1, 12], "x": 12.25, "y": 2, "w": 2.25},
174
175 {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
176 {"matrix": [2, 1], "x": 1.75, "y": 3},
177 {"matrix": [2, 2], "x": 2.75, "y": 3},
178 {"matrix": [2, 3], "x": 3.75, "y": 3},
179 {"matrix": [2, 4], "x": 4.75, "y": 3},
180 {"matrix": [2, 5], "x": 5.75, "y": 3},
181 {"matrix": [2, 6], "x": 6.75, "y": 3},
182 {"matrix": [2, 7], "x": 7.75, "y": 3},
183 {"matrix": [2, 8], "x": 8.75, "y": 3},
184 {"matrix": [2, 9], "x": 9.75, "y": 3},
185 {"matrix": [2, 10], "x": 10.75, "y": 3},
186 {"matrix": [2, 12], "x": 11.75, "y": 3, "w": 1.75},
187 {"matrix": [2, 13], "x": 13.5, "y": 3},
188
189 {"matrix": [3, 0], "x": 0, "y": 4, "w": 1.25},
190 {"matrix": [3, 1], "x": 1.25, "y": 4, "w": 1.25},
191 {"matrix": [3, 2], "x": 2.5, "y": 4, "w": 1.25},
192 {"matrix": [3, 4], "x": 3.75, "y": 4, "w": 3},
193 {"matrix": [3, 6], "x": 6.75, "y": 4},
194 {"matrix": [3, 8], "x": 7.75, "y": 4, "w": 3},
195 {"matrix": [3, 11], "x": 10.75, "y": 4, "w": 1.25},
196 {"matrix": [3, 12], "x": 12, "y": 4, "w": 1.25},
197 {"matrix": [3, 13], "x": 13.25, "y": 4, "w": 1.25}
198 ]
199 } 139 }
200 } 140 }
201} 141}
diff --git a/keyboards/rmi_kb/chevron/keymaps/via/keymap.c b/keyboards/rmi_kb/chevron/keymaps/via/keymap.c
index 8651a3dee7..b6026310f8 100644
--- a/keyboards/rmi_kb/chevron/keymaps/via/keymap.c
+++ b/keyboards/rmi_kb/chevron/keymaps/via/keymap.c
@@ -16,29 +16,29 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_all( 19 [0] = LAYOUT_ansi(
20 KC_VOLD, KC_MUTE, KC_VOLU, 20 KC_MUTE,
21 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 21 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
22 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 22 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), 23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_BSPC, KC_RALT, KC_RGUI, KC_RCTL 24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_BSPC, KC_RALT, KC_RGUI, KC_RCTL
25 ), 25 ),
26 [1] = LAYOUT_all( 26 [1] = LAYOUT_ansi(
27 _______, _______, _______, 27 _______,
28 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, 28 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______,
29 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, 29 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______,
30 _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______ 31 _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ), 32 ),
33 [2] = LAYOUT_all( 33 [2] = LAYOUT_ansi(
34 _______, _______, _______, 34 _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______ 38 _______, _______, _______, _______, _______, _______, _______, _______, _______
39 ), 39 ),
40 [3] = LAYOUT_all( 40 [3] = LAYOUT_ansi(
41 _______, _______, _______, 41 _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -46,43 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 ), 46 ),
47}; 47};
48 48
49keyevent_t encoder_ccw = { 49#ifdef ENCODER_MAP_ENABLE
50 .key = (keypos_t){.row = 4, .col = 0}, 50const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
51 .pressed = false, 51 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
52 .type = KEY_EVENT 52 [1] = { ENCODER_CCW_CW(_______, _______) },
53 [2] = { ENCODER_CCW_CW(_______, _______) },
54 [3] = { ENCODER_CCW_CW(_______, _______) },
53}; 55};
54 56#endif
55keyevent_t encoder_cw = {
56 .key = (keypos_t){.row = 4, .col = 1},
57 .pressed = false,
58 .type = KEY_EVENT
59};
60
61void matrix_scan_user(void) {
62 if (encoder_ccw.pressed) {
63 encoder_ccw.pressed = false;
64 encoder_ccw.time = timer_read();
65 action_exec(encoder_ccw);
66 }
67
68 if (encoder_cw.pressed) {
69 encoder_cw.pressed = false;
70 encoder_cw.time = timer_read();
71 action_exec(encoder_cw);
72 }
73}
74
75bool encoder_update_user(uint8_t index, bool clockwise) {
76 if (clockwise) {
77 encoder_cw.pressed = true;
78 encoder_cw.time = timer_read();
79 action_exec(encoder_cw);
80 wait_ms(20);
81 } else {
82 encoder_ccw.pressed = true;
83 encoder_ccw.time = timer_read();
84 action_exec(encoder_ccw);
85 wait_ms(20);
86 }
87 return true;
88}
diff --git a/keyboards/rmi_kb/chevron/keymaps/via/rules.mk b/keyboards/rmi_kb/chevron/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/rmi_kb/chevron/keymaps/via/rules.mk
+++ b/keyboards/rmi_kb/chevron/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rmi_kb/herringbone/pro/info.json b/keyboards/rmi_kb/herringbone/pro/info.json
index e02c428ab8..bbef69f28a 100644
--- a/keyboards/rmi_kb/herringbone/pro/info.json
+++ b/keyboards/rmi_kb/herringbone/pro/info.json
@@ -329,9 +329,7 @@
329 {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.5}, 329 {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.5},
330 {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.5}, 330 {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.5},
331 331
332 {"matrix": [5, 12], "x": 13.25, "y": 5.5}, 332 {"matrix": [5, 13], "x": 14.25, "y": 5.5}
333 {"matrix": [5, 13], "x": 14.25, "y": 5.5},
334 {"matrix": [5, 14], "x": 15.25, "y": 5.5}
335 ] 333 ]
336 } 334 }
337 } 335 }
diff --git a/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c b/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c
index dbf282b68f..8edcdc7dff 100644
--- a/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c
+++ b/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c
@@ -19,7 +19,7 @@
19 19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_all( 21 [0] = LAYOUT_all(
22 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_VOLD, KC_MUTE, KC_VOLU, 22 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE,
23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, 23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 [1] = LAYOUT_all( 29 [1] = LAYOUT_all(
30 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
36 ), 36 ),
37 [2] = LAYOUT_all( 37 [2] = LAYOUT_all(
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
44 ), 44 ),
45 [3] = LAYOUT_all( 45 [3] = LAYOUT_all(
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -52,31 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52 ), 52 ),
53}; 53};
54 54
55keyevent_t encoder_ccw = { 55#ifdef ENCODER_MAP_ENABLE
56 .key = (keypos_t){.row = 6, .col = 0}, 56const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
57 .pressed = false, 57 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
58 .type = KEY_EVENT 58 [1] = { ENCODER_CCW_CW(_______, _______) },
59 }; 59 [2] = { ENCODER_CCW_CW(_______, _______) },
60 60 [3] = { ENCODER_CCW_CW(_______, _______) },
61keyevent_t encoder_cw = {
62 .key = (keypos_t){.row = 6, .col = 1},
63 .pressed = false,
64 .type = KEY_EVENT
65}; 61};
66 62#endif
67void matrix_scan_user(void) {
68 if (encoder_ccw.pressed) {
69 encoder_ccw.pressed = false;
70 encoder_ccw.time = timer_read();
71 action_exec(encoder_ccw);
72 }
73
74 if (encoder_cw.pressed) {
75 encoder_cw.pressed = false;
76 encoder_cw.time = timer_read();
77 action_exec(encoder_cw);
78 }
79}
80 63
81#ifdef OLED_ENABLE 64#ifdef OLED_ENABLE
82uint32_t anim_timer = 0; 65uint32_t anim_timer = 0;
@@ -85,25 +68,6 @@ uint8_t current_frame = 0;
85 68
86#define FRAME_DURATION 50 69#define FRAME_DURATION 50
87 70
88bool encoder_update_user(uint8_t index, bool clockwise) {
89 if (clockwise) {
90 encoder_cw.pressed = true;
91 encoder_cw.time = timer_read();
92 action_exec(encoder_cw);
93 wait_ms(20);
94 anim_sleep = timer_read32();
95 oled_on();
96 } else {
97 encoder_ccw.pressed = true;
98 encoder_ccw.time = timer_read();
99 action_exec(encoder_ccw);
100 wait_ms(20);
101 anim_sleep = timer_read32();
102 oled_on();
103 }
104 return true;
105}
106
107static void render_pattern(void) { 71static void render_pattern(void) {
108 void animate(void) { 72 void animate(void) {
109 oled_set_cursor(4, 0); 73 oled_set_cursor(4, 0);
diff --git a/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk b/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk
+++ b/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rmi_kb/squishytkl/info.json b/keyboards/rmi_kb/squishytkl/info.json
index bfa51fa28c..f2ebdf503a 100644
--- a/keyboards/rmi_kb/squishytkl/info.json
+++ b/keyboards/rmi_kb/squishytkl/info.json
@@ -460,10 +460,7 @@
460 460
461 {"matrix": [7, 23], "x": 15.25, "y": 5.75}, 461 {"matrix": [7, 23], "x": 15.25, "y": 5.75},
462 {"matrix": [7, 24], "x": 16.25, "y": 5.75}, 462 {"matrix": [7, 24], "x": 16.25, "y": 5.75},
463 {"matrix": [7, 25], "x": 17.25, "y": 5.75}, 463 {"matrix": [7, 25], "x": 17.25, "y": 5.75}
464
465 {"matrix": [13, 0], "x": 18.5, "y": 0},
466 {"matrix": [13, 1], "x": 18.5, "y": 1}
467 ] 464 ]
468 } 465 }
469 } 466 }
diff --git a/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c b/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c
index 2c33b4869c..a77606ac7c 100644
--- a/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c
+++ b/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c
@@ -22,46 +22,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, 24 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, 25 KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
26 KC_VOLU, KC_VOLD 26 )
27 ),
28}; 27};
29 28
30keyevent_t encoder_ccw = { 29#ifdef ENCODER_MAP_ENABLE
31 .key = (keypos_t){.row = 13, .col = 0}, 30const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
32 .pressed = false, 31 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
33 .type = KEY_EVENT
34}; 32};
35 33#endif
36keyevent_t encoder_cw = {
37 .key = (keypos_t){.row = 13, .col = 1},
38 .pressed = false,
39 .type = KEY_EVENT
40};
41
42void matrix_scan_user(void) {
43 if (encoder_ccw.pressed) {
44 encoder_ccw.pressed = false;
45 encoder_ccw.time = timer_read();
46 action_exec(encoder_ccw);
47 }
48
49 if (encoder_cw.pressed) {
50 encoder_cw.pressed = false;
51 encoder_cw.time = timer_read();
52 action_exec(encoder_cw);
53 }
54}
55
56bool encoder_update_user(uint8_t index, bool clockwise) {
57 if (clockwise) {
58 encoder_cw.pressed = true;
59 encoder_cw.time = timer_read();
60 action_exec(encoder_cw);
61 } else {
62 encoder_ccw.pressed = true;
63 encoder_ccw.time = timer_read();
64 action_exec(encoder_ccw);
65 }
66 return true;
67}
diff --git a/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk b/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk
+++ b/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/rmi_kb/wete/v2/info.json b/keyboards/rmi_kb/wete/v2/info.json
index b809a6bbca..216225b9cb 100644
--- a/keyboards/rmi_kb/wete/v2/info.json
+++ b/keyboards/rmi_kb/wete/v2/info.json
@@ -396,10 +396,7 @@
396 {"matrix": [10, 8], "x": 16.25, "y": 5.25}, 396 {"matrix": [10, 8], "x": 16.25, "y": 5.25},
397 {"matrix": [11, 8], "x": 17.25, "y": 5.25}, 397 {"matrix": [11, 8], "x": 17.25, "y": 5.25},
398 {"matrix": [10, 9], "x": 18.25, "y": 5.25}, 398 {"matrix": [10, 9], "x": 18.25, "y": 5.25},
399 {"matrix": [11, 9], "x": 19.25, "y": 5.25}, 399 {"matrix": [11, 9], "x": 19.25, "y": 5.25}
400
401 {"matrix": [12, 0], "x": 19, "y": 0, "w": 0.5},
402 {"matrix": [12, 1], "x": 20.5, "y": 0, "w": 0.5}
403 ] 400 ]
404 } 401 }
405 } 402 }
diff --git a/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c b/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c
index 05df87fc94..6a3847cd34 100644
--- a/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c
+++ b/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c
@@ -14,6 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [0] = LAYOUT_all( 19 [0] = LAYOUT_all(
19 KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, 20 KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
@@ -21,8 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 22 KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
22 KC_P4, KC_P5, KC_P6, KC_NO, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_P4, KC_P5, KC_P6, KC_NO, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
23 KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, 24 KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
24 KC_P0, KC_NO, KC_PDOT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, 25 KC_P0, KC_NO, KC_PDOT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT
25 KC_VOLD, KC_VOLU
26 ), 26 ),
27 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -30,49 +30,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
34 _______, _______
35 ), 34 ),
36}; 35};
37 36
38keyevent_t encoder_ccw = { 37#ifdef ENCODER_MAP_ENABLE
39 .key = (keypos_t){.row = 12, .col = 0}, 38const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
40 .pressed = false, 39 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
41 .type = KEY_EVENT 40 [1] = { ENCODER_CCW_CW(_______, _______) }
42};
43
44keyevent_t encoder_cw = {
45 .key = (keypos_t){.row = 12, .col = 1},
46 .pressed = false,
47 .type = KEY_EVENT
48}; 41};
49 42#endif
50void matrix_scan_user(void) {
51 if (encoder_ccw.pressed) {
52 encoder_ccw.pressed = false;
53 encoder_ccw.time = timer_read();
54 action_exec(encoder_ccw);
55 }
56
57 if (encoder_cw.pressed) {
58 encoder_cw.pressed = false;
59 encoder_cw.time = timer_read();
60 action_exec(encoder_cw);
61 }
62}
63
64bool encoder_update_user(uint8_t index, bool clockwise) {
65 if (clockwise) {
66 encoder_cw.pressed = true;
67 encoder_cw.time = timer_read();
68 action_exec(encoder_cw);
69 } else {
70 encoder_ccw.pressed = true;
71 encoder_ccw.time = timer_read();
72 action_exec(encoder_ccw);
73 }
74 return true;
75}
76 43
77#ifdef RGBLIGHT_ENABLE 44#ifdef RGBLIGHT_ENABLE
78// Can probably still be optimized, but I like it as is for clarity 45// Can probably still be optimized, but I like it as is for clarity
diff --git a/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk b/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk
+++ b/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h
index e5700d1b29..e38ed127bb 100644
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h
+++ b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h
@@ -16,11 +16,6 @@
16 16
17#pragma once 17#pragma once
18 18
19/* Encoders */
20
21#define ENCODERS_CW_KEY { { 12, 3 } }
22#define ENCODERS_CCW_KEY { { 12, 4 } }
23
24/* RGB */ 19/* RGB */
25 #define RGBLIGHT_HUE_STEP 8 20 #define RGBLIGHT_HUE_STEP 8
26 #define RGBLIGHT_SAT_STEP 8 21 #define RGBLIGHT_SAT_STEP 8
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c
deleted file mode 100644
index 96fcc9a614..0000000000
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c
+++ /dev/null
@@ -1,53 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 * Copyright 2021 drashna jael're (@drashna)
3 * Copyright 2021 uybv
4 * Copyright 2021 SawnsProjects
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#include "encoder_actions.h"
21
22#ifdef ENCODER_ENABLE
23static uint8_t encoder_state[NUM_ENCODERS] = {0};
24static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
25static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
26
27void encoder_action_unregister(void) {
28 for (int index = 0; index < NUM_ENCODERS; ++index) {
29 if (encoder_state[index]) {
30 keyevent_t encoder_event = (keyevent_t) {
31 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
32 .pressed = false,
33 .time = timer_read(),
34 .type = KEY_EVENT
35 };
36 encoder_state[index] = 0;
37 action_exec(encoder_event);
38 }
39 }
40}
41
42void encoder_action_register(uint8_t index, bool clockwise) {
43 keyevent_t encoder_event = (keyevent_t) {
44 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
45 .pressed = true,
46 .time = timer_read(),
47 .type = KEY_EVENT
48 };
49 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
50 action_exec(encoder_event);
51}
52
53#endif
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h
deleted file mode 100644
index fb22632632..0000000000
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h b/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h
deleted file mode 100644
index 5f25d9c5c3..0000000000
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/* Copyright 2021 SawnsProjects
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20#include "encoder_actions.h"
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json
index 07506d85bf..9b6739ccf5 100644
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json
+++ b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json
@@ -33,7 +33,7 @@
33 "processor": "atmega32u4", 33 "processor": "atmega32u4",
34 "bootloader": "atmel-dfu", 34 "bootloader": "atmel-dfu",
35 "layouts": { 35 "layouts": {
36 "LAYOUT_all": { 36 "LAYOUT": {
37 "layout": [ 37 "layout": [
38 {"matrix": [0, 0], "x": 0, "y": 0}, 38 {"matrix": [0, 0], "x": 0, "y": 0},
39 {"matrix": [0, 1], "x": 1, "y": 0}, 39 {"matrix": [0, 1], "x": 1, "y": 0},
@@ -111,88 +111,6 @@
111 {"matrix": [4, 14], "x": 14, "y": 4}, 111 {"matrix": [4, 14], "x": 14, "y": 4},
112 {"matrix": [4, 15], "x": 15, "y": 4} 112 {"matrix": [4, 15], "x": 15, "y": 4}
113 ] 113 ]
114 },
115 "LAYOUT_via_rotary": {
116 "layout": [
117 {"matrix": [0, 0], "x": 0, "y": 0.75},
118 {"matrix": [0, 1], "x": 1, "y": 0.75},
119 {"matrix": [0, 2], "x": 2, "y": 0.75},
120 {"matrix": [0, 3], "x": 3, "y": 0.75},
121 {"matrix": [0, 4], "x": 4, "y": 0.75},
122 {"matrix": [0, 5], "x": 5, "y": 0.75},
123 {"matrix": [0, 6], "x": 6, "y": 0.75},
124 {"matrix": [0, 7], "x": 7, "y": 0.75},
125 {"matrix": [0, 8], "x": 8, "y": 0.75},
126 {"matrix": [0, 9], "x": 9, "y": 0.75},
127 {"matrix": [0, 10], "x": 10, "y": 0.75},
128 {"matrix": [0, 11], "x": 11, "y": 0.75},
129 {"matrix": [0, 12], "x": 12, "y": 0.75},
130 {"matrix": [0, 13], "x": 13, "y": 0.75},
131 {"matrix": [0, 14], "x": 14, "y": 0.75},
132 {"matrix": [0, 15], "x": 15, "y": 0.75},
133
134 {"matrix": [3, 12], "x": 14.75, "y": 0, "w": 0.75, "h": 0.75},
135 {"matrix": [4, 12], "x": 15.5, "y": 0, "w": 0.75, "h": 0.75},
136
137 {"matrix": [1, 0], "x": 0, "y": 1.75, "w": 1.5},
138 {"matrix": [1, 1], "x": 1.5, "y": 1.75},
139 {"matrix": [1, 2], "x": 2.5, "y": 1.75},
140 {"matrix": [1, 3], "x": 3.5, "y": 1.75},
141 {"matrix": [1, 4], "x": 4.5, "y": 1.75},
142 {"matrix": [1, 5], "x": 5.5, "y": 1.75},
143 {"matrix": [1, 6], "x": 6.5, "y": 1.75},
144 {"matrix": [1, 7], "x": 7.5, "y": 1.75},
145 {"matrix": [1, 8], "x": 8.5, "y": 1.75},
146 {"matrix": [1, 9], "x": 9.5, "y": 1.75},
147 {"matrix": [1, 10], "x": 10.5, "y": 1.75},
148 {"matrix": [1, 11], "x": 11.5, "y": 1.75},
149 {"matrix": [1, 12], "x": 12.5, "y": 1.75},
150 {"matrix": [1, 13], "x": 13.5, "y": 1.75, "w": 1.5},
151 {"matrix": [1, 15], "x": 15, "y": 1.75},
152
153 {"matrix": [2, 0], "x": 0, "y": 2.75, "w": 1.75},
154 {"matrix": [2, 1], "x": 1.75, "y": 2.75},
155 {"matrix": [2, 2], "x": 2.75, "y": 2.75},
156 {"matrix": [2, 3], "x": 3.75, "y": 2.75},
157 {"matrix": [2, 4], "x": 4.75, "y": 2.75},
158 {"matrix": [2, 5], "x": 5.75, "y": 2.75},
159 {"matrix": [2, 6], "x": 6.75, "y": 2.75},
160 {"matrix": [2, 7], "x": 7.75, "y": 2.75},
161 {"matrix": [2, 8], "x": 8.75, "y": 2.75},
162 {"matrix": [2, 9], "x": 9.75, "y": 2.75},
163 {"matrix": [2, 10], "x": 10.75, "y": 2.75},
164 {"matrix": [2, 11], "x": 11.75, "y": 2.75},
165 {"matrix": [2, 13], "x": 12.75, "y": 2.75, "w": 2.25},
166 {"matrix": [2, 15], "x": 15, "y": 2.75},
167
168 {"matrix": [3, 0], "x": 0, "y": 3.75, "w": 2.25},
169 {"matrix": [3, 2], "x": 2.25, "y": 3.75},
170 {"matrix": [3, 3], "x": 3.25, "y": 3.75},
171 {"matrix": [3, 4], "x": 4.25, "y": 3.75},
172 {"matrix": [3, 5], "x": 5.25, "y": 3.75},
173 {"matrix": [3, 6], "x": 6.25, "y": 3.75},
174 {"matrix": [3, 7], "x": 7.25, "y": 3.75},
175 {"matrix": [3, 8], "x": 8.25, "y": 3.75},
176 {"matrix": [3, 9], "x": 9.25, "y": 3.75},
177 {"matrix": [3, 10], "x": 10.25, "y": 3.75},
178 {"matrix": [3, 11], "x": 11.25, "y": 3.75},
179 {"matrix": [3, 13], "x": 12.25, "y": 3.75, "w": 1.75},
180 {"matrix": [3, 14], "x": 14, "y": 3.75},
181 {"matrix": [3, 15], "x": 15, "y": 3.75},
182
183 {"matrix": [4, 0], "x": 0, "y": 4.75, "w": 1.25},
184 {"matrix": [4, 2], "x": 1.25, "y": 4.75, "w": 1.25},
185 {"matrix": [4, 3], "x": 2.5, "y": 4.75, "w": 1.25},
186 {"matrix": [4, 5], "x": 3.75, "y": 4.75, "w": 2.25},
187 {"matrix": [4, 6], "x": 6, "y": 4.75, "w": 1.25},
188 {"matrix": [4, 7], "x": 7.25, "y": 4.75, "w": 2.75},
189 {"matrix": [4, 8], "x": 10, "y": 4.75, "w": 1.25},
190 {"matrix": [4, 11], "x": 11.25, "y": 4.75, "w": 1.25},
191
192 {"matrix": [4, 13], "x": 13, "y": 4.75},
193 {"matrix": [4, 14], "x": 14, "y": 4.75},
194 {"matrix": [4, 15], "x": 15, "y": 4.75}
195 ]
196 } 114 }
197 } 115 }
198} 116}
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c
index 13883d07e4..8487c555ba 100644
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c
+++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c
@@ -19,7 +19,7 @@
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 20
21 21
22 [0] = LAYOUT_all( 22 [0] = LAYOUT(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_PSCR, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_PSCR,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 29
30 [1] = LAYOUT_all( 30 [1] = LAYOUT(
31 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, 31 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
32 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, 32 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,
33 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, 33 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/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c
index d55eb74fb0..8af6494c2a 100644
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c
+++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c
@@ -19,42 +19,42 @@
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 20
21 21
22 [0] = LAYOUT_via_rotary( 22 [0] = LAYOUT(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_PSCR, KC_VOLD ,KC_VOLU, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_PSCR,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ), 28 ),
29 29
30 [1] = LAYOUT_via_rotary( 30 [1] = LAYOUT(
31 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 31 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
32 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, 32 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,
33 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, 33 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,
34 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, 34 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,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36 ), 36 ),
37 [2] = LAYOUT_via_rotary( 37 [2] = LAYOUT(
38 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, 38 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,
39 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, 39 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,
40 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, 40 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,
41 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, 41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43 ), 43 ),
44 [3] = LAYOUT_via_rotary( 44 [3] = LAYOUT(
45 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, 45 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,
46 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, 46 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,
47 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, 47 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,
48 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, 48 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,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
50 ), 50 ),
51}; 51};
52 52
53 53#ifdef ENCODER_MAP_ENABLE
54void matrix_scan_user(void) { 54const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
55 encoder_action_unregister(); 55 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
56} 56 [1] = { ENCODER_CCW_CW(_______, _______) },
57bool encoder_update_user(uint8_t index, bool clockwise) { 57 [2] = { ENCODER_CCW_CW(_______, _______) },
58 encoder_action_register(index, clockwise); 58 [3] = { ENCODER_CCW_CW(_______, _______) },
59 return false; // override kb default behavior 59};
60}; \ No newline at end of file 60#endif
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk
index a9739430b9..1189f4ad19 100644
--- a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk
+++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk
@@ -1,5 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3 3ENCODER_MAP_ENABLE = yes
4# Added encoder Action
5SRC += encoder_actions.c \ No newline at end of file
diff --git a/keyboards/sofle/keymaps/keyhive_via/encoder.c b/keyboards/sofle/keymaps/keyhive_via/encoder.c
deleted file mode 100644
index 7775cb7b86..0000000000
--- a/keyboards/sofle/keymaps/keyhive_via/encoder.c
+++ /dev/null
@@ -1,48 +0,0 @@
1 /* Copyright 2020 Josef Adamcik
2 * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via.
19
20#ifdef ENCODER_ENABLE
21 static uint8_t encoder_state[2] = {0};
22 //Use these keymap positions to specify the encoder functions on rotate.
23 static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}};
24 static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}};
25
26 void encoder_action_unregister(void) {
27 for (int index = 0; index < 2; ++index) {
28 if (encoder_state[index]) {
29 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};
30 encoder_state[index] = 0;
31 action_exec(encoder_event);
32 }
33 }
34 }
35
36 void encoder_action_register(uint8_t index, bool clockwise) {
37 keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = timer_read(), .type = KEY_EVENT};
38 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
39 action_exec(encoder_event);
40 }
41
42 void matrix_scan_user(void) { encoder_action_unregister(); }
43
44 bool encoder_update_user(uint8_t index, bool clockwise) {
45 encoder_action_register(index, clockwise);
46 return false;
47 };
48#endif
diff --git a/keyboards/sofle/keymaps/keyhive_via/keymap.c b/keyboards/sofle/keymaps/keyhive_via/keymap.c
index 032c834f44..e614873845 100644
--- a/keyboards/sofle/keymaps/keyhive_via/keymap.c
+++ b/keyboards/sofle/keymaps/keyhive_via/keymap.c
@@ -18,7 +18,6 @@
18#include QMK_KEYBOARD_H 18#include QMK_KEYBOARD_H
19 19
20#include "oled.c" 20#include "oled.c"
21#include "encoder.c"
22 21
23// Base layer is the number of layers CYCLE selects from. 22// Base layer is the number of layers CYCLE selects from.
24#define BASE_LAYERS 2 23#define BASE_LAYERS 2
@@ -35,27 +34,6 @@ enum custom_layers {
35 _RAISE 34 _RAISE
36}; 35};
37 36
38// Extra keys are added for rotary encoder support in VIA
39#define LAYOUT_via( \
40 LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \
41 LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \
42 LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \
43 LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \
44 LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \
45 ) \
46 { \
47 { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \
48 { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \
49 { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \
50 { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \
51 { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \
52 { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \
53 { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \
54 { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \
55 { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \
56 { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \
57 }
58
59//Default keymap. This can be changed in Via. Use oled.c to change beavior that Via cannot change. 37//Default keymap. This can be changed in Via. Use oled.c to change beavior that Via cannot change.
60const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
61/* 39/*
@@ -74,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 * `-----------------------------------' '------''---------------------------' 52 * `-----------------------------------' '------''---------------------------'
75 */ 53 */
76 54
77[_QWERTY] = LAYOUT_via( 55[_QWERTY] = LAYOUT(
78 KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , 56 KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
79 KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_VOLU, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, 57 KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
80 KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_NO , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, 58 KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
81 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_VOLD, KC_PGDN, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, 59 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_MUTE, KC_NO, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
82 KC_LGUI,KC_LALT ,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI 60 KC_LGUI,KC_LALT ,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI
83), 61),
84/* 62/*
@@ -97,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
97 * `-----------------------------------' '------''---------------------------' 75 * `-----------------------------------' '------''---------------------------'
98 */ 76 */
99/* 77/*
100[_COLEMAK] = LAYOUT_via( 78[_COLEMAK] = LAYOUT(
101 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , 79 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
102 KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, 80 KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
103 KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_MUTE, KC_NO , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT, 81 KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_MUTE, KC_NO , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
@@ -121,11 +99,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
121 * | | | | |/ / \ \ | | | | | 99 * | | | | |/ / \ \ | | | | |
122 * `-----------------------------------' '------''---------------------------' 100 * `-----------------------------------' '------''---------------------------'
123 */ 101 */
124[_COLEMAK] = LAYOUT_via( 102[_COLEMAK] = LAYOUT(
125 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , 103 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
126 KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, 104 KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
127 KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_MUTE, KC_NO , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT, 105 KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
128 KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , KC_VOLD, KC_PGDN, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 106 KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , _______, _______, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
129 KC_LGUI, KC_LALT,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI 107 KC_LGUI, KC_LALT,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI
130), 108),
131 109
@@ -143,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
143 * | | | | |/ / \ \ | | | | | 121 * | | | | |/ / \ \ | | | | |
144 * `-----------------------------------' '------''---------------------------' 122 * `-----------------------------------' '------''---------------------------'
145 */ 123 */
146[_LOWER] = LAYOUT_via( 124[_LOWER] = LAYOUT(
147 _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , 125 _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
148 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 , 126 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 ,
149 _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, 127 _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
150 _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, 128 _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
151 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 129 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
152), 130),
153/* RAISE 131/* RAISE
@@ -164,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
164 * | | | | |/ / \ \ | | | | | 142 * | | | | |/ / \ \ | | | | |
165 * `----------------------------------' '------''---------------------------' 143 * `----------------------------------' '------''---------------------------'
166 */ 144 */
167[_RAISE] = LAYOUT_via( 145[_RAISE] = LAYOUT(
168 CYCLE, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______, 146 CYCLE, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______,
169 _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, _______, _______, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC, 147 _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC,
170 _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, 148 _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC,
171 _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______, 149 _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______,
172 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 150 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
173) 151)
174}; 152};
@@ -189,3 +167,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
189 // this uses less memory than returning in each case. 167 // this uses less memory than returning in each case.
190 return keycode < SAFE_RANGE; 168 return keycode < SAFE_RANGE;
191}; 169};
170
171 #ifdef ENCODER_MAP_ENABLE
172const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
173 [0] = { ENCODER_CCW_CW(KC_BSPC, KC_DEL), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
174 [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
175 [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
176 [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
177};
178#endif
diff --git a/keyboards/sofle/keymaps/keyhive_via/rules.mk b/keyboards/sofle/keymaps/keyhive_via/rules.mk
index 2875254096..c7fce92a4f 100644
--- a/keyboards/sofle/keymaps/keyhive_via/rules.mk
+++ b/keyboards/sofle/keymaps/keyhive_via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2RGBLIGHT_ENABLE = yes 2RGBLIGHT_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/stello65/beta/beta.c b/keyboards/stello65/beta/beta.c
deleted file mode 100644
index fa19135814..0000000000
--- a/keyboards/stello65/beta/beta.c
+++ /dev/null
@@ -1,18 +0,0 @@
1// Copyright 2021 @wekey (@@wekey)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "quantum.h"
5
6#if defined(ENCODER_ENABLE)
7bool encoder_update_kb(uint8_t index, bool clockwise) {
8 if (!encoder_update_user(index, clockwise)) { return false; }
9 if (index == 0) {
10 if (clockwise) {
11 tap_code_delay(KC_VOLU, 10);
12 } else {
13 tap_code_delay(KC_VOLD, 10);
14 }
15 }
16 return true;
17}
18#endif
diff --git a/keyboards/synthlabs/solo/config.h b/keyboards/synthlabs/solo/config.h
index 71170a12ce..779b85a7c3 100644
--- a/keyboards/synthlabs/solo/config.h
+++ b/keyboards/synthlabs/solo/config.h
@@ -3,9 +3,6 @@
3 3
4#pragma once 4#pragma once
5 5
6#define ENCODERS_CW_KEY { { 2, 1 } }
7#define ENCODERS_CCW_KEY { { 0, 1 } }
8
9#define JOYSTICK_BUTTON_COUNT 13 6#define JOYSTICK_BUTTON_COUNT 13
10#define JOYSTICK_AXIS_COUNT 1 7#define JOYSTICK_AXIS_COUNT 1
11#define JOYSTICK_AXIS_RESOLUTION 16 8#define JOYSTICK_AXIS_RESOLUTION 16
diff --git a/keyboards/synthlabs/solo/info.json b/keyboards/synthlabs/solo/info.json
index 168d2d06dc..2076fa3e77 100644
--- a/keyboards/synthlabs/solo/info.json
+++ b/keyboards/synthlabs/solo/info.json
@@ -36,11 +36,7 @@
36 {"label": "P2 5", "x": 5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 4]}, 36 {"label": "P2 5", "x": 5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 4]},
37 {"label": "P1 6", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]}, 37 {"label": "P1 6", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]},
38 {"label": "P2 7", "x": 6, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 6]}, 38 {"label": "P2 7", "x": 6, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 6]},
39 39 {"label":"Knob Press", "x":0.5, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]},
40 {"label": "Knob CCW", "x": 0, "y": 1.25, "w": 0.5, "matrix": [1, 0]},
41 {"label": "Knob Press", "x": 0.5, "y": 1, "w": 1.5, "h": 1.5, "matrix": [1, 1]},
42 {"label": "Knob CW", "x": 2, "y": 1.25, "w": 0.5, "matrix": [1, 2]},
43
44 {"label": "P1 1", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]}, 40 {"label": "P1 1", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]},
45 {"label": "P2 2", "x": 3.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 1]}, 41 {"label": "P2 2", "x": 3.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 1]},
46 {"label": "P1 3", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]}, 42 {"label": "P1 3", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]},
@@ -55,11 +51,7 @@
55 {"label": "P1 2", "x": 3.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 1]}, 51 {"label": "P1 2", "x": 3.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 1]},
56 {"label": "P1 4", "x": 4.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 3]}, 52 {"label": "P1 4", "x": 4.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 3]},
57 {"label": "P1 6", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]}, 53 {"label": "P1 6", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]},
58 54 {"label":"Knob Press", "x":0.5, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]},
59 {"label": "Knob CCW", "x": 0, "y": 1.25, "w": 0.5, "matrix": [1, 0]},
60 {"label": "Knob Press", "x": 0.5, "y": 1, "w": 1.5, "h": 1.5, "matrix": [1, 1]},
61 {"label": "Knob CW", "x": 2, "y": 1.25, "w": 0.5, "matrix": [1, 2]},
62
63 {"label": "P1 1", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]}, 55 {"label": "P1 1", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]},
64 {"label": "P1 3", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]}, 56 {"label": "P1 3", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]},
65 {"label": "P1 5", "x": 5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 4]}, 57 {"label": "P1 5", "x": 5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 4]},
@@ -71,11 +63,7 @@
71 {"label": "P2 6", "x": 0.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 5]}, 63 {"label": "P2 6", "x": 0.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 5]},
72 {"label": "P2 4", "x": 1.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 3]}, 64 {"label": "P2 4", "x": 1.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 3]},
73 {"label": "P2 2", "x": 2.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 1]}, 65 {"label": "P2 2", "x": 2.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 1]},
74 66 {"label":"Knob Press", "x":4.5, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]},
75 {"label": "Knob CCW", "x": 4, "y": 1.25, "w": 0.5, "matrix": [1, 0]},
76 {"label": "Knob Press", "x": 4.5, "y": 1, "w": 1.5, "h": 1.5, "matrix": [1, 1]},
77 {"label": "Knob CW", "x": 6, "y": 1.25, "w": 0.5, "matrix": [1, 2]},
78
79 {"label": "P2 7", "x": 0, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 6]}, 67 {"label": "P2 7", "x": 0, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 6]},
80 {"label": "P2 5", "x": 1, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 4]}, 68 {"label": "P2 5", "x": 1, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 4]},
81 {"label": "P2 3", "x": 2, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 2]}, 69 {"label": "P2 3", "x": 2, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 2]},
diff --git a/keyboards/synthlabs/solo/keymaps/default/keymap.c b/keyboards/synthlabs/solo/keymaps/default/keymap.c
index fa54111fe8..2d7313b77e 100644
--- a/keyboards/synthlabs/solo/keymaps/default/keymap.c
+++ b/keyboards/synthlabs/solo/keymaps/default/keymap.c
@@ -6,7 +6,7 @@
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all( 7 [0] = LAYOUT_all(
8 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN, 8 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN,
9 _______, KC_MUTE, _______, 9 KC_MUTE,
10 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN 10 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN
11 ) 11 )
12}; 12};
diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c
index f450769b43..7bafe6b191 100644
--- a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c
+++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c
@@ -6,7 +6,7 @@
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all( 7 [0] = LAYOUT_all(
8 JS_0,JS_1,JS_2,JS_3,JS_4,JS_5,JS_6, 8 JS_0,JS_1,JS_2,JS_3,JS_4,JS_5,JS_6,
9 KC_NO, JS_7, KC_NO, 9 JS_7,
10 JS_0,JS_1,JS_2,JS_3,JS_4,JS_5,JS_6 10 JS_0,JS_1,JS_2,JS_3,JS_4,JS_5,JS_6
11 ) 11 )
12}; 12};
diff --git a/keyboards/synthlabs/solo/keymaps/via/keymap.c b/keyboards/synthlabs/solo/keymaps/via/keymap.c
index 84f99df9ab..c1cb4c5a4d 100644
--- a/keyboards/synthlabs/solo/keymaps/via/keymap.c
+++ b/keyboards/synthlabs/solo/keymaps/via/keymap.c
@@ -6,64 +6,31 @@
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all( 7 [0] = LAYOUT_all(
8 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN, 8 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN,
9 KC_VOLD, KC_MUTE, KC_VOLU, 9 KC_MUTE,
10 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN 10 KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN
11 ), 11 ),
12 [1] = LAYOUT_all( 12 [1] = LAYOUT_all(
13 _______, _______, _______, _______, _______, _______, _______, 13 _______, _______, _______, _______, _______, _______, _______,
14 _______, _______, _______, 14 _______,
15 _______, _______, _______, _______, _______, _______, _______ 15 _______, _______, _______, _______, _______, _______, _______
16 ), 16 ),
17 [2] = LAYOUT_all( 17 [2] = LAYOUT_all(
18 _______, _______, _______, _______, _______, _______, _______, 18 _______, _______, _______, _______, _______, _______, _______,
19 _______, _______, _______, 19 _______,
20 _______, _______, _______, _______, _______, _______, _______ 20 _______, _______, _______, _______, _______, _______, _______
21 ), 21 ),
22 [3] = LAYOUT_all( 22 [3] = LAYOUT_all(
23 _______, _______, _______, _______, _______, _______, _______, 23 _______, _______, _______, _______, _______, _______, _______,
24 _______, _______, _______, 24 _______,
25 _______, _______, _______, _______, _______, _______, _______ 25 _______, _______, _______, _______, _______, _______, _______
26 ) 26 )
27}; 27};
28 28
29#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE) 29#ifdef ENCODER_MAP_ENABLE
30static uint8_t encoder_state[NUM_ENCODERS] = {0}; 30const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
31static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; 31 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
32static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; 32 [1] = { ENCODER_CCW_CW(_______, _______) },
33 33 [2] = { ENCODER_CCW_CW(_______, _______) },
34void encoder_action_unregister(void) { 34 [3] = { ENCODER_CCW_CW(_______, _______) },
35 for (int index = 0; index < NUM_ENCODERS; ++index) { 35};
36 if (encoder_state[index]) {
37 keyevent_t encoder_event = (keyevent_t) {
38 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
39 .pressed = false,
40 .time = timer_read(),
41 .type = KEY_EVENT
42 };
43 encoder_state[index] = 0;
44 action_exec(encoder_event);
45 }
46 }
47}
48
49void encoder_action_register(uint8_t index, bool clockwise) {
50 keyevent_t encoder_event = (keyevent_t) {
51 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
52 .pressed = true,
53 .time = timer_read(),
54 .type = KEY_EVENT
55 };
56 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
57 action_exec(encoder_event);
58}
59
60void matrix_scan_user(void) {
61 encoder_action_unregister();
62}
63
64bool encoder_update_user(uint8_t index, bool clockwise) {
65 encoder_action_register(index, clockwise);
66 return false;
67}
68
69#endif 36#endif
diff --git a/keyboards/synthlabs/solo/keymaps/via/rules.mk b/keyboards/synthlabs/solo/keymaps/via/rules.mk
index 1e5b99807c..f1adcab005 100644
--- a/keyboards/synthlabs/solo/keymaps/via/rules.mk
+++ b/keyboards/synthlabs/solo/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/synthlabs/solo/solo.c b/keyboards/synthlabs/solo/solo.c
deleted file mode 100644
index aca82c9ea3..0000000000
--- a/keyboards/synthlabs/solo/solo.c
+++ /dev/null
@@ -1,18 +0,0 @@
1// Copyright 2022 Aaron Hong (@hongaaronc)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "quantum.h"
5
6#if !defined(VIA_ENABLE) && !defined(JOYSTICK_ENABLE) && defined(ENCODER_ENABLE)
7bool encoder_update_kb(uint8_t index, bool clockwise) {
8 if (!encoder_update_user(index, clockwise)) { return false; }
9 if (index == 0) {
10 if (clockwise) {
11 tap_code_delay(KC_VOLU, 10);
12 } else {
13 tap_code_delay(KC_VOLD, 10);
14 }
15 }
16 return true;
17}
18#endif
diff --git a/keyboards/takashicompany/dogtag/dogtag.c b/keyboards/takashicompany/dogtag/dogtag.c
deleted file mode 100644
index 0ca5f7c3e8..0000000000
--- a/keyboards/takashicompany/dogtag/dogtag.c
+++ /dev/null
@@ -1,48 +0,0 @@
1/* Copyright 2021 takashicompany
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19bool encoder_update_kb(uint8_t index, bool clockwise) {
20 keypos_t key;
21 if (index == 0) {
22 if (clockwise) {
23 key.row = 2;
24 key.col = 1;
25 } else {
26 key.row = 2;
27 key.col = 0;
28 }
29 uint8_t layer = layer_switch_get_layer(key);
30 uint16_t keycode = keymap_key_to_keycode(layer, key);
31
32 tap_code16(keycode);
33 } else {
34 if (clockwise) {
35 key.row = 5;
36 key.col = 0;
37 } else {
38 key.row = 5;
39 key.col = 1;
40 }
41 uint8_t layer = layer_switch_get_layer(key);
42 uint16_t keycode = keymap_key_to_keycode(layer, key);
43
44 tap_code16(keycode);
45 }
46
47 return true;
48}
diff --git a/keyboards/takashicompany/dogtag/info.json b/keyboards/takashicompany/dogtag/info.json
index 6827375d84..d65092ecca 100644
--- a/keyboards/takashicompany/dogtag/info.json
+++ b/keyboards/takashicompany/dogtag/info.json
@@ -80,13 +80,7 @@
80 {"matrix": [4, 1], "x": 8, "y": 1}, 80 {"matrix": [4, 1], "x": 8, "y": 1},
81 {"matrix": [4, 2], "x": 9, "y": 1}, 81 {"matrix": [4, 2], "x": 9, "y": 1},
82 {"matrix": [4, 3], "x": 10, "y": 1}, 82 {"matrix": [4, 3], "x": 10, "y": 1},
83 {"matrix": [4, 4], "x": 11, "y": 1}, 83 {"matrix": [4, 4], "x": 11, "y": 1}
84
85 {"matrix": [2, 0], "x": 3.5, "y": 3.25},
86 {"matrix": [2, 1], "x": 4.5, "y": 3.25},
87
88 {"matrix": [5, 0], "x": 6.5, "y": 3.25},
89 {"matrix": [5, 1], "x": 7.5, "y": 3.25}
90 ] 84 ]
91 } 85 }
92 } 86 }
diff --git a/keyboards/takashicompany/dogtag/keymaps/default/keymap.c b/keyboards/takashicompany/dogtag/keymaps/default/keymap.c
index 865e6a2290..4d3b287f2f 100644
--- a/keyboards/takashicompany/dogtag/keymaps/default/keymap.c
+++ b/keyboards/takashicompany/dogtag/keymaps/default/keymap.c
@@ -16,15 +16,20 @@
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 LAYOUT( 19 [0] = LAYOUT(
20 LT(1, KC_ESC), KC_Q, KC_W, KC_E, KC_Y, KC_U, KC_I, KC_O, 20 LT(1, KC_ESC), KC_Q, KC_W, KC_E, KC_Y, KC_U, KC_I, KC_O,
21 KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L, 21 KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L
22 KC_WH_U, KC_WH_D, KC_WH_U, KC_WH_D
23 ), 22 ),
24 23
25 LAYOUT( 24 [1] = LAYOUT(
26 KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 25 KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
27 KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 26 KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
28 KC_WH_L, KC_WH_R, KC_WH_L, KC_WH_R
29 ) 27 )
30}; 28};
29
30#ifdef ENCODER_MAP_ENABLE
31const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
32 [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) },
33 [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
34};
35#endif
diff --git a/keyboards/takashicompany/dogtag/keymaps/default/rules.mk b/keyboards/takashicompany/dogtag/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/takashicompany/dogtag/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/takashicompany/dogtag/keymaps/via/keymap.c b/keyboards/takashicompany/dogtag/keymaps/via/keymap.c
index 865e6a2290..0088db19ba 100644
--- a/keyboards/takashicompany/dogtag/keymaps/via/keymap.c
+++ b/keyboards/takashicompany/dogtag/keymaps/via/keymap.c
@@ -18,13 +18,18 @@
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 LAYOUT( 19 LAYOUT(
20 LT(1, KC_ESC), KC_Q, KC_W, KC_E, KC_Y, KC_U, KC_I, KC_O, 20 LT(1, KC_ESC), KC_Q, KC_W, KC_E, KC_Y, KC_U, KC_I, KC_O,
21 KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L, 21 KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L
22 KC_WH_U, KC_WH_D, KC_WH_U, KC_WH_D
23 ), 22 ),
24 23
25 LAYOUT( 24 LAYOUT(
26 KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 25 KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
27 KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 26 KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
28 KC_WH_L, KC_WH_R, KC_WH_L, KC_WH_R
29 ) 27 )
30}; 28};
29
30#ifdef ENCODER_MAP_ENABLE
31const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
32 [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) },
33 [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
34};
35#endif
diff --git a/keyboards/takashicompany/dogtag/keymaps/via/rules.mk b/keyboards/takashicompany/dogtag/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/takashicompany/dogtag/keymaps/via/rules.mk
+++ b/keyboards/takashicompany/dogtag/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json
index 1ab624ebcd..da5a95b895 100644
--- a/keyboards/takashicompany/spreadwriter/info.json
+++ b/keyboards/takashicompany/spreadwriter/info.json
@@ -105,9 +105,7 @@
105 {"matrix": [7, 3], "x": 12, "y": 3}, 105 {"matrix": [7, 3], "x": 12, "y": 3},
106 {"matrix": [7, 4], "x": 13, "y": 3.25}, 106 {"matrix": [7, 4], "x": 13, "y": 3.25},
107 {"matrix": [7, 5], "x": 14, "y": 3.5}, 107 {"matrix": [7, 5], "x": 14, "y": 3.5},
108 {"matrix": [7, 6], "x": 15, "y": 3.5}, 108 {"matrix": [7, 6], "x": 15, "y": 3.5}
109 {"matrix": [0, 6], "x": 7, "y": 4.25},
110 {"matrix": [4, 0], "x": 8, "y": 4.25}
111 ] 109 ]
112 } 110 }
113 } 111 }
diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c
index f0ac6aa00b..fb74b6ee30 100644
--- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c
+++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c
@@ -13,56 +13,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 13 KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
14 KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, 14 KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT,
15 KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, 15 KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL,
16 KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, 16 KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT
17 KC_WH_U, KC_WH_D
18 ), 17 ),
19 18
20 LAYOUT( 19 LAYOUT(
21 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, 20 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
22 KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, 21 KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS,
23 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, 22 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,
24 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, 23 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
25 KC_TRNS, KC_TRNS
26 ), 24 ),
27 25
28 LAYOUT( 26 LAYOUT(
29 KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, 27 KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO,
30 KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, 28 KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, 29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS,
32 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, 30 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
33 KC_BSPC, KC_SPC
34 ), 31 ),
35 32
36 LAYOUT( 33 LAYOUT(
37 RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 34 RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
38 KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 35 KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
39 KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, 36 KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS,
40 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, 37 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
41 KC_TRNS, KC_TRNS
42 ), 38 ),
43 39
44 LAYOUT( 40 LAYOUT(
45 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_INT3, KC_TRNS, KC_TRNS, 41 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_INT3, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, 42 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS, 43 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS, 44 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS
49 KC_TRNS, KC_TRNS
50 ), 45 ),
51 46
52 LAYOUT( 47 LAYOUT(
53 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_INT3), KC_TRNS, KC_TRNS, 48 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_INT3), KC_TRNS, KC_TRNS,
54 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS, 49 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS, 50 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS, 51 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS
57 KC_TRNS, KC_TRNS
58 ), 52 ),
59 53
60 LAYOUT( 54 LAYOUT(
61 KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_INT3), KC_TRNS, 55 KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_INT3), KC_TRNS,
62 KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_INT1), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_INT3), KC_TRNS, 56 KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_INT1), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_INT3), KC_TRNS,
63 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, 57 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,
64 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, 58 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
65 KC_TRNS, KC_TRNS
66 ) 59 )
67}; 60};
68 61
@@ -81,7 +74,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
81 } 74 }
82 return false; 75 return false;
83 } 76 }
84 77
85 return true; 78 return true;
86} 79}
87 80
@@ -92,6 +85,5 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
92 } else { 85 } else {
93 tap_code(KC_MS_WH_UP); 86 tap_code(KC_MS_WH_UP);
94 } 87 }
95 88 return false;
96 return true; 89}
97} \ No newline at end of file
diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c
index c0d4a0003d..e5372cd1cd 100644
--- a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c
+++ b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c
@@ -13,56 +13,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 13 KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
14 KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, 14 KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT,
15 KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, 15 KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL,
16 KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, 16 KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT
17 KC_WH_U, KC_WH_D
18 ), 17 ),
19 18
20 LAYOUT( 19 LAYOUT(
21 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, 20 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
22 KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, 21 KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS,
23 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, 22 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,
24 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, 23 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
25 KC_TRNS, KC_TRNS
26 ), 24 ),
27 25
28 LAYOUT( 26 LAYOUT(
29 KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, 27 KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO,
30 KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, 28 KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, 29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS,
32 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, 30 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
33 KC_BSPC, KC_SPC
34 ), 31 ),
35 32
36 LAYOUT( 33 LAYOUT(
37 RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 34 RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
38 KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 35 KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
39 KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, 36 KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS,
40 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, 37 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
41 KC_TRNS, KC_TRNS
42 ), 38 ),
43 39
44 LAYOUT( 40 LAYOUT(
45 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_INT3, KC_TRNS, KC_TRNS, 41 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_INT3, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, 42 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS, 43 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS, 44 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS
49 KC_TRNS, KC_TRNS
50 ), 45 ),
51 46
52 LAYOUT( 47 LAYOUT(
53 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_INT3), KC_TRNS, KC_TRNS, 48 KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_INT3), KC_TRNS, KC_TRNS,
54 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS, 49 KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS, 50 KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS, 51 KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS
57 KC_TRNS, KC_TRNS
58 ), 52 ),
59 53
60 LAYOUT( 54 LAYOUT(
61 KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_INT3), KC_TRNS, 55 KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_INT3), KC_TRNS,
62 KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_INT1), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_INT3), KC_TRNS, 56 KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_INT1), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_INT3), KC_TRNS,
63 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, 57 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,
64 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, 58 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
65 KC_TRNS, KC_TRNS
66 ) 59 )
67}; 60};
68 61
@@ -81,49 +74,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
81 } 74 }
82 return false; 75 return false;
83 } 76 }
84
85 return true;
86}
87
88//------------------------------------------------------------------------------
89// Rotary Encoder
90//------------------------------------------------------------------------------
91static uint8_t encoder_state[NUM_ENCODERS] = {0};
92static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
93static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
94
95void encoder_action_unregister(void) {
96 for (int index = 0; index < NUM_ENCODERS; ++index) {
97 if (encoder_state[index]) {
98 keyevent_t encoder_event = (keyevent_t) {
99 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
100 .pressed = false,
101 .time = timer_read(),
102 .type = KEY_EVENT
103 };
104 encoder_state[index] = 0;
105 action_exec(encoder_event);
106 }
107 }
108}
109
110void encoder_action_register(uint8_t index, bool clockwise) {
111 keyevent_t encoder_event = (keyevent_t) {
112 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
113 .pressed = true,
114 .time = timer_read(),
115 .type = KEY_EVENT
116 };
117 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
118 action_exec(encoder_event);
119}
120 77
121void matrix_scan_kb(void) { 78 return true;
122 encoder_action_unregister();
123 matrix_scan_user();
124} 79}
125 80
126bool encoder_update_user(uint8_t index, bool clockwise) { 81#ifdef ENCODER_MAP_ENABLE
127 encoder_action_register(index, clockwise); 82const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
128 return true; 83 [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
84 [1 ... 6] = { ENCODER_CCW_CW(_______, _______) },
129}; 85};
86#endif
diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk b/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk
index 036bd6d1c3..f1adcab005 100644
--- a/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk
+++ b/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes \ No newline at end of file 1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/tkc/portico75/info.json b/keyboards/tkc/portico75/info.json
index 4380caba4f..171228cb28 100644
--- a/keyboards/tkc/portico75/info.json
+++ b/keyboards/tkc/portico75/info.json
@@ -113,97 +113,6 @@
113 {"matrix": [5, 12], "x": 14.25, "y": 5.5}, 113 {"matrix": [5, 12], "x": 14.25, "y": 5.5},
114 {"matrix": [5, 13], "x": 15.25, "y": 5.5} 114 {"matrix": [5, 13], "x": 15.25, "y": 5.5}
115 ] 115 ]
116 },
117 "LAYOUT_75_via": {
118 "layout": [
119 {"matrix": [0, 0], "x": 0, "y": 0},
120 {"matrix": [0, 1], "x": 1, "y": 0},
121 {"matrix": [0, 2], "x": 2, "y": 0},
122 {"matrix": [0, 3], "x": 3, "y": 0},
123 {"matrix": [0, 4], "x": 4, "y": 0},
124 {"matrix": [0, 5], "x": 5, "y": 0},
125 {"matrix": [0, 6], "x": 6, "y": 0},
126 {"matrix": [0, 7], "x": 7, "y": 0},
127 {"matrix": [0, 8], "x": 8, "y": 0},
128 {"matrix": [0, 9], "x": 9, "y": 0},
129 {"matrix": [0, 10], "x": 10, "y": 0},
130 {"matrix": [0, 11], "x": 11, "y": 0},
131 {"matrix": [0, 12], "x": 12, "y": 0},
132 {"matrix": [0, 13], "x": 13, "y": 0},
133 {"matrix": [0, 14], "x": 14, "y": 0},
134
135 {"matrix": [1, 0], "x": 15, "y": 0},
136 {"matrix": [1, 1], "x": 16, "y": 0},
137 {"matrix": [1, 2], "x": 17, "y": 0},
138 {"matrix": [1, 3], "x": 18, "y": 0},
139 {"matrix": [1, 4], "x": 19, "y": 0},
140 {"matrix": [1, 5], "x": 20, "y": 0},
141 {"matrix": [1, 6], "x": 21, "y": 0},
142 {"matrix": [1, 7], "x": 22, "y": 0},
143 {"matrix": [1, 8], "x": 23, "y": 0},
144 {"matrix": [1, 9], "x": 24, "y": 0},
145 {"matrix": [1, 10], "x": 25, "y": 0},
146 {"matrix": [1, 11], "x": 26, "y": 0},
147 {"matrix": [1, 12], "x": 27, "y": 0},
148 {"matrix": [1, 13], "x": 28, "y": 0},
149 {"matrix": [1, 14], "x": 29, "y": 0},
150
151 {"matrix": [2, 0], "x": 30, "y": 0},
152 {"matrix": [2, 1], "x": 31, "y": 0},
153 {"matrix": [2, 2], "x": 32, "y": 0},
154 {"matrix": [2, 3], "x": 33, "y": 0},
155 {"matrix": [2, 4], "x": 34, "y": 0},
156 {"matrix": [2, 5], "x": 35, "y": 0},
157 {"matrix": [2, 6], "x": 36, "y": 0},
158 {"matrix": [2, 7], "x": 37, "y": 0},
159 {"matrix": [2, 8], "x": 38, "y": 0},
160 {"matrix": [2, 9], "x": 39, "y": 0},
161 {"matrix": [2, 10], "x": 40, "y": 0},
162 {"matrix": [2, 11], "x": 41, "y": 0},
163 {"matrix": [2, 12], "x": 42, "y": 0},
164 {"matrix": [2, 13], "x": 43, "y": 0},
165 {"matrix": [2, 14], "x": 44, "y": 0},
166
167 {"matrix": [3, 0], "x": 45, "y": 0},
168 {"matrix": [3, 1], "x": 46, "y": 0},
169 {"matrix": [3, 2], "x": 47, "y": 0},
170 {"matrix": [3, 3], "x": 48, "y": 0},
171 {"matrix": [3, 4], "x": 49, "y": 0},
172 {"matrix": [3, 5], "x": 50, "y": 0},
173 {"matrix": [3, 6], "x": 51, "y": 0},
174 {"matrix": [3, 7], "x": 52, "y": 0},
175 {"matrix": [3, 8], "x": 53, "y": 0},
176 {"matrix": [3, 9], "x": 54, "y": 0},
177 {"matrix": [3, 10], "x": 55, "y": 0},
178 {"matrix": [3, 11], "x": 56, "y": 0},
179 {"matrix": [3, 12], "x": 57, "y": 0},
180 {"matrix": [3, 14], "x": 58, "y": 0},
181
182 {"matrix": [4, 0], "x": 59, "y": 0},
183 {"matrix": [4, 1], "x": 60, "y": 0},
184 {"matrix": [4, 2], "x": 61, "y": 0},
185 {"matrix": [4, 3], "x": 62, "y": 0},
186 {"matrix": [4, 4], "x": 63, "y": 0},
187 {"matrix": [4, 5], "x": 64, "y": 0},
188 {"matrix": [4, 6], "x": 65, "y": 0},
189 {"matrix": [4, 7], "x": 66, "y": 0},
190 {"matrix": [4, 8], "x": 67, "y": 0},
191 {"matrix": [4, 9], "x": 68, "y": 0},
192 {"matrix": [4, 10], "x": 69, "y": 0},
193 {"matrix": [4, 11], "x": 70, "y": 0},
194 {"matrix": [4, 12], "x": 71, "y": 0},
195 {"matrix": [4, 14], "x": 72, "y": 0},
196
197 {"matrix": [5, 0], "x": 73, "y": 0},
198 {"matrix": [5, 1], "x": 74, "y": 0},
199 {"matrix": [5, 2], "x": 75, "y": 0},
200 {"matrix": [5, 5], "x": 76, "y": 0},
201 {"matrix": [5, 9], "x": 77, "y": 0},
202 {"matrix": [5, 10], "x": 78, "y": 0},
203 {"matrix": [5, 11], "x": 79, "y": 0},
204 {"matrix": [5, 12], "x": 80, "y": 0},
205 {"matrix": [5, 13], "x": 81, "y": 0}
206 ]
207 } 116 }
208 } 117 }
209} 118}
diff --git a/keyboards/tkc/portico75/keymaps/via/keymap.c b/keyboards/tkc/portico75/keymaps/via/keymap.c
index befb3b8829..03e96a2706 100644
--- a/keyboards/tkc/portico75/keymaps/via/keymap.c
+++ b/keyboards/tkc/portico75/keymaps/via/keymap.c
@@ -27,47 +27,47 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27// BR_INC, BR_DEC, // backlight brightness increase/decrease 27// BR_INC, BR_DEC, // backlight brightness increase/decrease
28 28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 [0] = LAYOUT_75_via( 30 [0] = LAYOUT_75_ansi(
31 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, 31 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE,
32 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 32 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
33 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 33 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
34 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, 34 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_VOLU, 35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
36 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 36 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
37 ), 37 ),
38#ifdef RGB_BACKLIGHT_PORTICO75 38#ifdef RGB_BACKLIGHT_PORTICO75
39 [1] = LAYOUT_75_via( 39 [1] = LAYOUT_75_ansi(
40 _______, EF_INC, EF_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, H2_INC, H2_DEC, S2_INC, S2_DEC, BR_INC, BR_DEC, _______, _______, 40 _______, EF_INC, EF_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, H2_INC, H2_DEC, S2_INC, S2_DEC, BR_INC, BR_DEC, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______ 45 _______, _______, _______, _______, _______, _______, _______, _______, _______
46 ), 46 ),
47#else 47#else
48 [1] = LAYOUT_75_via( 48 [1] = LAYOUT_75_ansi(
49 _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, 49 _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, _______, _______, _______ 54 _______, _______, _______, _______, _______, _______, _______, _______, _______
55 ), 55 ),
56#endif 56#endif
57 [2] = LAYOUT_75_via( 57 [2] = LAYOUT_75_ansi(
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
63 _______, _______, _______, _______, _______, _______, _______, _______, _______ 63 _______, _______, _______, _______, _______, _______, _______, _______, _______
64 ), 64 ),
65 [3] = LAYOUT_75_via( 65 [3] = LAYOUT_75_ansi(
66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
71 _______, _______, _______, _______, _______, _______, _______, _______, _______ 71 _______, _______, _______, _______, _______, _______, _______, _______, _______
72 ) 72 )
73}; 73};
diff --git a/keyboards/wekey/we27/encoder_actions.c b/keyboards/wekey/we27/encoder_actions.c
deleted file mode 100644
index 87a53676e6..0000000000
--- a/keyboards/wekey/we27/encoder_actions.c
+++ /dev/null
@@ -1,52 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 * Copyright 2021 drashna jael're (@drashna)
3 * Copyright 2021 uybv
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include "encoder_actions.h"
20
21#ifdef ENCODER_ENABLE
22static uint8_t encoder_state[NUM_ENCODERS] = {0};
23static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
24static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
25
26void encoder_action_unregister(void) {
27 for (int index = 0; index < NUM_ENCODERS; ++index) {
28 if (encoder_state[index]) {
29 keyevent_t encoder_event = (keyevent_t) {
30 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
31 .pressed = false,
32 .time = timer_read(),
33 .type = KEY_EVENT
34 };
35 encoder_state[index] = 0;
36 action_exec(encoder_event);
37 }
38 }
39}
40
41void encoder_action_register(uint8_t index, bool clockwise) {
42 keyevent_t encoder_event = (keyevent_t) {
43 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
44 .pressed = true,
45 .time = timer_read(),
46 .type = KEY_EVENT
47 };
48 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
49 action_exec(encoder_event);
50}
51
52#endif
diff --git a/keyboards/wekey/we27/encoder_actions.h b/keyboards/wekey/we27/encoder_actions.h
deleted file mode 100644
index 1a7fb72014..0000000000
--- a/keyboards/wekey/we27/encoder_actions.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21void encoder_action_unregister(void);
22
23void encoder_action_register(uint8_t index, bool clockwise);
diff --git a/keyboards/wekey/we27/info.json b/keyboards/wekey/we27/info.json
index 7fa45a13ab..62b477bce5 100644
--- a/keyboards/wekey/we27/info.json
+++ b/keyboards/wekey/we27/info.json
@@ -63,45 +63,6 @@
63 {"matrix": [5, 3], "x": 3, "y": 5.5}, 63 {"matrix": [5, 3], "x": 3, "y": 5.5},
64 {"matrix": [4, 4], "x": 4, "y": 4.5, "h": 2} 64 {"matrix": [4, 4], "x": 4, "y": 4.5, "h": 2}
65 ] 65 ]
66 },
67 "LAYOUT_numpad_6x5_encoder": {
68 "layout": [
69 {"matrix": [0, 0], "x": 0, "y": 0.75},
70 {"matrix": [0, 1], "x": 1, "y": 0.75},
71 {"matrix": [0, 2], "x": 2, "y": 0.75},
72 {"matrix": [0, 3], "x": 3, "y": 0.75},
73 {"matrix": [0, 4], "x": 4, "y": 0.75},
74
75 {"matrix": [3, 4], "x": 3.75, "y": 0, "w": 0.75, "h": 0.75},
76 {"matrix": [5, 4], "x": 4.5, "y": 0, "w": 0.75, "h": 0.75},
77
78 {"matrix": [1, 0], "x": 0, "y": 2.25},
79 {"matrix": [1, 1], "x": 1, "y": 2.25},
80 {"matrix": [1, 2], "x": 2, "y": 2.25},
81 {"matrix": [1, 3], "x": 3, "y": 2.25},
82 {"matrix": [1, 4], "x": 4, "y": 2.25},
83
84 {"matrix": [2, 0], "x": 0, "y": 3.25},
85 {"matrix": [2, 1], "x": 1, "y": 3.25},
86 {"matrix": [2, 2], "x": 2, "y": 3.25},
87 {"matrix": [2, 3], "x": 3, "y": 3.25},
88
89 {"matrix": [3, 0], "x": 0, "y": 4.25},
90 {"matrix": [3, 1], "x": 1, "y": 4.25},
91 {"matrix": [3, 2], "x": 2, "y": 4.25},
92 {"matrix": [3, 3], "x": 3, "y": 4.25},
93 {"matrix": [2, 4], "x": 4, "y": 3.25, "h": 2},
94
95 {"matrix": [4, 0], "x": 0, "y": 5.25},
96 {"matrix": [4, 1], "x": 1, "y": 5.25},
97 {"matrix": [4, 2], "x": 2, "y": 5.25},
98 {"matrix": [4, 3], "x": 3, "y": 5.25},
99
100 {"matrix": [5, 0], "x": 0, "y": 6.25},
101 {"matrix": [5, 1], "x": 1, "y": 6.25, "w": 2},
102 {"matrix": [5, 3], "x": 3, "y": 6.25},
103 {"matrix": [4, 4], "x": 4, "y": 5.25, "h": 2}
104 ]
105 } 66 }
106 } 67 }
107} 68}
diff --git a/keyboards/wekey/we27/keymaps/default/keymap.c b/keyboards/wekey/we27/keymaps/default/keymap.c
index 741b25e3e7..c16cef9dd6 100644
--- a/keyboards/wekey/we27/keymaps/default/keymap.c
+++ b/keyboards/wekey/we27/keymaps/default/keymap.c
@@ -17,32 +17,32 @@
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Base */ 19 /* Base */
20 [0] = LAYOUT_numpad_6x5_encoder( 20 [0] = LAYOUT_numpad_6x5(
21 KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_VOLD, KC_VOLU, 21 KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE,
22 KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, 22 KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS,
23 RGB_MOD, KC_P7 , KC_P8 , KC_P9 , 23 RGB_MOD, KC_P7 , KC_P8 , KC_P9 ,
24 RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, 24 RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS,
25 RGB_TOG, KC_P1 , KC_P2 , KC_P3 , 25 RGB_TOG, KC_P1 , KC_P2 , KC_P3 ,
26 MO(1) , KC_P0 , KC_PDOT, KC_PENT 26 MO(1) , KC_P0 , KC_PDOT, KC_PENT
27 ), 27 ),
28 [1] = LAYOUT_numpad_6x5_encoder( 28 [1] = LAYOUT_numpad_6x5(
29 _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, 29 _______, _______, _______, _______, KC_MPLY,
30 _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______,
31 RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, 31 RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
32 RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, 32 RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
33 _______, _______, _______, _______, 33 _______, _______, _______, _______,
34 _______, _______, _______, QK_BOOT 34 _______, _______, _______, QK_BOOT
35 ), 35 ),
36 [2] = LAYOUT_numpad_6x5_encoder( 36 [2] = LAYOUT_numpad_6x5(
37 _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, 39 _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, 40 _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, 41 _______, _______, _______, _______,
42 _______, _______, _______, _______ 42 _______, _______, _______, _______
43 ), 43 ),
44 [3] = LAYOUT_numpad_6x5_encoder( 44 [3] = LAYOUT_numpad_6x5(
45 _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, 47 _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, 48 _______, _______, _______, _______, _______,
@@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 _______, _______, _______, _______ 50 _______, _______, _______, _______
51 ) 51 )
52}; 52};
53
54#ifdef ENCODER_MAP_ENABLE
55const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57 [1] = { ENCODER_CCW_CW(_______, _______) },
58 [2] = { ENCODER_CCW_CW(_______, _______) },
59 [3] = { ENCODER_CCW_CW(_______, _______) },
60};
61#endif
diff --git a/keyboards/wekey/we27/keymaps/default/rules.mk b/keyboards/wekey/we27/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/wekey/we27/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/wekey/we27/keymaps/via/keymap.c b/keyboards/wekey/we27/keymaps/via/keymap.c
index 741b25e3e7..c16cef9dd6 100644
--- a/keyboards/wekey/we27/keymaps/via/keymap.c
+++ b/keyboards/wekey/we27/keymaps/via/keymap.c
@@ -17,32 +17,32 @@
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Base */ 19 /* Base */
20 [0] = LAYOUT_numpad_6x5_encoder( 20 [0] = LAYOUT_numpad_6x5(
21 KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_VOLD, KC_VOLU, 21 KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE,
22 KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, 22 KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS,
23 RGB_MOD, KC_P7 , KC_P8 , KC_P9 , 23 RGB_MOD, KC_P7 , KC_P8 , KC_P9 ,
24 RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, 24 RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS,
25 RGB_TOG, KC_P1 , KC_P2 , KC_P3 , 25 RGB_TOG, KC_P1 , KC_P2 , KC_P3 ,
26 MO(1) , KC_P0 , KC_PDOT, KC_PENT 26 MO(1) , KC_P0 , KC_PDOT, KC_PENT
27 ), 27 ),
28 [1] = LAYOUT_numpad_6x5_encoder( 28 [1] = LAYOUT_numpad_6x5(
29 _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, 29 _______, _______, _______, _______, KC_MPLY,
30 _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______,
31 RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, 31 RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
32 RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, 32 RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
33 _______, _______, _______, _______, 33 _______, _______, _______, _______,
34 _______, _______, _______, QK_BOOT 34 _______, _______, _______, QK_BOOT
35 ), 35 ),
36 [2] = LAYOUT_numpad_6x5_encoder( 36 [2] = LAYOUT_numpad_6x5(
37 _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, 39 _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, 40 _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, 41 _______, _______, _______, _______,
42 _______, _______, _______, _______ 42 _______, _______, _______, _______
43 ), 43 ),
44 [3] = LAYOUT_numpad_6x5_encoder( 44 [3] = LAYOUT_numpad_6x5(
45 _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, 47 _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, 48 _______, _______, _______, _______, _______,
@@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 _______, _______, _______, _______ 50 _______, _______, _______, _______
51 ) 51 )
52}; 52};
53
54#ifdef ENCODER_MAP_ENABLE
55const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57 [1] = { ENCODER_CCW_CW(_______, _______) },
58 [2] = { ENCODER_CCW_CW(_______, _______) },
59 [3] = { ENCODER_CCW_CW(_______, _______) },
60};
61#endif
diff --git a/keyboards/wekey/we27/keymaps/via/rules.mk b/keyboards/wekey/we27/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/wekey/we27/keymaps/via/rules.mk
+++ b/keyboards/wekey/we27/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/wekey/we27/rules.mk b/keyboards/wekey/we27/rules.mk
index c76f29ff75..e799183b38 100644
--- a/keyboards/wekey/we27/rules.mk
+++ b/keyboards/wekey/we27/rules.mk
@@ -15,5 +15,3 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix
15 15
16DEBOUNCE_TYPE = sym_defer_pk 16DEBOUNCE_TYPE = sym_defer_pk
17RGB_MATRIX_CUSTOM_KB = yes 17RGB_MATRIX_CUSTOM_KB = yes
18
19SRC += encoder_actions.c
diff --git a/keyboards/wekey/we27/we27.c b/keyboards/wekey/we27/we27.c
index 9f2b85d95f..03ec6f5512 100644
--- a/keyboards/wekey/we27/we27.c
+++ b/keyboards/wekey/we27/we27.c
@@ -15,7 +15,6 @@
15 */ 15 */
16 16
17#include "quantum.h" 17#include "quantum.h"
18#include "encoder_actions.h"
19 18
20#ifdef RGB_MATRIX_ENABLE 19#ifdef RGB_MATRIX_ENABLE
21 20
@@ -45,14 +44,3 @@ led_config_t g_led_config = { {
45} }; 44} };
46 45
47#endif 46#endif
48
49void matrix_scan_kb(void) {
50 encoder_action_unregister();
51 matrix_scan_user();
52}
53
54bool encoder_update_kb(uint8_t index, bool clockwise) {
55 if (!encoder_update_user(index, clockwise)) { return false; }
56 encoder_action_register(index, clockwise);
57 return true;
58};
diff --git a/keyboards/winry/winry315/keymaps/via/encoder_actions.c b/keyboards/winry/winry315/keymaps/via/encoder_actions.c
deleted file mode 100644
index d24d13bb26..0000000000
--- a/keyboards/winry/winry315/keymaps/via/encoder_actions.c
+++ /dev/null
@@ -1,80 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 * Copyright 2021 drashna jael're (@drashna)
3 * Copyright 2022 Sergey Vlasov (@sigprof)
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include "encoder_actions.h"
20
21#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
22
23# ifndef ENCODER_TAP_DURATION_MS
24# define ENCODER_TAP_DURATION_MS 10
25# endif
26
27# define ENCODER_STATE_CW 0x01
28# define ENCODER_STATE_CCW 0x02
29
30static uint8_t encoder_state[NUM_ENCODERS] = {0};
31static uint16_t encoder_timer[NUM_ENCODERS] = {0};
32static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
33static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
34
35static void exec_encoder_action(uint8_t index, bool clockwise, bool pressed) {
36 // clang-format off
37 keyevent_t encoder_event = (keyevent_t) {
38 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
39 .pressed = pressed,
40 .time = timer_read(),
41 .type = KEY_EVENT
42 };
43 // clang-format on
44 action_exec(encoder_event);
45}
46
47void encoder_action_unregister(void) {
48 for (int index = 0; index < NUM_ENCODERS; ++index) {
49 if (encoder_state[index] && (timer_elapsed(encoder_timer[index]) >= ENCODER_TAP_DURATION_MS)) {
50 bool clockwise = !!(encoder_state[index] & ENCODER_STATE_CW);
51 encoder_state[index] = 0;
52 exec_encoder_action(index, clockwise, false);
53 }
54 }
55}
56
57void encoder_action_register(uint8_t index, bool clockwise) {
58 if (encoder_state[index]) {
59 bool was_clockwise = !!(encoder_state[index] & ENCODER_STATE_CW);
60 encoder_state[index] = 0;
61 exec_encoder_action(index, was_clockwise, false);
62 }
63 encoder_state[index] = clockwise ? ENCODER_STATE_CW : ENCODER_STATE_CCW;
64 encoder_timer[index] = timer_read();
65 exec_encoder_action(index, clockwise, true);
66}
67
68void matrix_scan_kb(void) {
69 encoder_action_unregister();
70 matrix_scan_user();
71}
72
73bool encoder_update_kb(uint8_t index, bool clockwise) {
74 encoder_action_register(index, clockwise);
75 // don't return user actions, because they are in the keymap
76 // encoder_update_user(index, clockwise);
77 return true;
78};
79
80#endif
diff --git a/keyboards/winry/winry315/keymaps/via/encoder_actions.h b/keyboards/winry/winry315/keymaps/via/encoder_actions.h
deleted file mode 100644
index 2484af52ae..0000000000
--- a/keyboards/winry/winry315/keymaps/via/encoder_actions.h
+++ /dev/null
@@ -1,21 +0,0 @@
1/* Copyright 2020 Neil Brian Ramirez
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19void encoder_action_unregister(void);
20
21void encoder_action_register(uint8_t index, bool clockwise);
diff --git a/keyboards/winry/winry315/keymaps/via/keymap.c b/keyboards/winry/winry315/keymaps/via/keymap.c
index 67598ac337..25d545f50b 100644
--- a/keyboards/winry/winry315/keymaps/via/keymap.c
+++ b/keyboards/winry/winry315/keymaps/via/keymap.c
@@ -5,36 +5,23 @@
5 5
6// clang-format off 6// clang-format off
7 7
8#define LAYOUT_via( \
9 k17, k15, k16, \
10 k23,k22, k19,k18, k21,k20, \
11 k00, k01, k02, k03, k04, \
12 k05, k06, k07, k08, k09, \
13 k10, k11, k12, k13, k14 \
14) { \
15 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23 } \
16}
17
18#define U_LTESC LT(1, KC_ESC) 8#define U_LTESC LT(1, KC_ESC)
19 9
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_via( 11 [0] = LAYOUT_top(
22 KC_HOME, KC_MUTE, KC_MPLY, 12 KC_HOME, KC_MUTE, KC_MPLY,
23 KC_PGUP, KC_PGDN, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT,
24 KC_1, KC_2, KC_3, KC_4, KC_5, 13 KC_1, KC_2, KC_3, KC_4, KC_5,
25 KC_6, KC_7, KC_8, KC_9, KC_0, 14 KC_6, KC_7, KC_8, KC_9, KC_0,
26 U_LTESC, KC_TAB, KC_SPC, KC_BSPC, KC_ENT 15 U_LTESC, KC_TAB, KC_SPC, KC_BSPC, KC_ENT
27 ), 16 ),
28 [1] = LAYOUT_via( 17 [1] = LAYOUT_top(
29 RGB_M_P, RGB_M_B, RGB_M_R, 18 RGB_M_P, RGB_M_B, RGB_M_R,
30 RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI,
31 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, 19 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI,
32 RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 20 RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD,
33 KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R 21 KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R
34 ), 22 ),
35 [2 ... 7] = LAYOUT_via( 23 [2 ... 7] = LAYOUT_top(
36 KC_TRNS, KC_TRNS, KC_TRNS, 24 KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 25 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 26 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
@@ -42,3 +29,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42}; 29};
43 30
44// clang-format on 31// clang-format on
32
33#ifdef ENCODER_MAP_ENABLE
34const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
35 [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
36 [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
37 [2 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
38};
39#endif
diff --git a/keyboards/winry/winry315/keymaps/via/rules.mk b/keyboards/winry/winry315/keymaps/via/rules.mk
index 6098ef3ad8..1189f4ad19 100644
--- a/keyboards/winry/winry315/keymaps/via/rules.mk
+++ b/keyboards/winry/winry315/keymaps/via/rules.mk
@@ -1,4 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3 3ENCODER_MAP_ENABLE = yes
4SRC += encoder_actions.c
diff --git a/keyboards/wuque/mammoth20x/config.h b/keyboards/wuque/mammoth20x/config.h
index c35fac65d6..db5a8d534e 100644
--- a/keyboards/wuque/mammoth20x/config.h
+++ b/keyboards/wuque/mammoth20x/config.h
@@ -22,7 +22,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22 22
23/* Locking resynchronize hack */ 23/* Locking resynchronize hack */
24#define LOCKING_RESYNC_ENABLE 24#define LOCKING_RESYNC_ENABLE
25
26// Note: array is { col, row )
27#define ENCODERS_CW_KEY { { 3, 2 } }
28#define ENCODERS_CCW_KEY { { 3, 4 } }
diff --git a/keyboards/wuque/mammoth20x/info.json b/keyboards/wuque/mammoth20x/info.json
index 3c0c0e29b8..f7917ae26d 100644
--- a/keyboards/wuque/mammoth20x/info.json
+++ b/keyboards/wuque/mammoth20x/info.json
@@ -29,9 +29,7 @@
29 {"matrix": [0, 0], "x": 0, "y": 0}, 29 {"matrix": [0, 0], "x": 0, "y": 0},
30 {"matrix": [0, 1], "x": 1, "y": 0}, 30 {"matrix": [0, 1], "x": 1, "y": 0},
31 {"matrix": [0, 2], "x": 2, "y": 0}, 31 {"matrix": [0, 2], "x": 2, "y": 0},
32 {"matrix": [2, 3], "x": 3, "y": 0, "w": 0.5},
33 {"matrix": [0, 3], "x": 3.5, "y": 0}, 32 {"matrix": [0, 3], "x": 3.5, "y": 0},
34 {"matrix": [4, 3], "x": 4.5, "y": 0, "w": 0.5},
35 33
36 {"matrix": [1, 0], "x": 0, "y": 1}, 34 {"matrix": [1, 0], "x": 0, "y": 1},
37 {"matrix": [1, 1], "x": 1, "y": 1}, 35 {"matrix": [1, 1], "x": 1, "y": 1},
diff --git a/keyboards/wuque/mammoth20x/keymaps/default/keymap.c b/keyboards/wuque/mammoth20x/keymaps/default/keymap.c
index e19b3bc172..5f444bbff3 100644
--- a/keyboards/wuque/mammoth20x/keymaps/default/keymap.c
+++ b/keyboards/wuque/mammoth20x/keymaps/default/keymap.c
@@ -18,7 +18,7 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT( 20 [0] = LAYOUT(
21 KC_ESC, KC_PAUS, KC_DEL, KC_VOLU, KC_MUTE, KC_VOLD, 21 KC_ESC, KC_PAUS, KC_DEL, KC_MUTE,
22 KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, 22 KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS,
23 KC_P7, KC_P8, KC_P9, 23 KC_P7, KC_P8, KC_P9,
24 KC_P4, KC_P5, KC_P6, KC_PPLS, 24 KC_P4, KC_P5, KC_P6, KC_PPLS,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 KC_P0, KC_PDOT, KC_PENT 26 KC_P0, KC_PDOT, KC_PENT
27 ), 27 ),
28 [1] = LAYOUT( 28 [1] = LAYOUT(
29 _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______,
30 _______, _______, _______, _______, 30 _______, _______, _______, _______,
31 _______, _______, _______, 31 _______, _______, _______,
32 _______, _______, _______, _______, 32 _______, _______, _______, _______,
diff --git a/keyboards/wuque/mammoth20x/keymaps/via/keymap.c b/keyboards/wuque/mammoth20x/keymaps/via/keymap.c
index e5fe34fd7b..76db645d0e 100644
--- a/keyboards/wuque/mammoth20x/keymaps/via/keymap.c
+++ b/keyboards/wuque/mammoth20x/keymaps/via/keymap.c
@@ -18,7 +18,7 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT( 20 [0] = LAYOUT(
21 KC_ESC, KC_PAUS, KC_DEL, KC_VOLD, KC_MUTE, KC_VOLU, 21 KC_ESC, KC_PAUS, KC_DEL, KC_MUTE,
22 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 22 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
23 KC_P7, KC_P8, KC_P9, 23 KC_P7, KC_P8, KC_P9,
24 KC_P4, KC_P5, KC_P6, KC_PPLS, 24 KC_P4, KC_P5, KC_P6, KC_PPLS,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 KC_P0, KC_PDOT, KC_PENT 26 KC_P0, KC_PDOT, KC_PENT
27 ), 27 ),
28 [1] = LAYOUT( 28 [1] = LAYOUT(
29 _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______,
30 _______, _______, _______, _______, 30 _______, _______, _______, _______,
31 _______, _______, _______, 31 _______, _______, _______,
32 _______, _______, _______, _______, 32 _______, _______, _______, _______,
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 _______, _______, _______ 34 _______, _______, _______
35 ), 35 ),
36 [2] = LAYOUT( 36 [2] = LAYOUT(
37 _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______,
38 _______, _______, _______, _______, 38 _______, _______, _______, _______,
39 _______, _______, _______, 39 _______, _______, _______,
40 _______, _______, _______, _______, 40 _______, _______, _______, _______,
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 _______, _______, _______ 42 _______, _______, _______
43 ), 43 ),
44 [3] = LAYOUT( 44 [3] = LAYOUT(
45 _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______,
46 _______, _______, _______, _______, 46 _______, _______, _______, _______,
47 _______, _______, _______, 47 _______, _______, _______,
48 _______, _______, _______, _______, 48 _______, _______, _______, _______,
@@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 _______, _______, _______ 50 _______, _______, _______
51 ), 51 ),
52}; 52};
53
54#ifdef ENCODER_MAP_ENABLE
55const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57 [1] = { ENCODER_CCW_CW(_______, _______) },
58 [2] = { ENCODER_CCW_CW(_______, _______) },
59 [3] = { ENCODER_CCW_CW(_______, _______) },
60};
61#endif
diff --git a/keyboards/wuque/mammoth20x/keymaps/via/rules.mk b/keyboards/wuque/mammoth20x/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/wuque/mammoth20x/keymaps/via/rules.mk
+++ b/keyboards/wuque/mammoth20x/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/wuque/mammoth20x/mammoth20x.c b/keyboards/wuque/mammoth20x/mammoth20x.c
deleted file mode 100644
index eeaea79c71..0000000000
--- a/keyboards/wuque/mammoth20x/mammoth20x.c
+++ /dev/null
@@ -1,62 +0,0 @@
1/* Copyright 2021 wuquestudio
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19static uint8_t encoder_state[NUM_ENCODERS] = {0};
20static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
21static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
22
23void encoder_action_unregister(void)
24{
25 for (int index = 0; index < NUM_ENCODERS; ++index)
26 {
27 if (encoder_state[index])
28 {
29 keyevent_t encoder_event = (keyevent_t){
30 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
31 .pressed = false,
32 .time = timer_read(),
33 .type = KEY_EVENT
34 };
35 encoder_state[index] = 0;
36 action_exec(encoder_event);
37 }
38 }
39}
40void encoder_action_register(uint8_t index, bool clockwise)
41{
42 keyevent_t encoder_event = (keyevent_t){
43 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
44 .pressed = true,
45 .time = timer_read(),
46 .type = KEY_EVENT
47 };
48 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
49 action_exec(encoder_event);
50}
51
52void matrix_scan_kb(void)
53{
54 encoder_action_unregister();
55 matrix_scan_user();
56}
57
58bool encoder_update_kb(uint8_t index, bool clockwise)
59{
60 encoder_action_register(index, clockwise);
61 return true;
62};
diff --git a/keyboards/wuque/mammoth75x/config.h b/keyboards/wuque/mammoth75x/config.h
index 6b0d17be5c..db5a8d534e 100644
--- a/keyboards/wuque/mammoth75x/config.h
+++ b/keyboards/wuque/mammoth75x/config.h
@@ -22,7 +22,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22 22
23/* Locking resynchronize hack */ 23/* Locking resynchronize hack */
24#define LOCKING_RESYNC_ENABLE 24#define LOCKING_RESYNC_ENABLE
25
26// Note: array is { col, row )
27#define ENCODERS_CW_KEY { { 3, 5 } }
28#define ENCODERS_CCW_KEY { { 5, 5 } }
diff --git a/keyboards/wuque/mammoth75x/info.json b/keyboards/wuque/mammoth75x/info.json
index ef48587375..9b9bc1abb6 100644
--- a/keyboards/wuque/mammoth75x/info.json
+++ b/keyboards/wuque/mammoth75x/info.json
@@ -41,10 +41,7 @@
41 {"matrix": [0, 11], "x": 11.75, "y": 0}, 41 {"matrix": [0, 11], "x": 11.75, "y": 0},
42 {"matrix": [0, 12], "x": 12.75, "y": 0}, 42 {"matrix": [0, 12], "x": 12.75, "y": 0},
43 {"matrix": [0, 13], "x": 14, "y": 0}, 43 {"matrix": [0, 13], "x": 14, "y": 0},
44
45 {"matrix": [5, 3], "x": 15.65, "y": 0.125, "w": 0.6, "h": 0.5},
46 {"matrix": [0, 14], "x": 15.75, "y": 0.625}, 44 {"matrix": [0, 14], "x": 15.75, "y": 0.625},
47 {"matrix": [5, 5], "x": 16.25, "y": 0.125, "w": 0.6, "h": 0.5},
48 45
49 {"matrix": [1, 0], "x": 0, "y": 1.25}, 46 {"matrix": [1, 0], "x": 0, "y": 1.25},
50 {"matrix": [1, 1], "x": 1, "y": 1.25}, 47 {"matrix": [1, 1], "x": 1, "y": 1.25},
diff --git a/keyboards/wuque/mammoth75x/keymaps/default/keymap.c b/keyboards/wuque/mammoth75x/keymaps/default/keymap.c
index b0273298dc..0ed2bdfebe 100644
--- a/keyboards/wuque/mammoth75x/keymaps/default/keymap.c
+++ b/keyboards/wuque/mammoth75x/keymaps/default/keymap.c
@@ -18,7 +18,7 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLD, KC_MUTE,KC_VOLU, 21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, 22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_PGUP, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_PGUP,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, KC_PGDN, 24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, KC_PGDN,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ), 27 ),
28 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/wuque/mammoth75x/keymaps/via/keymap.c b/keyboards/wuque/mammoth75x/keymaps/via/keymap.c
index 13d5d4fa7a..4fc9680100 100644
--- a/keyboards/wuque/mammoth75x/keymaps/via/keymap.c
+++ b/keyboards/wuque/mammoth75x/keymaps/via/keymap.c
@@ -18,7 +18,7 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLD, KC_MUTE,KC_VOLU, 21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE,
22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, 22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_PGUP, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_PGUP,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, KC_PGDN, 24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, KC_PGDN,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ), 27 ),
28 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
35 ), 35 ),
36 [2] = LAYOUT_all( 36 [2] = LAYOUT_all(
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
43 ), 43 ),
44 [3] = LAYOUT_all( 44 [3] = LAYOUT_all(
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
51 ), 51 ),
52}; 52};
53
54#ifdef ENCODER_MAP_ENABLE
55const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57 [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
58 [2] = { ENCODER_CCW_CW(_______, _______) },
59 [3] = { ENCODER_CCW_CW(_______, _______) },
60};
61#endif
diff --git a/keyboards/wuque/mammoth75x/keymaps/via/rules.mk b/keyboards/wuque/mammoth75x/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/wuque/mammoth75x/keymaps/via/rules.mk
+++ b/keyboards/wuque/mammoth75x/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/wuque/mammoth75x/mammoth75x.c b/keyboards/wuque/mammoth75x/mammoth75x.c
deleted file mode 100644
index 3b2d995b7e..0000000000
--- a/keyboards/wuque/mammoth75x/mammoth75x.c
+++ /dev/null
@@ -1,64 +0,0 @@
1/* Copyright 2021 wuquestudio
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19#ifdef VIA_ENABLE
20static uint8_t encoder_state[NUM_ENCODERS] = {0};
21static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
22static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
23
24void encoder_action_unregister(void)
25{
26 for (int index = 0; index < NUM_ENCODERS; ++index)
27 {
28 if (encoder_state[index])
29 {
30 keyevent_t encoder_event = (keyevent_t){
31 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
32 .pressed = false,
33 .time = timer_read(),
34 .type = KEY_EVENT
35 };
36 encoder_state[index] = 0;
37 action_exec(encoder_event);
38 }
39 }
40}
41void encoder_action_register(uint8_t index, bool clockwise)
42{
43 keyevent_t encoder_event = (keyevent_t){
44 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
45 .pressed = true,
46 .time = timer_read(),
47 .type = KEY_EVENT
48 };
49 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
50 action_exec(encoder_event);
51}
52
53void matrix_scan_kb(void)
54{
55 encoder_action_unregister();
56 matrix_scan_user();
57}
58
59bool encoder_update_kb(uint8_t index, bool clockwise)
60{
61 encoder_action_register(index, clockwise);
62 return true;
63};
64#endif
diff --git a/keyboards/wuque/serneity65/info.json b/keyboards/wuque/serneity65/info.json
index 9ebc9af843..f27073b285 100644
--- a/keyboards/wuque/serneity65/info.json
+++ b/keyboards/wuque/serneity65/info.json
@@ -41,9 +41,7 @@
41 {"matrix": [0, 11], "x": 11, "y": 0}, 41 {"matrix": [0, 11], "x": 11, "y": 0},
42 {"matrix": [0, 12], "x": 12, "y": 0}, 42 {"matrix": [0, 12], "x": 12, "y": 0},
43 {"matrix": [0, 13], "x": 13, "y": 0}, 43 {"matrix": [0, 13], "x": 13, "y": 0},
44 {"matrix": [4, 3], "x": 15, "y": 0, "w": 0.5},
45 {"matrix": [0, 14], "x": 15.5, "y": 0}, 44 {"matrix": [0, 14], "x": 15.5, "y": 0},
46 {"matrix": [4, 5], "x": 16.5, "y": 0, "w": 0.5},
47 45
48 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, 46 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
49 {"matrix": [1, 1], "x": 1.5, "y": 1}, 47 {"matrix": [1, 1], "x": 1.5, "y": 1},
diff --git a/keyboards/wuque/serneity65/keymaps/default/keymap.c b/keyboards/wuque/serneity65/keymaps/default/keymap.c
index 2acca2f0c0..23ddfced88 100644
--- a/keyboards/wuque/serneity65/keymaps/default/keymap.c
+++ b/keyboards/wuque/serneity65/keymaps/default/keymap.c
@@ -18,17 +18,17 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, KC_PGUP,
24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPRV, KC_MPLY, KC_MNXT, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPLY,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ), 33 )
34}; 34 };
diff --git a/keyboards/wuque/serneity65/keymaps/via/keymap.c b/keyboards/wuque/serneity65/keymaps/via/keymap.c
index 8e820022fe..d414f950d9 100644
--- a/keyboards/wuque/serneity65/keymaps/via/keymap.c
+++ b/keyboards/wuque/serneity65/keymaps/via/keymap.c
@@ -18,31 +18,40 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_BSPC, KC_PGUP,
24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, 24 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT_all( 27 [1] = LAYOUT_all(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPRV, KC_MPLY, KC_MNXT, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPLY,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ), 33 ),
34 [2] = LAYOUT_all( 34 [2] = LAYOUT_all(
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ), 40 ),
41 [3] = LAYOUT_all( 41 [3] = LAYOUT_all(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
47 ), 47 ),
48}; 48};
49
50#ifdef ENCODER_MAP_ENABLE
51const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
52 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
53 [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
54 [2] = { ENCODER_CCW_CW(_______, _______) },
55 [3] = { ENCODER_CCW_CW(_______, _______) },
56};
57#endif
diff --git a/keyboards/wuque/serneity65/keymaps/via/rules.mk b/keyboards/wuque/serneity65/keymaps/via/rules.mk
index 43061db1dd..1189f4ad19 100644
--- a/keyboards/wuque/serneity65/keymaps/via/rules.mk
+++ b/keyboards/wuque/serneity65/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/wuque/serneity65/serneity65.c b/keyboards/wuque/serneity65/serneity65.c
deleted file mode 100644
index 58e0663467..0000000000
--- a/keyboards/wuque/serneity65/serneity65.c
+++ /dev/null
@@ -1,64 +0,0 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19#ifdef VIA_ENABLE
20static uint8_t encoder_state[NUM_ENCODERS] = {0};
21static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
22static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
23
24void encoder_action_unregister(void)
25{
26 for (int index = 0; index < NUM_ENCODERS; ++index)
27 {
28 if (encoder_state[index])
29 {
30 keyevent_t encoder_event = (keyevent_t){
31 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
32 .pressed = false,
33 .time = timer_read(),
34 .type = KEY_EVENT
35 };
36 encoder_state[index] = 0;
37 action_exec(encoder_event);
38 }
39 }
40}
41void encoder_action_register(uint8_t index, bool clockwise)
42{
43 keyevent_t encoder_event = (keyevent_t){
44 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
45 .pressed = true,
46 .time = timer_read(),
47 .type = KEY_EVENT
48 };
49 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
50 action_exec(encoder_event);
51}
52
53void matrix_scan_kb(void)
54{
55 encoder_action_unregister();
56 matrix_scan_user();
57}
58
59bool encoder_update_kb(uint8_t index, bool clockwise)
60{
61 encoder_action_register(index, clockwise);
62 return true;
63};
64#endif
diff --git a/keyboards/yandrstudio/nz67v2/info.json b/keyboards/yandrstudio/nz67v2/info.json
index 6149c998f7..d4663a160d 100644
--- a/keyboards/yandrstudio/nz67v2/info.json
+++ b/keyboards/yandrstudio/nz67v2/info.json
@@ -40,10 +40,8 @@
40 {"matrix": [0, 11], "x": 11, "y": 0.5}, 40 {"matrix": [0, 11], "x": 11, "y": 0.5},
41 {"matrix": [0, 12], "x": 12, "y": 0.5}, 41 {"matrix": [0, 12], "x": 12, "y": 0.5},
42 {"matrix": [0, 13], "x": 13, "y": 0.5, "w": 2}, 42 {"matrix": [0, 13], "x": 13, "y": 0.5, "w": 2},
43 {"matrix": [4, 4], "x": 16, "y": 0},
44 {"matrix": [0, 14], "x": 15, "y": 0.5}, 43 {"matrix": [0, 14], "x": 15, "y": 0.5},
45 44
46 {"matrix": [4, 6], "x": 16, "y": 1},
47 {"matrix": [1, 0], "x": 0, "y": 1.5, "w": 1.5}, 45 {"matrix": [1, 0], "x": 0, "y": 1.5, "w": 1.5},
48 {"matrix": [1, 1], "x": 1.5, "y": 1.5}, 46 {"matrix": [1, 1], "x": 1.5, "y": 1.5},
49 {"matrix": [1, 2], "x": 2.5, "y": 1.5}, 47 {"matrix": [1, 2], "x": 2.5, "y": 1.5},
diff --git a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c
index 7ed06c9ec5..f1069c37db 100644
--- a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c
+++ b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c
@@ -18,16 +18,15 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_HOME, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, 24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
26 [1] = LAYOUT_all( 26 [1] = LAYOUT_all(
27 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, 27 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
28 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, 28 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,
29 KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 29 KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 30 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) 31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
32}; 32};
33
diff --git a/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c b/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c
index 56a083d444..610aa72a39 100644
--- a/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c
+++ b/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c
@@ -18,59 +18,36 @@
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_HOME, KC_VOLU, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, 24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
26 [1] = LAYOUT_all( 26 [1] = LAYOUT_all(
27 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, 27 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
28 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, 28 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,
29 KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 29 KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 30 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
32 [2] = LAYOUT_all( 32 [2] = LAYOUT_all(
33 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, 33 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,
34 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, 34 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,
35 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, 35 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,
36 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, 36 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,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
38 [3] = LAYOUT_all( 38 [3] = LAYOUT_all(
39 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, 39 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,
40 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, 40 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,
41 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, 41 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,
42 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, 42 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,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) 43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
44}; 44};
45#ifdef ENCODER_ENABLE
46keyevent_t encoder1_ccw = {.key = (keypos_t){.row = 4, .col = 4}, .pressed = false, .type = KEY_EVENT};
47
48keyevent_t encoder1_cw = {.key = (keypos_t){.row = 4, .col = 6}, .pressed = false, .type = KEY_EVENT};
49 45
50void matrix_scan_user(void) { 46#ifdef ENCODER_MAP_ENABLE
51 if (encoder1_ccw.pressed) { 47const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
52 encoder1_ccw.pressed = false; 48 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
53 encoder1_ccw.time = timer_read(); 49 [1] = { ENCODER_CCW_CW(_______, _______) },
54 action_exec(encoder1_ccw); 50 [2] = { ENCODER_CCW_CW(_______, _______) },
55 } 51 [3] = { ENCODER_CCW_CW(_______, _______) },
56 52};
57 if (encoder1_cw.pressed) {
58 encoder1_cw.pressed = false;
59 encoder1_cw.time = timer_read();
60 action_exec(encoder1_cw);
61 }
62}
63
64bool encoder_update_user(uint8_t index, bool clockwise) {
65 if (clockwise) {
66 encoder1_cw.pressed = true;
67 encoder1_cw.time = timer_read();
68 action_exec(encoder1_cw);
69 } else {
70 encoder1_ccw.pressed = true;
71 encoder1_ccw.time = timer_read();
72 action_exec(encoder1_ccw);
73 }
74 return true;
75}
76#endif 53#endif