From 8182df079ff6da2d5a1744ec846d934df74f8c9b Mon Sep 17 00:00:00 2001 From: binaryDiv Date: Wed, 5 Jun 2024 23:55:24 +0200 Subject: [PATCH] Firmware: Implement mode switching; add numpad and Procreate modes --- .../eepypad/v1/keymaps/default/keymap.c | 113 +++++++++++++----- 1 file changed, 83 insertions(+), 30 deletions(-) diff --git a/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c b/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c index f150b80..9a3a6d9 100644 --- a/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c +++ b/qmk_keyboards/binarydiv/eepypad/v1/keymaps/default/keymap.c @@ -3,49 +3,102 @@ #include QMK_KEYBOARD_H +// Define layer names for better readability +enum layer_names { + // -- Mode layers: Different "modes" for app-specific key bindings that can be selected as default layer. + // Mode 1: Numpad + L_MODE_NUMPAD, + // Mode 2: Procreate shortcuts + L_MODE_PROCREATE, + // Mode 3: Factorio extra quick bars + L_MODE_FACTORIO, + + // RGB control mode: Change RGB lighting + L_MODE_RGB_CTRL, + + // -- Special layers + // Keyboard control layer: Used to switch the current mode / default layer and other keyboard configuration. + L_KBDCTL, +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌────────┬────────┬────────┬────────┬────────┐ - * │ │ │ │ Kbd-Fn │ │ - * ├────────┼────────┼────────┼────────┼────────┤ - * │ Alt+6 │ Alt+7 │ Alt+8 │ Alt+9 │ Alt+0 │ - * ├────────┼────────┼────────┼────────┼────────┤ - * │ Alt+1 │ Alt+2 │ Alt+3 │ Alt+4 │ Alt+5 │ - * ├────────┼────────┼────────┼────────┼────────┤ - * │ Ctrl+6 │ Ctrl+7 │ Ctrl+8 │ Ctrl+9 │ Ctrl+0 │ - * ├────────┼────────┼────────┼────────┼────────┤ - * │ Ctrl+1 │ Ctrl+2 │ Ctrl+3 │ Ctrl+4 │ Ctrl+5 │ - * └────────┴────────┴────────┴────────┴────────┘ - */ - // Default layer for Factorio tertiary/quarternary quick bars - [0] = LAYOUT_ortho_5x5( - _______, _______, _______, MO(1), _______, - LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), - LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), - LCTL(KC_6), LCTL(KC_7), LCTL(KC_8), LCTL(KC_9), LCTL(KC_0), - LCTL(KC_1), LCTL(KC_2), LCTL(KC_3), LCTL(KC_4), LCTL(KC_5) + // -- Mode layers + + // Mode 1: Numpad mode + [L_MODE_NUMPAD] = LAYOUT_ortho_5x5( + KC_ESCAPE, KC_KP_SLASH, KC_KP_ASTERISK, MO(L_KBDCTL), KC_NUM_LOCK, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, + KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_BACKSPACE, + KC_KP_1, KC_KP_2, KC_KP_3, KC_UP, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT, KC_LEFT, KC_DOWN, KC_RIGHT ), - // Keyboard control layer for entering bootloader and controlling the RGB light (hold 0,4) - [1] = LAYOUT_ortho_5x5( - QK_BOOTLOADER, QK_REBOOT, QK_DEBUG_TOGGLE, _______, QK_CLEAR_EEPROM, - RGB_TOG, RGB_MODE_REVERSE, RGB_MODE_FORWARD, _______, _______, - RGB_VAI, RGB_SAI, RGB_HUI, RGB_SPI, _______, - RGB_VAD, RGB_SAD, RGB_HUD, RGB_SPD, _______, - RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, _______ + // Mode 2: Procreate shortcuts + [L_MODE_PROCREATE] = LAYOUT_ortho_5x5( + KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_GRAVE, MO(L_KBDCTL), _______, + LCMD(KC_B), LCMD(KC_U), KC_L, KC_B, KC_E, + LCMD(KC_0), LCMD(KC_K), KC_S, LCMD(KC_Z), LCMD(LSFT(KC_Z)), + KC_X, KC_C, KC_V, KC_UP, KC_LEFT_ALT, + KC_LCMD, KC_SPACE, KC_LEFT, KC_DOWN, KC_RIGHT ), + + // Mode 3: Factorio extra quick bars + [L_MODE_FACTORIO] = LAYOUT_ortho_5x5( + _______, _______, _______, MO(L_KBDCTL), _______, + LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), + LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), + LCTL(KC_6), LCTL(KC_7), LCTL(KC_8), LCTL(KC_9), LCTL(KC_0), + LCTL(KC_1), LCTL(KC_2), LCTL(KC_3), LCTL(KC_4), LCTL(KC_5) + ), + + // RGB control mode: Change RGB lighting + [L_MODE_RGB_CTRL] = LAYOUT_ortho_5x5( + RGB_TOG, RGB_MODE_REVERSE, RGB_MODE_FORWARD, MO(L_KBDCTL), _______, + RGB_VAI, RGB_SAI, RGB_HUI, RGB_SPI, _______, + RGB_VAD, RGB_SAD, RGB_HUD, RGB_SPD, _______, + _______, _______, _______, _______, _______, + RGB_MODE_PLAIN, RGB_MODE_RGBTEST, _______, _______, _______ + ), + + // -- Special layers + + // Keyboard control layer: Used to switch the current mode / default layer and other keyboard configuration. + [L_KBDCTL] = LAYOUT_ortho_5x5( + QK_BOOTLOADER, QK_REBOOT, QK_DEBUG_TOGGLE, _______, QK_CLEAR_EEPROM, + _______, _______, _______, RGB_TOG, DF(L_MODE_RGB_CTRL), + _______, _______, _______, _______, _______, + DF(L_MODE_NUMPAD), DF(L_MODE_PROCREATE), DF(L_MODE_FACTORIO), _______, _______, + _______, _______, _______, _______, _______ + ) }; // Define mapping for rotary encoder #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - // Default layer: Emulate scroll wheel - [0] = { + // -- Mode layers + // Mode 1: Numpad - Scroll wheel + [L_MODE_NUMPAD] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + // Mode 2: Procreate - Decrease/increase brush size + [L_MODE_PROCREATE] = { + ENCODER_CCW_CW(LCMD(KC_LEFT_BRACKET), LCMD(KC_RIGHT_BRACKET)) + }, + + // Mode 3: Factorio extra quick bars + [L_MODE_FACTORIO] = { + ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) + }, + + // RGB control mode: Control RGB LED brightness + [L_MODE_RGB_CTRL] = { + ENCODER_CCW_CW(RGB_VAD, RGB_VAI) + }, + + // -- Special layers // Keyboard control layer: Control RGB LED brightness - [1] = { + [L_KBDCTL] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } };