106 lines
4.0 KiB
C
106 lines
4.0 KiB
C
// Copyright 2024 binaryDiv (@binaryDiv)
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#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] = {
|
|
// -- 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)
|
|
),
|
|
|
|
// 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] = {
|
|
// -- 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
|
|
[L_KBDCTL] = {
|
|
ENCODER_CCW_CW(RGB_VAD, RGB_VAI)
|
|
}
|
|
};
|
|
#endif
|