Compare commits
No commits in common. "d164232cefbf70a12ee571127567aa13e9187747" and "7791b778bb3794f03b747a56921f293337c4695a" have entirely different histories.
d164232cef
...
7791b778bb
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2
Makefile
2
Makefile
|
|
@ -4,7 +4,7 @@ QMK_HOME ?= ${HOME}/qmk_firmware
|
||||||
# QMK keyboard information (author, keyboard, revision)
|
# QMK keyboard information (author, keyboard, revision)
|
||||||
QMK_KEYBOARD_AUTHOR := binarydiv
|
QMK_KEYBOARD_AUTHOR := binarydiv
|
||||||
QMK_KEYBOARD_NAME := eepyboard
|
QMK_KEYBOARD_NAME := eepyboard
|
||||||
QMK_KEYBOARD_REV ?= rev2
|
QMK_KEYBOARD_REV ?= rev1
|
||||||
|
|
||||||
# Directory structure for QMK keyboard files
|
# Directory structure for QMK keyboard files
|
||||||
QMK_KEYBOARD_AUTHOR_DIR := ${QMK_KEYBOARD_AUTHOR}
|
QMK_KEYBOARD_AUTHOR_DIR := ${QMK_KEYBOARD_AUTHOR}
|
||||||
|
|
|
||||||
|
|
@ -19,21 +19,17 @@ enum layer_names {
|
||||||
enum custom_keycodes {
|
enum custom_keycodes {
|
||||||
// Macro to select the current word (Ctrl-Left, Shift-Ctrl-Right)
|
// Macro to select the current word (Ctrl-Left, Shift-Ctrl-Right)
|
||||||
MACRO_SELECT_WORD = SAFE_RANGE,
|
MACRO_SELECT_WORD = SAFE_RANGE,
|
||||||
|
|
||||||
// Special characters that require more complicated input
|
|
||||||
MACRO_HEART,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// For keycodes, see QMK docs: https://docs.qmk.fm/keycodes
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
// Base layer
|
// Base layer
|
||||||
[L_BASE] = LAYOUT_ortho_6x13(
|
[L_BASE] = LAYOUT_ortho_6x13(
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_KB_MUTE,
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_KB_MUTE,
|
||||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL,
|
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET,
|
||||||
KC_APP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH,
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH,
|
||||||
KC_LEFT_SHIFT, KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT,
|
KC_LEFT_SHIFT, KC_HOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT,
|
||||||
KC_LEFT_CTRL, KC_END, KC_LGUI, KC_LEFT_ALT, OSL(L_CODE), KC_SPACE, _______, KC_BACKSPACE, KC_RIGHT_ALT, KC_ENTER, KC_DELETE, MO(L_FN), KC_RIGHT_CTRL
|
KC_LEFT_CTRL, KC_END, KC_LGUI, KC_LEFT_ALT, OSL(L_CODE), KC_SPACE, _______, KC_BACKSPACE, KC_ENTER, OSM(MOD_RALT), KC_DELETE, MO(L_FN), KC_RIGHT_CTRL
|
||||||
),
|
),
|
||||||
|
|
||||||
// "Code" key layer
|
// "Code" key layer
|
||||||
|
|
@ -42,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
_______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, KC_UNDERSCORE, KC_EQUAL, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, _______, _______,
|
_______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, KC_UNDERSCORE, KC_EQUAL, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, _______, _______,
|
||||||
_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, KC_MINUS, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, _______, _______,
|
_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, KC_MINUS, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, _______, _______,
|
||||||
_______, LCTL(KC_LEFT), MACRO_SELECT_WORD, LCTL(KC_RIGHT), MACRO_HEART, KC_ENTER, _______, _______, _______, _______, _______, _______, _______,
|
_______, LCTL(KC_LEFT), MACRO_SELECT_WORD, LCTL(KC_RIGHT), KC_ENTER, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
@ -76,9 +72,6 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
// Store the current modifier state in the variable for later reference
|
|
||||||
uint8_t mod_state = get_mods();
|
|
||||||
|
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case MACRO_SELECT_WORD:
|
case MACRO_SELECT_WORD:
|
||||||
// Run macro when keycode is pressed
|
// Run macro when keycode is pressed
|
||||||
|
|
@ -87,14 +80,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LSFT(SS_LCTL(SS_TAP(X_RIGHT))));
|
SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LSFT(SS_LCTL(SS_TAP(X_RIGHT))));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MACRO_HEART:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
// Type a outlined heart via X11 Compose key (with custom mappings)
|
|
||||||
del_mods(MOD_MASK_SHIFT);
|
|
||||||
SEND_STRING(SS_TAP(X_APP) "c3");
|
|
||||||
set_mods(mod_state);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
# eepyBoard v1.1 / rev2
|
|
||||||
|
|
||||||
This is the firmware for hardware revision 2 of the eepyBoard (v1.1).
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
// Copyright 2024 binaryDiv (@binaryDiv)
|
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// Lock one-shot keys when tapping them twice
|
|
||||||
#define ONESHOT_TAP_TOGGLE 2
|
|
||||||
|
|
@ -1,253 +0,0 @@
|
||||||
{
|
|
||||||
"keyboard_name": "eepyBoard v1.1",
|
|
||||||
"maintainer": "binaryDiv",
|
|
||||||
"manufacturer": "binaryDiv",
|
|
||||||
"url": "https://git.0xbd.space/binaryDiv/eepyBoard",
|
|
||||||
"processor": "RP2040",
|
|
||||||
"bootloader": "rp2040",
|
|
||||||
"usb": {
|
|
||||||
"device_version": "1.1.0",
|
|
||||||
"vid": "0x1337",
|
|
||||||
"pid": "0xBD32"
|
|
||||||
},
|
|
||||||
"features": {
|
|
||||||
"bootmagic": true,
|
|
||||||
"command": false,
|
|
||||||
"console": true,
|
|
||||||
"extrakey": true,
|
|
||||||
"mousekey": true,
|
|
||||||
"nkro": true,
|
|
||||||
"rgb_matrix": true
|
|
||||||
},
|
|
||||||
"diode_direction": "COL2ROW",
|
|
||||||
"matrix_pins": {
|
|
||||||
"cols": [
|
|
||||||
"GP27", "GP26", "GP25", "GP23", "GP22", "GP21", "GP20", "GP17",
|
|
||||||
"GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6"
|
|
||||||
],
|
|
||||||
"rows": ["GP28", "GP15", "GP18", "GP19", "GP14", "GP13"]
|
|
||||||
},
|
|
||||||
"encoder": {
|
|
||||||
"rotary": [
|
|
||||||
{
|
|
||||||
"pin_a": "GP3",
|
|
||||||
"pin_b": "GP2",
|
|
||||||
"resolution": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pin_a": "GP0",
|
|
||||||
"pin_b": "GP1",
|
|
||||||
"resolution": 4
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"layouts": {
|
|
||||||
"LAYOUT_ortho_6x15": {
|
|
||||||
"layout": [
|
|
||||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
|
||||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
|
||||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
|
||||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
|
||||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
|
||||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
|
||||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
|
||||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
|
||||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
|
||||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
|
||||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
|
||||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
|
||||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
|
||||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
|
||||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
|
||||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
|
||||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
|
||||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
|
||||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
|
||||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
|
||||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
|
||||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
|
||||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
|
||||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
|
||||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
|
||||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
|
||||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
|
||||||
{"matrix": [1, 12], "x": 12, "y": 1},
|
|
||||||
{"matrix": [1, 13], "x": 13, "y": 1},
|
|
||||||
{"matrix": [1, 14], "x": 14, "y": 1},
|
|
||||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
|
||||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
|
||||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
|
||||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
|
||||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
|
||||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
|
||||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
|
||||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
|
||||||
{"matrix": [2, 8], "x": 8, "y": 2},
|
|
||||||
{"matrix": [2, 9], "x": 9, "y": 2},
|
|
||||||
{"matrix": [2, 10], "x": 10, "y": 2},
|
|
||||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
|
||||||
{"matrix": [2, 12], "x": 12, "y": 2},
|
|
||||||
{"matrix": [2, 13], "x": 13, "y": 2},
|
|
||||||
{"matrix": [2, 14], "x": 14, "y": 2},
|
|
||||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
|
||||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
|
||||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
|
||||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
|
||||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
|
||||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
|
||||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
|
||||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
|
||||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
|
||||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
|
||||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
|
||||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
|
||||||
{"matrix": [3, 12], "x": 12, "y": 3},
|
|
||||||
{"matrix": [3, 13], "x": 13, "y": 3},
|
|
||||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
|
||||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
|
||||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
|
||||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
|
||||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
|
||||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
|
||||||
{"matrix": [4, 5], "x": 5, "y": 4},
|
|
||||||
{"matrix": [4, 6], "x": 6, "y": 4},
|
|
||||||
{"matrix": [4, 7], "x": 7, "y": 4},
|
|
||||||
{"matrix": [4, 8], "x": 8, "y": 4},
|
|
||||||
{"matrix": [4, 9], "x": 9, "y": 4},
|
|
||||||
{"matrix": [4, 10], "x": 10, "y": 4},
|
|
||||||
{"matrix": [4, 11], "x": 11, "y": 4},
|
|
||||||
{"matrix": [4, 12], "x": 12, "y": 4},
|
|
||||||
{"matrix": [4, 13], "x": 13, "y": 4},
|
|
||||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
|
||||||
{"matrix": [5, 0], "x": 0, "y": 5},
|
|
||||||
{"matrix": [5, 1], "x": 1, "y": 5},
|
|
||||||
{"matrix": [5, 2], "x": 2, "y": 5},
|
|
||||||
{"matrix": [5, 3], "x": 3, "y": 5},
|
|
||||||
{"matrix": [5, 4], "x": 4, "y": 5},
|
|
||||||
{"matrix": [5, 5], "x": 5, "y": 5},
|
|
||||||
{"matrix": [5, 6], "x": 6, "y": 5},
|
|
||||||
{"matrix": [5, 7], "x": 7, "y": 5},
|
|
||||||
{"matrix": [5, 8], "x": 8, "y": 5},
|
|
||||||
{"matrix": [5, 9], "x": 9, "y": 5},
|
|
||||||
{"matrix": [5, 10], "x": 10, "y": 5},
|
|
||||||
{"matrix": [5, 11], "x": 11, "y": 5},
|
|
||||||
{"matrix": [5, 12], "x": 12, "y": 5},
|
|
||||||
{"matrix": [5, 13], "x": 13, "y": 5},
|
|
||||||
{"matrix": [5, 14], "x": 14, "y": 5}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rgb_matrix": {
|
|
||||||
"driver": "ws2812",
|
|
||||||
"default": {
|
|
||||||
"animation": "cycle_pinwheel",
|
|
||||||
"speed": 32
|
|
||||||
},
|
|
||||||
"animations": {
|
|
||||||
"cycle_pinwheel": true,
|
|
||||||
"typing_heatmap": true
|
|
||||||
},
|
|
||||||
"max_brightness": 127,
|
|
||||||
"sleep": true,
|
|
||||||
"center_point": [6, 3],
|
|
||||||
"layout": [
|
|
||||||
{"x": 0, "y": 0, "matrix": [0, 0], "flags": 4},
|
|
||||||
{"x": 1, "y": 0, "matrix": [0, 1], "flags": 4},
|
|
||||||
{"x": 2, "y": 0, "matrix": [0, 2], "flags": 4},
|
|
||||||
{"x": 3, "y": 0, "matrix": [0, 3], "flags": 4},
|
|
||||||
{"x": 4, "y": 0, "matrix": [0, 4], "flags": 4},
|
|
||||||
{"x": 5, "y": 0, "matrix": [0, 5], "flags": 4},
|
|
||||||
{"x": 6, "y": 0, "matrix": [0, 6], "flags": 4},
|
|
||||||
{"x": 8, "y": 0, "matrix": [0, 8], "flags": 4},
|
|
||||||
{"x": 9, "y": 0, "matrix": [0, 9], "flags": 4},
|
|
||||||
{"x": 10, "y": 0, "matrix": [0, 10], "flags": 4},
|
|
||||||
{"x": 11, "y": 0, "matrix": [0, 11], "flags": 4},
|
|
||||||
{"x": 12, "y": 0, "matrix": [0, 12], "flags": 4},
|
|
||||||
{"x": 13, "y": 0, "matrix": [0, 13], "flags": 4},
|
|
||||||
|
|
||||||
{"x": 14, "y": 1, "matrix": [1, 14], "flags": 4},
|
|
||||||
{"x": 13, "y": 1, "matrix": [1, 13], "flags": 4},
|
|
||||||
{"x": 12, "y": 1, "matrix": [1, 12], "flags": 4},
|
|
||||||
{"x": 11, "y": 1, "matrix": [1, 11], "flags": 4},
|
|
||||||
{"x": 10, "y": 1, "matrix": [1, 10], "flags": 4},
|
|
||||||
{"x": 9, "y": 1, "matrix": [1, 9], "flags": 4},
|
|
||||||
{"x": 8, "y": 1, "matrix": [1, 8], "flags": 4},
|
|
||||||
|
|
||||||
{"x": 6, "y": 1, "matrix": [1, 6], "flags": 4},
|
|
||||||
{"x": 5, "y": 1, "matrix": [1, 5], "flags": 4},
|
|
||||||
{"x": 4, "y": 1, "matrix": [1, 4], "flags": 4},
|
|
||||||
{"x": 3, "y": 1, "matrix": [1, 3], "flags": 4},
|
|
||||||
{"x": 2, "y": 1, "matrix": [1, 2], "flags": 4},
|
|
||||||
{"x": 1, "y": 1, "matrix": [1, 1], "flags": 4},
|
|
||||||
{"x": 0, "y": 1, "matrix": [1, 0], "flags": 4},
|
|
||||||
|
|
||||||
{"x": 0, "y": 2, "matrix": [2, 0], "flags": 4},
|
|
||||||
{"x": 1, "y": 2, "matrix": [2, 1], "flags": 4},
|
|
||||||
{"x": 2, "y": 2, "matrix": [2, 2], "flags": 4},
|
|
||||||
{"x": 3, "y": 2, "matrix": [2, 3], "flags": 4},
|
|
||||||
{"x": 4, "y": 2, "matrix": [2, 4], "flags": 4},
|
|
||||||
{"x": 5, "y": 2, "matrix": [2, 5], "flags": 4},
|
|
||||||
{"x": 6, "y": 2, "matrix": [2, 6], "flags": 4},
|
|
||||||
{"x": 7, "y": 2, "matrix": [2, 7], "flags": 4},
|
|
||||||
{"x": 8, "y": 2, "matrix": [2, 8], "flags": 4},
|
|
||||||
{"x": 9, "y": 2, "matrix": [2, 9], "flags": 4},
|
|
||||||
{"x": 10, "y": 2, "matrix": [2, 10], "flags": 4},
|
|
||||||
{"x": 11, "y": 2, "matrix": [2, 11], "flags": 4},
|
|
||||||
{"x": 12, "y": 2, "matrix": [2, 12], "flags": 4},
|
|
||||||
{"x": 13, "y": 2, "matrix": [2, 13], "flags": 4},
|
|
||||||
{"x": 14, "y": 2, "matrix": [2, 14], "flags": 4},
|
|
||||||
|
|
||||||
{"x": 14, "y": 3, "matrix": [3, 14], "flags": 4},
|
|
||||||
{"x": 13, "y": 3, "matrix": [3, 13], "flags": 4},
|
|
||||||
{"x": 12, "y": 3, "matrix": [3, 12], "flags": 4},
|
|
||||||
{"x": 11, "y": 3, "matrix": [3, 11], "flags": 4},
|
|
||||||
{"x": 10, "y": 3, "matrix": [3, 10], "flags": 4},
|
|
||||||
{"x": 9, "y": 3, "matrix": [3, 9], "flags": 4},
|
|
||||||
{"x": 8, "y": 3, "matrix": [3, 8], "flags": 4},
|
|
||||||
{"x": 7.5, "y": 3, "matrix": [1, 7], "flags": 4},
|
|
||||||
{"x": 6.5, "y": 3, "matrix": [3, 7], "flags": 4},
|
|
||||||
{"x": 6, "y": 3, "matrix": [3, 6], "flags": 4},
|
|
||||||
{"x": 5, "y": 3, "matrix": [3, 5], "flags": 4},
|
|
||||||
{"x": 4, "y": 3, "matrix": [3, 4], "flags": 4},
|
|
||||||
{"x": 3, "y": 3, "matrix": [3, 3], "flags": 4},
|
|
||||||
{"x": 2, "y": 3, "matrix": [3, 2], "flags": 4},
|
|
||||||
{"x": 1, "y": 3, "matrix": [3, 1], "flags": 4},
|
|
||||||
{"x": 0, "y": 3, "matrix": [3, 0], "flags": 4},
|
|
||||||
|
|
||||||
{"x": 0, "y": 4, "matrix": [4, 0], "flags": 4},
|
|
||||||
{"x": 1, "y": 4, "matrix": [4, 1], "flags": 4},
|
|
||||||
{"x": 2, "y": 4, "matrix": [4, 2], "flags": 4},
|
|
||||||
{"x": 3, "y": 4, "matrix": [4, 3], "flags": 4},
|
|
||||||
{"x": 4, "y": 4, "matrix": [4, 4], "flags": 4},
|
|
||||||
{"x": 5, "y": 4, "matrix": [4, 5], "flags": 4},
|
|
||||||
{"x": 6, "y": 4, "matrix": [4, 6], "flags": 4},
|
|
||||||
{"x": 7, "y": 4, "matrix": [4, 7], "flags": 4},
|
|
||||||
{"x": 8, "y": 4, "matrix": [4, 8], "flags": 4},
|
|
||||||
{"x": 9, "y": 4, "matrix": [4, 9], "flags": 4},
|
|
||||||
{"x": 10, "y": 4, "matrix": [4, 10], "flags": 4},
|
|
||||||
{"x": 11, "y": 4, "matrix": [4, 11], "flags": 4},
|
|
||||||
{"x": 12, "y": 4, "matrix": [4, 12], "flags": 4},
|
|
||||||
{"x": 13, "y": 4, "matrix": [4, 13], "flags": 4},
|
|
||||||
{"x": 14, "y": 4, "matrix": [4, 14], "flags": 4},
|
|
||||||
|
|
||||||
{"x": 14, "y": 5, "matrix": [5, 14], "flags": 4},
|
|
||||||
{"x": 13, "y": 5, "matrix": [5, 13], "flags": 4},
|
|
||||||
{"x": 12, "y": 5, "matrix": [5, 12], "flags": 4},
|
|
||||||
{"x": 11, "y": 5, "matrix": [5, 11], "flags": 4},
|
|
||||||
{"x": 10, "y": 5, "matrix": [5, 10], "flags": 4},
|
|
||||||
{"x": 9, "y": 5, "matrix": [5, 9], "flags": 4},
|
|
||||||
{"x": 8, "y": 5, "matrix": [5, 8], "flags": 4},
|
|
||||||
{"x": 7, "y": 5, "matrix": [5, 7], "flags": 4},
|
|
||||||
{"x": 6, "y": 5, "matrix": [5, 6], "flags": 4},
|
|
||||||
{"x": 5, "y": 5, "matrix": [5, 5], "flags": 4},
|
|
||||||
{"x": 4, "y": 5, "matrix": [5, 4], "flags": 4},
|
|
||||||
{"x": 3, "y": 5, "matrix": [5, 3], "flags": 4},
|
|
||||||
{"x": 2, "y": 5, "matrix": [5, 2], "flags": 4},
|
|
||||||
{"x": 1, "y": 5, "matrix": [5, 1], "flags": 4},
|
|
||||||
{"x": 0, "y": 5, "matrix": [5, 0], "flags": 4}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ws2812": {
|
|
||||||
"pin": "GP29"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
// 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 {
|
|
||||||
// Base layer
|
|
||||||
L_BASE,
|
|
||||||
|
|
||||||
// "Code" key: Moving the cursor around via WASD, F-keys on number keys, etc.
|
|
||||||
L_CODE,
|
|
||||||
|
|
||||||
// Fn / keyboard control layer: Used for keyboard configuration
|
|
||||||
L_FN,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Custom keycodes
|
|
||||||
enum custom_keycodes {
|
|
||||||
// Macro to select the current word (Ctrl-Left, Shift-Ctrl-Right)
|
|
||||||
MACRO_SELECT_WORD = SAFE_RANGE,
|
|
||||||
|
|
||||||
// Special characters that require more complicated input
|
|
||||||
MACRO_HEART,
|
|
||||||
};
|
|
||||||
|
|
||||||
// For keycodes, see QMK docs: https://docs.qmk.fm/keycodes
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
||||||
// Base layer
|
|
||||||
// TODO this is temporary
|
|
||||||
// TODO update and add KLE layout to VCS
|
|
||||||
// TODO add own LAYOUT_ macro, where the center keys are at the end?
|
|
||||||
[L_BASE] = LAYOUT_ortho_6x15(
|
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
|
||||||
_______, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_RIGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL,
|
|
||||||
_______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET,
|
|
||||||
_______, KC_APP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LEFT, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH,
|
|
||||||
_______, KC_LEFT_SHIFT, KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_DOWN, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT,
|
|
||||||
_______, KC_LEFT_CTRL, KC_END, KC_LGUI, KC_LEFT_ALT, OSL(L_CODE), KC_SPACE, KC_ENTER, KC_BACKSPACE, KC_RIGHT_ALT, KC_RIGHT_CTRL, KC_DELETE, MO(L_FN), _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
// "Code" key layer
|
|
||||||
// TODO this is temporary
|
|
||||||
[L_CODE] = LAYOUT_ortho_6x15(
|
|
||||||
_______, _______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PRINT_SCREEN, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, KC_UNDERSCORE, KC_EQUAL, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, _______, _______, _______,
|
|
||||||
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, KC_MINUS, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, _______, _______, _______,
|
|
||||||
_______, _______, LCTL(KC_LEFT), MACRO_SELECT_WORD, LCTL(KC_RIGHT), MACRO_HEART, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
|
||||||
),
|
|
||||||
|
|
||||||
// "Fn" key layer
|
|
||||||
// TODO this is temporary
|
|
||||||
[L_FN] = LAYOUT_ortho_6x15(
|
|
||||||
_______, DM_RSTP, DM_REC1, DM_REC2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OS_TOGG, _______, RGB_MOD, RGB_TOG, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_CLEAR_EEPROM, QK_REBOOT, _______,
|
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOTLOADER, _______
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
// Define mapping for rotary encoder
|
|
||||||
#if defined(ENCODER_MAP_ENABLE)
|
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
|
||||||
// TODO this is temporary
|
|
||||||
// Base layer: Volume control
|
|
||||||
[L_BASE] = {
|
|
||||||
ENCODER_CCW_CW(KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP),
|
|
||||||
ENCODER_CCW_CW(KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP)
|
|
||||||
},
|
|
||||||
// Code layer: Scroll wheel
|
|
||||||
[L_CODE] = {
|
|
||||||
ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN),
|
|
||||||
ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)
|
|
||||||
},
|
|
||||||
// Fn layer: RGB LED brightness control
|
|
||||||
[L_FN] = {
|
|
||||||
ENCODER_CCW_CW(RGB_VAD, RGB_VAI),
|
|
||||||
ENCODER_CCW_CW(RGB_VAD, RGB_VAI)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
// Store the current modifier state in the variable for later reference
|
|
||||||
uint8_t mod_state = get_mods();
|
|
||||||
|
|
||||||
switch (keycode) {
|
|
||||||
case MACRO_SELECT_WORD:
|
|
||||||
// Run macro when keycode is pressed
|
|
||||||
if (record->event.pressed) {
|
|
||||||
// Select word
|
|
||||||
SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LSFT(SS_LCTL(SS_TAP(X_RIGHT))));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MACRO_HEART:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
// Type a outlined heart via X11 Compose key (with custom mappings)
|
|
||||||
del_mods(MOD_MASK_SHIFT);
|
|
||||||
SEND_STRING(SS_TAP(X_APP) "c3");
|
|
||||||
set_mods(mod_state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
# Enable support for rotary encoder
|
|
||||||
ENCODER_ENABLE = yes
|
|
||||||
ENCODER_MAP_ENABLE = yes
|
|
||||||
|
|
||||||
# Use RP2040-specific driver for WS2812 (PIO-based)
|
|
||||||
WS2812_DRIVER = vendor
|
|
||||||
|
|
||||||
# Enable support for dynamic macros
|
|
||||||
DYNAMIC_MACRO_ENABLE = yes
|
|
||||||
Loading…
Reference in New Issue