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
|
||||
|
||||
// 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), _______,
|
||||
// -- 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
|
||||
),
|
||||
|
||||
// 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)
|
||||
),
|
||||
|
||||
// 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 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_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, _______
|
||||
_______, _______, _______, _______, _______,
|
||||
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)
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue