From 586836b7c290ee15f90f09871b2609caa0c8b292 Mon Sep 17 00:00:00 2001 From: atechofficials Date: Thu, 27 Jun 2024 23:00:07 +0530 Subject: [PATCH] Added the QMK's Tri-Layer functionality to the default keymap --- keyboards/protokeeb/keymaps/default/keymap.c | 41 ++++++++++-------- keyboards/protokeeb/keymaps/default/rules.mk | 3 ++ keyboards/protokeeb/keymaps/midi/keymap.c | 44 +++++++------------- keyboards/protokeeb/keymaps/via/keymap.c | 25 ++++------- keyboards/protokeeb/rev1/readme.md | 3 +- 5 files changed, 50 insertions(+), 66 deletions(-) diff --git a/keyboards/protokeeb/keymaps/default/keymap.c b/keyboards/protokeeb/keymaps/default/keymap.c index b75d808b9c7..0784fa3008f 100644 --- a/keyboards/protokeeb/keymaps/default/keymap.c +++ b/keyboards/protokeeb/keymaps/default/keymap.c @@ -8,9 +8,9 @@ * 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. + * along with this program. * If not, see . */ @@ -23,29 +23,36 @@ enum protokeeb_keymap_layers { LAYER_BASE, LAYER_LOWER, + LAYER_RAISE, + LAYER_ADJUST, }; #define LOWER LT(LAYER_LOWER, KC_KP_0) +#define RAISE LT(LAYER_RAISE, KC_KP_ENTER) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT( /* Base */ - 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_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, - LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS - ), + [LAYER_BASE] = LAYOUT(/* Base: Numpad without Num Lock*/ + 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_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, LOWER, KC_KP_DOT, RAISE, KC_KP_PLUS), - [LAYER_LOWER] = LAYOUT( /* RGB Control */ - RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE, - RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, - RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, - KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT - ), + [LAYER_LOWER] = LAYOUT(/* RGB Control */ + RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, QK_DEBUG_TOGGLE, RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, RGB_MODE_SWIRL, KC_TRNS, QK_BOOT), + + [LAYER_RAISE] = LAYOUT(/* Media Control and Quick Launch*/ + KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_MEDIA_STOP, KC_MUTE, KC_CALCULATOR, KC_MY_COMPUTER, KC_CONTROL_PANEL, KC_SYSTEM_POWER, KC_PRINT_SCREEN, KC_HOME, KC_INSERT, KC_DELETE, KC_TRNS, KC_NO, KC_TRNS, QK_REBOOT), + + [LAYER_ADJUST] = LAYOUT(/* Function Keys */ + KC_F1, KC_F2, KC_F3, KC_F4, KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_NO, KC_TRNS, KC_NO), }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [LAYER_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [LAYER_LOWER] = { ENCODER_CCW_CW(KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP) }, + [LAYER_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [LAYER_LOWER] = {ENCODER_CCW_CW(KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP)}, + [LAYER_RAISE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [LAYER_ADJUST] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, }; -#endif \ No newline at end of file +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); +} \ No newline at end of file diff --git a/keyboards/protokeeb/keymaps/default/rules.mk b/keyboards/protokeeb/keymaps/default/rules.mk index ee90ff31304..8f2f1394c90 100644 --- a/keyboards/protokeeb/keymaps/default/rules.mk +++ b/keyboards/protokeeb/keymaps/default/rules.mk @@ -3,3 +3,6 @@ # Rotary Encoder Keymap support ENCODER_MAP_ENABLE = yes + +# Enable Tri Layer support +TRI_LAYER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/protokeeb/keymaps/midi/keymap.c b/keyboards/protokeeb/keymaps/midi/keymap.c index 99f449eceb7..435edbb089c 100644 --- a/keyboards/protokeeb/keymaps/midi/keymap.c +++ b/keyboards/protokeeb/keymaps/midi/keymap.c @@ -8,9 +8,9 @@ * 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. + * along with this program. * If not, see . */ @@ -33,40 +33,24 @@ enum protokeeb_keymap_layers { #define RGB_CTRL MO(LAYER_RGB_CONTROL) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_NOTES_SET_1] = LAYOUT( /* Notes Set-1 */ - MI_C, MI_Cs, MI_D, MI_Ds, KC_MUTE, - MI_E, MI_F, MI_Fs, MI_G, - MI_Gs, MI_A, MI_As, MI_B, - RGB_CTRL, NOTES_SET_2, NOTES_SET_3, MI_TOGG - ), + [LAYER_NOTES_SET_1] = LAYOUT(/* Notes Set-1 */ + MI_C, MI_Cs, MI_D, MI_Ds, KC_MUTE, MI_E, MI_F, MI_Fs, MI_G, MI_Gs, MI_A, MI_As, MI_B, RGB_CTRL, NOTES_SET_2, NOTES_SET_3, MI_TOGG), - [LAYER_NOTES_SET_2] = LAYOUT( /* Notes Set-2 */ - MI_C1, MI_Cs1, MI_D1, MI_Ds1, KC_MUTE, - MI_E1, MI_F1, MI_Fs1, MI_G1, - MI_Gs1, MI_A1, MI_As1, MI_B1, - NOTES_SET_1, KC_TRNS, NOTES_SET_3, KC_TRNS - ), + [LAYER_NOTES_SET_2] = LAYOUT(/* Notes Set-2 */ + MI_C1, MI_Cs1, MI_D1, MI_Ds1, KC_MUTE, MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1, MI_A1, MI_As1, MI_B1, NOTES_SET_1, KC_TRNS, NOTES_SET_3, KC_TRNS), - [LAYER_NOTES_SET_3] = LAYOUT( /* Notes Set-3 */ - MI_C2, MI_Cs2, MI_D2, MI_Ds2, KC_MUTE, - MI_E2, MI_F2, MI_Fs2, MI_G2, - MI_Gs2, MI_A2, MI_As2, MI_B2, - NOTES_SET_1, NOTES_SET_2, KC_TRNS, KC_TRNS - ), + [LAYER_NOTES_SET_3] = LAYOUT(/* Notes Set-3 */ + MI_C2, MI_Cs2, MI_D2, MI_Ds2, KC_MUTE, MI_E2, MI_F2, MI_Fs2, MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2, NOTES_SET_1, NOTES_SET_2, KC_TRNS, KC_TRNS), - [LAYER_RGB_CONTROL] = LAYOUT( /* RGB Control */ - RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE, - RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, - RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT - ), + [LAYER_RGB_CONTROL] = LAYOUT(/* RGB Control */ + RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT), }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [LAYER_NOTES_SET_1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [LAYER_NOTES_SET_2] = { ENCODER_CCW_CW(MI_OCTD, MI_OCTU) }, - [LAYER_NOTES_SET_3] = { ENCODER_CCW_CW(MI_TRSD, MI_TRSU) }, - [LAYER_RGB_CONTROL] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [LAYER_NOTES_SET_1] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [LAYER_NOTES_SET_2] = {ENCODER_CCW_CW(MI_OCTD, MI_OCTU)}, + [LAYER_NOTES_SET_3] = {ENCODER_CCW_CW(MI_TRSD, MI_TRSU)}, + [LAYER_RGB_CONTROL] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, }; #endif \ No newline at end of file diff --git a/keyboards/protokeeb/keymaps/via/keymap.c b/keyboards/protokeeb/keymaps/via/keymap.c index 49acdda3477..cc4f4398d03 100644 --- a/keyboards/protokeeb/keymaps/via/keymap.c +++ b/keyboards/protokeeb/keymaps/via/keymap.c @@ -8,9 +8,9 @@ * 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. + * along with this program. * If not, see . */ @@ -28,24 +28,13 @@ enum protokeeb_keymap_layers { #define LOWER LT(LAYER_LOWER, KC_KP_0) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT( /* Base */ - 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_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, - LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS - ), + [LAYER_BASE] = LAYOUT(/* Base */ + 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_1, KC_KP_2, KC_KP_3, KC_KP_MINUS, LOWER, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS), - [LAYER_LOWER] = LAYOUT( /* RGB Control */ - RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE, - RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, - RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, - KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT - ), + [LAYER_LOWER] = LAYOUT(/* RGB Control */ + RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG, KC_MUTE, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT), }; #if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [LAYER_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [LAYER_LOWER] = { ENCODER_CCW_CW(KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP) } -}; +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {[LAYER_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [LAYER_LOWER] = {ENCODER_CCW_CW(KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP)}}; #endif \ No newline at end of file diff --git a/keyboards/protokeeb/rev1/readme.md b/keyboards/protokeeb/rev1/readme.md index 4a142bf0a61..defb0186e6b 100644 --- a/keyboards/protokeeb/rev1/readme.md +++ b/keyboards/protokeeb/rev1/readme.md @@ -18,6 +18,8 @@ The default layout comes pre-flashed on every Protokeeb and consists of two laye - Layer 1: 16-key numpad, excluding the `NUM LOCK` key. - Layer 2: RGB LED control and keyboard boot options. +- Layer 3: Media control, quick launch application and other options. +- Layer 4: Function Keys. Make example for this keyboard (after setting up your build environment): @@ -27,7 +29,6 @@ Flashing example for this keyboard: make protokeeb/rev1: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). ## Bootloader