Added custom switch matrix and Changed the encoder built-in push button functionality logic as suggested by QMK maintainer in Pull Request.

This commit is contained in:
atechofficials 2024-06-26 23:47:10 +05:30
parent c6d1aa0ec9
commit 09ba0009e0
6 changed files with 43 additions and 41 deletions

View File

@ -28,15 +28,15 @@ enum protokeeb_keymap_layers {
#define LOWER LT(LAYER_LOWER, KC_KP_0) #define LOWER LT(LAYER_LOWER, KC_KP_0)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_BASE] = LAYOUT_ortho_4x4( /* Base */ [LAYER_BASE] = LAYOUT_custom_matrix( /* Base */
KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_MUTE,
KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK,
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_MINUS,
LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS
), ),
[LAYER_LOWER] = LAYOUT_ortho_4x4( /* RGB Control */ [LAYER_LOWER] = LAYOUT_custom_matrix( /* RGB Control */
RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE,
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT

View File

@ -33,29 +33,29 @@ enum protokeeb_keymap_layers {
#define RGB_CTRL MO(LAYER_RGB_CONTROL) #define RGB_CTRL MO(LAYER_RGB_CONTROL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_NOTES_SET_1] = LAYOUT_ortho_4x4( /* Notes Set-1 */ [LAYER_NOTES_SET_1] = LAYOUT_custom_matrix( /* Notes Set-1 */
MI_C, MI_Cs, MI_D, MI_Ds, MI_C, MI_Cs, MI_D, MI_Ds, KC_MUTE,
MI_E, MI_F, MI_Fs, MI_G, MI_E, MI_F, MI_Fs, MI_G,
MI_Gs, MI_A, MI_As, MI_B, MI_Gs, MI_A, MI_As, MI_B,
RGB_CTRL, NOTES_SET_2, NOTES_SET_3, MI_TOGG RGB_CTRL, NOTES_SET_2, NOTES_SET_3, MI_TOGG
), ),
[LAYER_NOTES_SET_2] = LAYOUT_ortho_4x4( /* Notes Set-2 */ [LAYER_NOTES_SET_2] = LAYOUT_custom_matrix( /* Notes Set-2 */
MI_C1, MI_Cs1, MI_D1, MI_Ds1, MI_C1, MI_Cs1, MI_D1, MI_Ds1, KC_MUTE,
MI_E1, MI_F1, MI_Fs1, MI_G1, MI_E1, MI_F1, MI_Fs1, MI_G1,
MI_Gs1, MI_A1, MI_As1, MI_B1, MI_Gs1, MI_A1, MI_As1, MI_B1,
NOTES_SET_1, KC_TRNS, NOTES_SET_3, KC_TRNS NOTES_SET_1, KC_TRNS, NOTES_SET_3, KC_TRNS
), ),
[LAYER_NOTES_SET_3] = LAYOUT_ortho_4x4( /* Notes Set-3 */ [LAYER_NOTES_SET_3] = LAYOUT_custom_matrix( /* Notes Set-3 */
MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_C2, MI_Cs2, MI_D2, MI_Ds2, KC_MUTE,
MI_E2, MI_F2, MI_Fs2, MI_G2, MI_E2, MI_F2, MI_Fs2, MI_G2,
MI_Gs2, MI_A2, MI_As2, MI_B2, MI_Gs2, MI_A2, MI_As2, MI_B2,
NOTES_SET_1, NOTES_SET_2, KC_TRNS, KC_TRNS NOTES_SET_1, NOTES_SET_2, KC_TRNS, KC_TRNS
), ),
[LAYER_RGB_CONTROL] = LAYOUT_ortho_4x4( /* RGB Control */ [LAYER_RGB_CONTROL] = LAYOUT_custom_matrix( /* RGB Control */
RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE,
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
@ -69,4 +69,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[LAYER_NOTES_SET_3] = { ENCODER_CCW_CW(MI_TRSD, MI_TRSU) }, [LAYER_NOTES_SET_3] = { ENCODER_CCW_CW(MI_TRSD, MI_TRSU) },
[LAYER_RGB_CONTROL] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, [LAYER_RGB_CONTROL] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) },
}; };
#endif #endif

View File

