Firmware: Implement mode switching; add numpad and Procreate modes
This commit is contained in:
parent
79560566a1
commit
8182df079f
|
|
@ -3,49 +3,102 @@
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#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] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/*
|
// -- Mode layers
|
||||||
* ┌────────┬────────┬────────┬────────┬────────┐
|
|
||||||
* │ │ │ │ Kbd-Fn │ │
|
// Mode 1: Numpad mode
|
||||||
* ├────────┼────────┼────────┼────────┼────────┤
|
[L_MODE_NUMPAD] = LAYOUT_ortho_5x5(
|
||||||
* │ Alt+6 │ Alt+7 │ Alt+8 │ Alt+9 │ Alt+0 │
|
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,
|
||||||
* │ Alt+1 │ Alt+2 │ Alt+3 │ Alt+4 │ Alt+5 │
|
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,
|
||||||
* │ Ctrl+6 │ Ctrl+7 │ Ctrl+8 │ Ctrl+9 │ Ctrl+0 │
|
KC_KP_0, KC_KP_DOT, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
* ├────────┼────────┼────────┼────────┼────────┤
|
|
||||||
* │ 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)
|
|
||||||
),
|
),
|
||||||
|
|
||||||
// Keyboard control layer for entering bootloader and controlling the RGB light (hold 0,4)
|
// Mode 2: Procreate shortcuts
|
||||||
[1] = LAYOUT_ortho_5x5(
|
[L_MODE_PROCREATE] = LAYOUT_ortho_5x5(
|
||||||
QK_BOOTLOADER, QK_REBOOT, QK_DEBUG_TOGGLE, _______, QK_CLEAR_EEPROM,
|
KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_GRAVE, MO(L_KBDCTL), _______,
|
||||||
RGB_TOG, RGB_MODE_REVERSE, RGB_MODE_FORWARD, _______, _______,
|
LCMD(KC_B), LCMD(KC_U), KC_L, KC_B, KC_E,
|
||||||
RGB_VAI, RGB_SAI, RGB_HUI, RGB_SPI, _______,
|
LCMD(KC_0), LCMD(KC_K), KC_S, LCMD(KC_Z), LCMD(LSFT(KC_Z)),
|
||||||
RGB_VAD, RGB_SAD, RGB_HUD, RGB_SPD, _______,
|
KC_X, KC_C, KC_V, KC_UP, KC_LEFT_ALT,
|
||||||
RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, _______
|
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
|
// Define mapping for rotary encoder
|
||||||
#if defined(ENCODER_MAP_ENABLE)
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||||
// Default layer: Emulate scroll wheel
|
// -- Mode layers
|
||||||
[0] = {
|
// Mode 1: Numpad - Scroll wheel
|
||||||
|
[L_MODE_NUMPAD] = {
|
||||||
ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)
|
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
|
// Keyboard control layer: Control RGB LED brightness
|
||||||
[1] = {
|
[L_KBDCTL] = {
|
||||||
ENCODER_CCW_CW(RGB_VAD, RGB_VAI)
|
ENCODER_CCW_CW(RGB_VAD, RGB_VAI)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue