From 363b912414a378fb3051633c7fea0c7e406e84de Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Wed, 6 Jul 2022 09:56:37 +0700
Subject: [PATCH 01/10] add foundation
---
keyboards/mechlovin/foundation/config.h | 96 +++++++++++++++++++
keyboards/mechlovin/foundation/foundation.c | 67 +++++++++++++
keyboards/mechlovin/foundation/foundation.h | 60 ++++++++++++
keyboards/mechlovin/foundation/info.json | 17 ++++
.../foundation/keymaps/default/keymap.c | 49 ++++++++++
.../foundation/keymaps/default/readme.md | 1 +
.../mechlovin/foundation/keymaps/via/keymap.c | 49 ++++++++++
.../mechlovin/foundation/keymaps/via/rules.mk | 1 +
keyboards/mechlovin/foundation/readme.md | 26 +++++
keyboards/mechlovin/foundation/rules.mk | 20 ++++
10 files changed, 386 insertions(+)
create mode 100644 keyboards/mechlovin/foundation/config.h
create mode 100644 keyboards/mechlovin/foundation/foundation.c
create mode 100644 keyboards/mechlovin/foundation/foundation.h
create mode 100644 keyboards/mechlovin/foundation/info.json
create mode 100644 keyboards/mechlovin/foundation/keymaps/default/keymap.c
create mode 100644 keyboards/mechlovin/foundation/keymaps/default/readme.md
create mode 100644 keyboards/mechlovin/foundation/keymaps/via/keymap.c
create mode 100644 keyboards/mechlovin/foundation/keymaps/via/rules.mk
create mode 100644 keyboards/mechlovin/foundation/readme.md
create mode 100644 keyboards/mechlovin/foundation/rules.mk
diff --git a/keyboards/mechlovin/foundation/config.h b/keyboards/mechlovin/foundation/config.h
new file mode 100644
index 000000000000..1fe82728aa33
--- /dev/null
+++ b/keyboards/mechlovin/foundation/config.h
@@ -0,0 +1,96 @@
+/*
+Copyright 2022 Mechlovin' Studio
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+#include "config_common.h"
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C
+#define PRODUCT_ID 0x0180
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Mechlovin Studio
+#define PRODUCT Foundation FRL
+
+#define MATRIX_ROW_PINS { B12, B13, B14, A8, A2 }
+#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A15, B9, B8, B7, B6, B5, B4, B3}
+#define UNUSED_PINS
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 18
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define LED_PIN_ON_STATE 0
+#define LED_CAPS_LOCK_PIN A1
+//#define LED_COMPOSE_PIN B3
+//#define LED_KANA_PIN B4
+
+#define RGB_DI_PIN B15
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 22
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+//# define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+# define RGBLIGHT_EFFECT_BREATHING
+# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+# define RGBLIGHT_EFFECT_SNAKE
+# define RGBLIGHT_EFFECT_KNIGHT
+# define RGBLIGHT_EFFECT_CHRISTMAS
+# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+# define RGBLIGHT_EFFECT_RGB_TEST
+# define RGBLIGHT_EFFECT_ALTERNATING
+# define RGBLIGHT_EFFECT_TWINKLE
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+// Number of encoders
+#define ENCODERS 1
+
+// Encoder pins
+#define ENCODERS_PAD_A { C13 }
+#define ENCODERS_PAD_B { C14 }
+
+// Note: array is { col, row )
+#define ENCODERS_CW_KEY { { 16, 2 } }
+#define ENCODERS_CCW_KEY { { 17, 2 } }
+
+#define ENCODER_RESOLUTION 4
+#define TAP_CODE_DELAY 10
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/foundation.c b/keyboards/mechlovin/foundation/foundation.c
new file mode 100644
index 000000000000..bc7e581bbaf5
--- /dev/null
+++ b/keyboards/mechlovin/foundation/foundation.c
@@ -0,0 +1,67 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "foundation.h"
+
+
+#ifdef VIA_ENABLE
+static uint8_t encoder_state[ENCODERS] = {0};
+static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
+static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
+
+void encoder_action_unregister(void)
+{
+ for (int index = 0; index < ENCODERS; ++index)
+ {
+ if (encoder_state[index])
+ {
+ keyevent_t encoder_event = (keyevent_t){
+ .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = false,
+ .time = (timer_read() | 1)};
+ encoder_state[index] = 0;
+ action_exec(encoder_event);
+ }
+ }
+}
+void encoder_action_register(uint8_t index, bool clockwise)
+{
+ keyevent_t encoder_event = (keyevent_t){
+ .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = true,
+ .time = (timer_read() | 1)};
+ encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
+ action_exec(encoder_event);
+}
+
+void matrix_scan_kb(void)
+{
+ encoder_action_unregister();
+ matrix_scan_user();
+}
+
+bool encoder_update_kb(uint8_t index, bool clockwise)
+{
+ encoder_action_register(index, clockwise);
+ return true;
+};
+#else
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10);
+ return true;
+}
+#endif
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
new file mode 100644
index 000000000000..985914acf526
--- /dev/null
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -0,0 +1,60 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K2F, K0F, K0G, K0H, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2G, K2H, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3G, \
+ K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
+ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
+}
+
+#define LAYOUT_tkl_nofrow_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2G, K2H, \
+ K30, K31, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
+ K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, K2G, K2H }, \
+ { K30, K31, KC_NO, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
+ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
+}
+
+#define LAYOUT_tkl_nofrow_iso( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2G, K2H, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
+ K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, K2G, K2H }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
+ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
+}
diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json
new file mode 100644
index 000000000000..9cfdcbc26326
--- /dev/null
+++ b/keyboards/mechlovin/foundation/info.json
@@ -0,0 +1,17 @@
+{
+ "keyboard_name": "Foundation",
+ "url": "",
+ "maintainer": "Protozoa",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}, {"label":"2,16", "x":0, "y":4.25, "w":0.5}, {"label":"2,17", "x":1.5, "y":4.25, "w":0.5}]
+ },
+ "LAYOUT_tkl_nofrow_ansi": {
+ "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}, {"label":"2,16", "x":0, "y":4.25, "w":0.5}, {"label":"2,17", "x":1.5, "y":4.25, "w":0.5}]
+ },
+ "LAYOUT_tkl_nofrow_iso": {
+ "layout": [{"x":0.5, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0, "w":2}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":19.5, "y":0}, {"x":0.5, "y":1}, {"x":2.25, "y":1, "w":1.5}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":16, "y":1, "w":1.25, "h":2}, {"x":17.5, "y":1}, {"x":18.5, "y":1}, {"x":19.5, "y":1}, {"x":0.5, "y":2}, {"x":2.25, "y":2, "w":1.75}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":0.5, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3, "w":2.75}, {"x":18.5, "y":3}, {"x":0.5, "y":4}, {"x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":1.25}, {"x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":6.25}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4, "w":1.25}, {"x":14.75, "y":4, "w":1.25}, {"x":16, "y":4, "w":1.25}, {"x":17.5, "y":4}, {"x":18.5, "y":4}, {"x":19.5, "y":4}, {"x":0, "y":4.25, "w":0.5}, {"x":1.5, "y":4.25, "w":0.5}]
+ },
+
+ }
+}
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/keymaps/default/keymap.c b/keyboards/mechlovin/foundation/keymaps/default/keymap.c
new file mode 100644
index 000000000000..3769c01cc3bd
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_F17, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F18, 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,
+ KC_F19, 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_HASH, KC_ENT, KC_VOLU, KC_VOLD,
+ KC_F20, KC_LSFT, KC_BSLS, 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_UP,
+ KC_F21, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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/mechlovin/foundation/keymaps/default/readme.md b/keyboards/mechlovin/foundation/keymaps/default/readme.md
new file mode 100644
index 000000000000..32bfee434d2e
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Foundation
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/keymaps/via/keymap.c b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
new file mode 100644
index 000000000000..3769c01cc3bd
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
@@ -0,0 +1,49 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_F17, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F18, 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,
+ KC_F19, 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_HASH, KC_ENT, KC_VOLU, KC_VOLD,
+ KC_F20, KC_LSFT, KC_BSLS, 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_UP,
+ KC_F21, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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/mechlovin/foundation/keymaps/via/rules.mk b/keyboards/mechlovin/foundation/keymaps/via/rules.mk
new file mode 100644
index 000000000000..036bd6d1c3ec
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/readme.md b/keyboards/mechlovin/foundation/readme.md
new file mode 100644
index 000000000000..4a998da039ab
--- /dev/null
+++ b/keyboards/mechlovin/foundation/readme.md
@@ -0,0 +1,26 @@
+# Foundation
+
+![Foundation](https://i.imgur.com/6VaQ8zml.jpeg)
+
+A PCB for Foundation FRL keyboard.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Foundation, APM32F103
+* Hardware Availability: [Protozoa Studio](https://protozoa.studio/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/foundation:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/foundation:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+Enter the bootloader in 4 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+* **Hardware reset**: Press reset button (located on the bottom side of the PCB)
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/rules.mk b/keyboards/mechlovin/foundation/rules.mk
new file mode 100644
index 000000000000..5a0af7c463d6
--- /dev/null
+++ b/keyboards/mechlovin/foundation/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = STM32F103
+BOARD = STM32_F103_STM32DUINO
+
+# Bootloader selection
+BOOTLOADER = stm32duino
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+ENCODER_ENABLE = yes
+AUDIO_ENABLE = no # Audio output
From 9ba7cee0cf69eb4ec5bf78391c8095219ac8cc07 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:15:27 +0700
Subject: [PATCH 02/10] Update keyboards/mechlovin/foundation/config.h
Co-authored-by: Drashna Jaelre
---
keyboards/mechlovin/foundation/config.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/keyboards/mechlovin/foundation/config.h b/keyboards/mechlovin/foundation/config.h
index 1fe82728aa33..ff3d42194e35 100644
--- a/keyboards/mechlovin/foundation/config.h
+++ b/keyboards/mechlovin/foundation/config.h
@@ -60,9 +60,6 @@ along with this program. If not, see .
# define RGBLIGHT_VAL_STEP 8
# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-/*== all animations enable ==*/
-//# define RGBLIGHT_ANIMATIONS
-/*== or choose animations ==*/
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
From bbb52056b3d318a8f0366fc51ce803d16554aaca Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:16:25 +0700
Subject: [PATCH 03/10] Update keyboards/mechlovin/foundation/foundation.c
Co-authored-by: Drashna Jaelre
---
keyboards/mechlovin/foundation/foundation.c | 43 +--------------------
1 file changed, 1 insertion(+), 42 deletions(-)
diff --git a/keyboards/mechlovin/foundation/foundation.c b/keyboards/mechlovin/foundation/foundation.c
index bc7e581bbaf5..14a1804fecb4 100644
--- a/keyboards/mechlovin/foundation/foundation.c
+++ b/keyboards/mechlovin/foundation/foundation.c
@@ -17,48 +17,7 @@
#include "foundation.h"
-#ifdef VIA_ENABLE
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
-static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
-
-void encoder_action_unregister(void)
-{
- for (int index = 0; index < ENCODERS; ++index)
- {
- if (encoder_state[index])
- {
- keyevent_t encoder_event = (keyevent_t){
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = (timer_read() | 1)};
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-void encoder_action_register(uint8_t index, bool clockwise)
-{
- keyevent_t encoder_event = (keyevent_t){
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = (timer_read() | 1)};
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-void matrix_scan_kb(void)
-{
- encoder_action_unregister();
- matrix_scan_user();
-}
-
-bool encoder_update_kb(uint8_t index, bool clockwise)
-{
- encoder_action_register(index, clockwise);
- return true;
-};
-#else
+#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10);
From c4d837d564754ee1afab21ad617aee321fac5fd7 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:16:33 +0700
Subject: [PATCH 04/10] Update
keyboards/mechlovin/foundation/keymaps/via/keymap.c
Co-authored-by: Drashna Jaelre
---
.../mechlovin/foundation/keymaps/via/keymap.c | 35 +++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/keyboards/mechlovin/foundation/keymaps/via/keymap.c b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
index 3769c01cc3bd..fdea59d489fe 100644
--- a/keyboards/mechlovin/foundation/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
@@ -46,4 +46,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
+#ifdef VIA_ENABLE
+static uint8_t encoder_state[ENCODERS] = {0};
+static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
+static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
+void encoder_action_unregister(void) {
+ for (int index = 0; index < ENCODERS; ++index) {
+ if (encoder_state[index]) {
+ keyevent_t encoder_event = (keyevent_t){
+ .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = false,
+ .time = (timer_read() | 1)};
+ encoder_state[index] = 0;
+ action_exec(encoder_event);
+ }
+ }
+}
+
+void encoder_action_register(uint8_t index, bool clockwise) {
+ keyevent_t encoder_event = (keyevent_t){
+ .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = true,
+ .time = (timer_read() | 1)};
+ encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
+ action_exec(encoder_event);
+}
+
+void matrix_scan_user(void) {
+ encoder_action_unregister();
+}
+
+bool encoder_update_user(uint8_t index, bool clockwise)
+{
+ encoder_action_register(index, clockwise);
+ return true;
+};
From 6cfe4485cca54c185455762feb3bf4c846152a75 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:17:00 +0700
Subject: [PATCH 05/10] Update keyboards/mechlovin/foundation/foundation.h
Co-authored-by: Drashna Jaelre
---
keyboards/mechlovin/foundation/foundation.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
index 985914acf526..77bef6bb4fe8 100644
--- a/keyboards/mechlovin/foundation/foundation.h
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -34,7 +34,7 @@
#define LAYOUT_tkl_nofrow_ansi( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2G, K2H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
K30, K31, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
From 8c2919dc4c77610534fe44a70ab338a07b23df1e Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:18:02 +0700
Subject: [PATCH 06/10] Update keyboards/mechlovin/foundation/foundation.h
Co-authored-by: Drashna Jaelre
---
keyboards/mechlovin/foundation/foundation.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
index 77bef6bb4fe8..2331c94223de 100644
--- a/keyboards/mechlovin/foundation/foundation.h
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -48,7 +48,7 @@
#define LAYOUT_tkl_nofrow_iso( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2G, K2H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
From fe620fc4c0e52581ec3d28573c075dfaf64b1609 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:18:09 +0700
Subject: [PATCH 07/10] Update keyboards/mechlovin/foundation/foundation.h
Co-authored-by: Drashna Jaelre
---
keyboards/mechlovin/foundation/foundation.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
index 2331c94223de..14142f3fc937 100644
--- a/keyboards/mechlovin/foundation/foundation.h
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -40,7 +40,7 @@
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, K2G, K2H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, KC_NO, KC_NO }, \
{ K30, K31, KC_NO, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
{ K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
}
From e966acd7082c8775f9346a74190592516c52b368 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Mon, 11 Jul 2022 23:18:15 +0700
Subject: [PATCH 08/10] Update keyboards/mechlovin/foundation/foundation.h
Co-authored-by: Drashna Jaelre
---
keyboards/mechlovin/foundation/foundation.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
index 14142f3fc937..dac43cfa7101 100644
--- a/keyboards/mechlovin/foundation/foundation.h
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -54,7 +54,7 @@
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, K2G, K2H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, KC_NO, KC_NO }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
{ K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
}
From d8315c614793f3d07e0ad8612daa28c20979d6f8 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Tue, 12 Jul 2022 09:17:22 +0700
Subject: [PATCH 09/10] correct layout in info.json and enable keymap encoder
---
keyboards/mechlovin/foundation/foundation.h | 10 ++---
keyboards/mechlovin/foundation/info.json | 4 +-
.../foundation/keymaps/default/keymap.c | 39 +++++++------------
.../foundation/keymaps/default/rules.mk | 1 +
.../mechlovin/foundation/keymaps/via/keymap.c | 11 +++---
5 files changed, 29 insertions(+), 36 deletions(-)
create mode 100644 keyboards/mechlovin/foundation/keymaps/default/rules.mk
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
index dac43cfa7101..0c5336db08bb 100644
--- a/keyboards/mechlovin/foundation/foundation.h
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -40,21 +40,21 @@
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, KC_NO, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, KC_NO, KC_NO }, \
{ K30, K31, KC_NO, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
{ K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
}
#define LAYOUT_tkl_nofrow_iso( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, KC_NO, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, KC_NO, KC_NO, KC_NO }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
{ K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
}
diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json
index 9cfdcbc26326..9b4ba99385ce 100644
--- a/keyboards/mechlovin/foundation/info.json
+++ b/keyboards/mechlovin/foundation/info.json
@@ -7,10 +7,10 @@
"layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}, {"label":"2,16", "x":0, "y":4.25, "w":0.5}, {"label":"2,17", "x":1.5, "y":4.25, "w":0.5}]
},
"LAYOUT_tkl_nofrow_ansi": {
- "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}, {"label":"2,16", "x":0, "y":4.25, "w":0.5}, {"label":"2,17", "x":1.5, "y":4.25, "w":0.5}]
+ "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}]
},
"LAYOUT_tkl_nofrow_iso": {
- "layout": [{"x":0.5, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0, "w":2}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":19.5, "y":0}, {"x":0.5, "y":1}, {"x":2.25, "y":1, "w":1.5}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":16, "y":1, "w":1.25, "h":2}, {"x":17.5, "y":1}, {"x":18.5, "y":1}, {"x":19.5, "y":1}, {"x":0.5, "y":2}, {"x":2.25, "y":2, "w":1.75}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":0.5, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3, "w":2.75}, {"x":18.5, "y":3}, {"x":0.5, "y":4}, {"x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":1.25}, {"x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":6.25}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4, "w":1.25}, {"x":14.75, "y":4, "w":1.25}, {"x":16, "y":4, "w":1.25}, {"x":17.5, "y":4}, {"x":18.5, "y":4}, {"x":19.5, "y":4}, {"x":0, "y":4.25, "w":0.5}, {"x":1.5, "y":4.25, "w":0.5}]
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.75, "y":0}, {"label":"0,2", "x":2.75, "y":0}, {"label":"0,3", "x":3.75, "y":0}, {"label":"0,4", "x":4.75, "y":0}, {"label":"0,5", "x":5.75, "y":0}, {"label":"0,6", "x":6.75, "y":0}, {"label":"0,7", "x":7.75, "y":0}, {"label":"0,8", "x":8.75, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":13.75, "y":0}, {"label":"0,14", "x":14.75, "y":0, "w":2}, {"label":"0,15", "x":17, "y":0}, {"label":"0,16", "x":18, "y":0}, {"label":"0,17", "x":19, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1.75, "y":1, "w":1.5}, {"label":"1,2", "x":3.25, "y":1}, {"label":"1,3", "x":4.25, "y":1}, {"label":"1,4", "x":5.25, "y":1}, {"label":"1,5", "x":6.25, "y":1}, {"label":"1,6", "x":7.25, "y":1}, {"label":"1,7", "x":8.25, "y":1}, {"label":"1,8", "x":9.25, "y":1}, {"label":"1,9", "x":10.25, "y":1}, {"label":"1,10", "x":11.25, "y":1}, {"label":"1,11", "x":12.25, "y":1}, {"label":"1,12", "x":13.25, "y":1}, {"label":"1,13", "x":14.25, "y":1}, {"label":"2,14", "x":15.5, "y":1, "w":1.25, "h":2}, {"label":"1,15", "x":17, "y":1}, {"label":"1,16", "x":18, "y":1}, {"label":"1,17", "x":19, "y":1}, {"label":"2,0", "x":0, "y":2}, {"label":"2,1", "x":1.75, "y":2, "w":1.75}, {"label":"2,2", "x":3.5, "y":2}, {"label":"2,3", "x":4.5, "y":2}, {"label":"2,4", "x":5.5, "y":2}, {"label":"2,5", "x":6.5, "y":2}, {"label":"2,6", "x":7.5, "y":2}, {"label":"2,7", "x":8.5, "y":2}, {"label":"2,8", "x":9.5, "y":2}, {"label":"2,9", "x":10.5, "y":2}, {"label":"2,10", "x":11.5, "y":2}, {"label":"2,11", "x":12.5, "y":2}, {"label":"2,12", "x":13.5, "y":2}, {"label":"2,13", "x":14.5, "y":2}, {"label":"3,0", "x":0, "y":3}, {"label":"3,1", "x":1.75, "y":3, "w":1.25}, {"label":"3,2", "x":3, "y":3}, {"label":"3,3", "x":4, "y":3}, {"label":"3,4", "x":5, "y":3}, {"label":"3,5", "x":6, "y":3}, {"label":"3,6", "x":7, "y":3}, {"label":"3,7", "x":8, "y":3}, {"label":"3,8", "x":9, "y":3}, {"label":"3,9", "x":10, "y":3}, {"label":"3,10", "x":11, "y":3}, {"label":"3,11", "x":12, "y":3}, {"label":"3,12", "x":13, "y":3}, {"label":"3,13", "x":14, "y":3, "w":2.75}, {"label":"3,16", "x":18, "y":3}, {"label":"4,0", "x":0, "y":4}, {"label":"4,1", "x":1.75, "y":4, "w":1.25}, {"label":"4,2", "x":3, "y":4, "w":1.25}, {"label":"4,3", "x":4.25, "y":4, "w":1.25}, {"label":"4,7", "x":5.5, "y":4, "w":6.25}, {"label":"4,11", "x":11.75, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4, "w":1.25}, {"label":"4,13", "x":14.25, "y":4, "w":1.25}, {"label":"4,14", "x":15.5, "y":4, "w":1.25}, {"label":"4,15", "x":17, "y":4}, {"label":"4,16", "x":18, "y":4}, {"label":"4,17", "x":19, "y":4}]
},
}
diff --git a/keyboards/mechlovin/foundation/keymaps/default/keymap.c b/keyboards/mechlovin/foundation/keymaps/default/keymap.c
index 3769c01cc3bd..4cabf521d222 100644
--- a/keyboards/mechlovin/foundation/keymaps/default/keymap.c
+++ b/keyboards/mechlovin/foundation/keymaps/default/keymap.c
@@ -16,34 +16,25 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- KC_F17, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
- KC_F18, 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,
- KC_F19, 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_HASH, KC_ENT, KC_VOLU, KC_VOLD,
- KC_F20, KC_LSFT, KC_BSLS, 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_UP,
- KC_F21, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ [0] = LAYOUT_tkl_nofrow_ansi(
+ KC_F1, 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_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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,
+ KC_F3, 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_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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ [1] = LAYOUT_tkl_nofrow_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};
-
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [1] = {ENCODER_CCW_CW(RGB_MOD, RGB_RMOD)}
+};
+#endif
diff --git a/keyboards/mechlovin/foundation/keymaps/default/rules.mk b/keyboards/mechlovin/foundation/keymaps/default/rules.mk
new file mode 100644
index 000000000000..ee325681483f
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mechlovin/foundation/keymaps/via/keymap.c b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
index fdea59d489fe..f91ffdc184e2 100644
--- a/keyboards/mechlovin/foundation/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
@@ -17,11 +17,11 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
- KC_F17, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
- KC_F18, 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,
- KC_F19, 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_HASH, KC_ENT, KC_VOLU, KC_VOLD,
- KC_F20, KC_LSFT, KC_BSLS, 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_UP,
- KC_F21, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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,
+ KC_F3, 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_HASH, KC_ENT, KC_VOLU, KC_VOLD,
+ KC_F4, KC_LSFT, KC_BSLS, 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_UP,
+ KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -82,3 +82,4 @@ bool encoder_update_user(uint8_t index, bool clockwise)
encoder_action_register(index, clockwise);
return true;
};
+#endif
\ No newline at end of file
From 5f190b9ef4f1b444f41b843c4abea5d6180a2bd4 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Sun, 14 Aug 2022 03:12:49 +0700
Subject: [PATCH 10/10] enable encoder map
---
keyboards/mechlovin/foundation/config.h | 7 ---
keyboards/mechlovin/foundation/foundation.c | 9 ---
keyboards/mechlovin/foundation/foundation.h | 4 +-
keyboards/mechlovin/foundation/info.json | 2 +-
.../foundation/keymaps/default/rules.mk | 1 -
.../mechlovin/foundation/keymaps/via/keymap.c | 58 +++++--------------
keyboards/mechlovin/foundation/rules.mk | 1 +
7 files changed, 20 insertions(+), 62 deletions(-)
delete mode 100644 keyboards/mechlovin/foundation/keymaps/default/rules.mk
diff --git a/keyboards/mechlovin/foundation/config.h b/keyboards/mechlovin/foundation/config.h
index ff3d42194e35..e1e97ca873b8 100644
--- a/keyboards/mechlovin/foundation/config.h
+++ b/keyboards/mechlovin/foundation/config.h
@@ -78,16 +78,9 @@ along with this program. If not, see .
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
-// Number of encoders
-#define ENCODERS 1
-
// Encoder pins
#define ENCODERS_PAD_A { C13 }
#define ENCODERS_PAD_B { C14 }
-// Note: array is { col, row )
-#define ENCODERS_CW_KEY { { 16, 2 } }
-#define ENCODERS_CCW_KEY { { 17, 2 } }
-
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/foundation.c b/keyboards/mechlovin/foundation/foundation.c
index 14a1804fecb4..12d3e848d7ca 100644
--- a/keyboards/mechlovin/foundation/foundation.c
+++ b/keyboards/mechlovin/foundation/foundation.c
@@ -15,12 +15,3 @@
*/
#include "foundation.h"
-
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- if (!encoder_update_user(index, clockwise)) { return false; }
- tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10);
- return true;
-}
-#endif
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
index 0c5336db08bb..d9d317deb7af 100644
--- a/keyboards/mechlovin/foundation/foundation.h
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -20,13 +20,13 @@
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K2F, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2G, K2H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3G, \
K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, KC_NO, KC_NO }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
{ K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
}
diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json
index 9b4ba99385ce..03b6cf6ff206 100644
--- a/keyboards/mechlovin/foundation/info.json
+++ b/keyboards/mechlovin/foundation/info.json
@@ -4,7 +4,7 @@
"maintainer": "Protozoa",
"layouts": {
"LAYOUT_all": {
- "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}, {"label":"2,16", "x":0, "y":4.25, "w":0.5}, {"label":"2,17", "x":1.5, "y":4.25, "w":0.5}]
+ "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}]
},
"LAYOUT_tkl_nofrow_ansi": {
"layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}]
diff --git a/keyboards/mechlovin/foundation/keymaps/default/rules.mk b/keyboards/mechlovin/foundation/keymaps/default/rules.mk
deleted file mode 100644
index ee325681483f..000000000000
--- a/keyboards/mechlovin/foundation/keymaps/default/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mechlovin/foundation/keymaps/via/keymap.c b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
index f91ffdc184e2..b052937fd422 100644
--- a/keyboards/mechlovin/foundation/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
@@ -17,69 +17,43 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
- KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
- KC_F2, 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,
- KC_F3, 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_HASH, KC_ENT, KC_VOLU, KC_VOLD,
- KC_F4, KC_LSFT, KC_BSLS, 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_UP,
- KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ KC_F17, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F18, 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,
+ KC_F19, 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_HASH, KC_ENT,
+ KC_F20, KC_LSFT, KC_BSLS, 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_UP,
+ KC_F21, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};
-#ifdef VIA_ENABLE
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
-static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
-void encoder_action_unregister(void) {
- for (int index = 0; index < ENCODERS; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t){
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = (timer_read() | 1)};
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t){
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = (timer_read() | 1)};
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [1] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [2] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [3] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}
+};
+#endif
-void matrix_scan_user(void) {
- encoder_action_unregister();
-}
-bool encoder_update_user(uint8_t index, bool clockwise)
-{
- encoder_action_register(index, clockwise);
- return true;
-};
-#endif
\ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/rules.mk b/keyboards/mechlovin/foundation/rules.mk
index 5a0af7c463d6..49dd70e15d8b 100644
--- a/keyboards/mechlovin/foundation/rules.mk
+++ b/keyboards/mechlovin/foundation/rules.mk
@@ -18,3 +18,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
ENCODER_ENABLE = yes
AUDIO_ENABLE = no # Audio output
+ENCODER_MAP_ENABLE = yes