@ -28,19 +28,19 @@ enum protokeeb_keymap_layers {
#define LOWER LT(LAYER_LOWER, KC_KP_0) #define LOWER LT(LAYER_LOWER, KC_KP_0)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_BASE] = LAYOUT_ortho_4x4( /* Base */ [LAYER_BASE] = LAYOUT_custom_matrix( /* Base */
KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_MUTE,
KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK,
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_MINUS,
LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS
), ),
[LAYER_LOWER] = LAYOUT_ortho_4x4( /* RGB Control */ [LAYER_LOWER] = LAYOUT_custom_matrix( /* RGB Control */
RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE,
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT
) ),
}; };
#if defined(ENCODER_MAP_ENABLE) #if defined(ENCODER_MAP_ENABLE)

View File

@ -16,6 +16,13 @@
#pragma once #pragma once
// Define the pin connected to the encoder push button
#define ENCODER_BUTTON_PIN GP14
// Define the row and column for the encoder button
#define ENCODER_BUTTON_ROW 0
#define ENCODER_BUTTON_COL 4
/* ARGB LED Byte order */ /* ARGB LED Byte order */
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
@ -45,4 +52,4 @@
#if defined (ENCODER_ENABLE) #if defined (ENCODER_ENABLE)
#define ENCODER_MAP_KEY_DELAY 10 #define ENCODER_MAP_KEY_DELAY 10
#endif #endif

View File

@ -9,10 +9,6 @@
"bootloader": "rp2040", "bootloader": "rp2040",
"debounce": 20, "debounce": 20,
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"dip_switch": {
"enabled": true,
"pins": ["GP14"]
},
"encoder": { "encoder": {
"rotary": [{ "pin_a": "GP12", "pin_b": "GP13", "resolution": 2 }] "rotary": [{ "pin_a": "GP12", "pin_b": "GP13", "resolution": 2 }]
}, },
@ -24,7 +20,7 @@
"rgblight": true "rgblight": true
}, },
"matrix_pins": { "matrix_pins": {
"cols": ["GP6", "GP7", "GP8", "GP9"], "cols": ["GP6", "GP7", "GP8", "GP9", "GP14"],
"rows": ["GP2", "GP3", "GP4", "GP5"] "rows": ["GP2", "GP3", "GP4", "GP5"]
}, },
"processor": "RP2040", "processor": "RP2040",
@ -67,12 +63,13 @@
"pin": "GP10" "pin": "GP10"
}, },
"layouts": { "layouts": {
"LAYOUT_ortho_4x4": { "LAYOUT_custom_matrix": {
"layout": [ "layout": [
{ "label": "7", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "7", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "8", "matrix": [0, 1], "x": 1, "y": 0 }, { "label": "8", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "9", "matrix": [0, 2], "x": 2, "y": 0 }, { "label": "9", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "/", "matrix": [0, 3], "x": 3, "y": 0 }, { "label": "/", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "MUTE", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "4", "matrix": [1, 0], "x": 0, "y": 1 }, { "label": "4", "matrix": [1, 0], "x": 0, "y": 1 },
{ "label": "5", "matrix": [1, 1], "x": 1, "y": 1 }, { "label": "5", "matrix": [1, 1], "x": 1, "y": 1 },
{ "label": "6", "matrix": [1, 2], "x": 2, "y": 1 }, { "label": "6", "matrix": [1, 2], "x": 2, "y": 1 },

View File

@ -16,20 +16,18 @@
#include "quantum.h" #include "quantum.h"
#if defined(DIP_SWITCH_ENABLE) // Override the matrix read function to include the encoder button
bool dip_switch_update_kb(uint8_t index, bool active) { void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
if (!dip_switch_update_user(index, active)) { {
return false; if (current_row == ENCODER_BUTTON_ROW)
{
if (readPin(ENCODER_BUTTON_PIN) == 0)
{
current_matrix[current_row] |= (1 << ENCODER_BUTTON_COL);
}
else
{
current_matrix[current_row] &= ~(1 << ENCODER_BUTTON_COL);
}
} }
switch (index) { }
case 0:
// Encoder Push Button Pressed
if (active) {
// Toggle Host Mute
tap_code(KC_MUTE);
}
break;
}
return true;
}
#endif