redid config for qua-ken..

This commit is contained in:
2025-02-03 21:52:28 +01:00
parent 213c155ea8
commit 3a49d9eb25
13 changed files with 493 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
// Copyright 2024 zegonix (@zegonix)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
/* split settings */
#define SPLIT_HAND_PIN_LOW_IS_LEFT
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
#define SERIAL_USART_TX_PIN A11 // USART TX pin
#define SERIAL_USART_RX_PIN A12 // USART RX pin
#define SERIAL_USART_DRIVER SD6 // Select UART Driver for interface 6
+5
View File
@@ -0,0 +1,5 @@
#pragma once
#define HAL_USE_SERIAL TRUE
#include_next <halconf.h>
+127
View File
@@ -0,0 +1,127 @@
{
"manufacturer": "=",
"keyboard_name": "qua-ken",
"maintainer": "zegonix",
"processor": "STM32F401",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"url": "https://github.com/zegonix/qua-ken",
"features": {
"bootmagic": true,
"nkro": true,
"extrakey": true,
"mousekey": true,
},
"required": ["lto"],
"usb": {
"device_version": "0.0.1",
"pid": "0x6337",
"vid": "0x7A78"
},
"matrix_pins": {
"cols": ["B7", "B6", "B5", "B3", "D2", "C12"],
"rows": ["B8", "B4", "C11", "C10", "A15"]
},
"encoder": {
"rotary": [
{ "pin_a": "B14", "pin_b": "B15", "resolution": 2 }
]
},
"split" : {
"enabled": true,
"handedness": {
"pin": "A2",
},
"matrix_pins": {
"right": {
"cols": ["A5", "A6", "A7", "C5", "B0", "B1"],
"rows": ["A4", "C4", "B12", "B13", "C9"]
}
},
"encoder": {
"right": {
"rotary": [
{ "pin_a": "A9", "pin_b": "A8", "resolution": 2 }
]
}
}
},
"tapping": {
"term": 200
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0, "w": 1},
{"label": "1!", "matrix": [0, 1], "x": 1, "y": 0, "w": 1},
{"label": "2@", "matrix": [0, 2], "x": 2, "y": 0, "w": 1},
{"label": "3#", "matrix": [0, 3], "x": 3, "y": 0, "w": 1},
{"label": "4$", "matrix": [0, 4], "x": 4, "y": 0, "w": 1},
{"label": "5%", "matrix": [0, 5], "x": 5, "y": 0, "w": 1},
{"label": "-_", "matrix": [5, 5], "x": 15, "y": 0, "w": 1},
{"label": "0)", "matrix": [5, 4], "x": 14, "y": 0, "w": 1},
{"label": "9(", "matrix": [5, 3], "x": 13, "y": 0, "w": 1},
{"label": "8*", "matrix": [5, 2], "x": 12, "y": 0, "w": 1},
{"label": "7&", "matrix": [5, 1], "x": 11, "y": 0, "w": 1},
{"label": "6^", "matrix": [5, 0], "x": 10, "y": 0, "w": 1},
{"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1, "w": 1},
{"label": "Q", "matrix": [1, 1], "x": 1, "y": 1, "w": 1},
{"label": "W", "matrix": [1, 2], "x": 2, "y": 1, "w": 1},
{"label": "E", "matrix": [1, 3], "x": 3, "y": 1, "w": 1},
{"label": "R", "matrix": [1, 4], "x": 4, "y": 1, "w": 1},
{"label": "T", "matrix": [1, 5], "x": 5, "y": 1, "w": 1},
{"label": "[{", "matrix": [6, 5], "x": 15, "y": 1, "w": 1},
{"label": "P", "matrix": [6, 4], "x": 14, "y": 1, "w": 1},
{"label": "O", "matrix": [6, 3], "x": 13, "y": 1, "w": 1},
{"label": "I", "matrix": [6, 2], "x": 12, "y": 1, "w": 1},
{"label": "U", "matrix": [6, 1], "x": 11, "y": 1, "w": 1},
{"label": "Y", "matrix": [6, 0], "x": 10, "y": 1, "w": 1},
{"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2, "w": 1},
{"label": "A", "matrix": [2, 1], "x": 1, "y": 2, "w": 1},
{"label": "S", "matrix": [2, 2], "x": 2, "y": 2, "w": 1},
{"label": "D", "matrix": [2, 3], "x": 3, "y": 2, "w": 1},
{"label": "F", "matrix": [2, 4], "x": 4, "y": 2, "w": 1},
{"label": "G", "matrix": [2, 5], "x": 5, "y": 2, "w": 1},
{"label": "'\"", "matrix": [7, 5], "x": 15, "y": 2, "w": 1},
{"label": ";:", "matrix": [7, 4], "x": 14, "y": 2, "w": 1},
{"label": "L", "matrix": [7, 3], "x": 13, "y": 2, "w": 1},
{"label": "K", "matrix": [7, 2], "x": 12, "y": 2, "w": 1},
{"label": "J", "matrix": [7, 1], "x": 11, "y": 2, "w": 1},
{"label": "H", "matrix": [7, 0], "x": 10, "y": 2, "w": 1},
{"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3, "w": 1},
{"label": "Z", "matrix": [3, 1], "x": 1, "y": 3, "w": 1},
{"label": "X", "matrix": [3, 2], "x": 2, "y": 3, "w": 1},
{"label": "C", "matrix": [3, 3], "x": 3, "y": 3, "w": 1},
{"label": "V", "matrix": [3, 4], "x": 4, "y": 3, "w": 1},
{"label": "B", "matrix": [3, 5], "x": 5, "y": 3, "w": 1},
{"label": "RSFT", "matrix": [8, 5], "x": 15, "y": 3, "w": 1},
{"label": "/?", "matrix": [8, 4], "x": 14, "y": 3, "w": 1},
{"label": ".>", "matrix": [8, 3], "x": 13, "y": 3, "w": 1},
{"label": ",<", "matrix": [8, 2], "x": 12, "y": 3, "w": 1},
{"label": "M", "matrix": [8, 1], "x": 11, "y": 3, "w": 1},
{"label": "N", "matrix": [8, 0], "x": 10, "y": 3, "w": 1},
{"label": "LALT", "matrix": [4, 0], "x": 0, "y": 4, "w": 1},
{"label": "LCLT", "matrix": [4, 1], "x": 1, "y": 4, "w": 1},
{"label": "____", "matrix": [4, 2], "x": 2, "y": 4, "w": 1},
{"label": "SPC", "matrix": [4, 3], "x": 3, "y": 4, "w": 1},
{"label": "ESC", "matrix": [4, 4], "x": 4, "y": 4, "w": 1},
{"label": "ENCL", "matrix": [4, 5], "x": 5, "y": 4, "w": 1},
{"label": "ENCR", "matrix": [9, 5], "x": 15, "y": 4, "w": 1},
{"label": "BSPC", "matrix": [9, 4], "x": 14, "y": 4, "w": 1},
{"label": "ENT", "matrix": [9, 3], "x": 13, "y": 4, "w": 1},
{"label": "_NAV", "matrix": [9, 2], "x": 12, "y": 4, "w": 1},
{"label": "RALT", "matrix": [9, 1], "x": 11, "y": 4, "w": 1},
{"label": "LGUI", "matrix": [9, 0], "x": 10, "y": 4, "w": 1},
]
}
}
}
+1
View File
@@ -0,0 +1 @@
#define DEBOUNCE 8
+133
View File
@@ -0,0 +1,133 @@
/*
* KEYMAP KEYMAP KEYMAP, QUAK!
*/
#include QMK_KEYBOARD_H
#define QUAK_A (MT(MOD_LGUI, KC_A))
#define QUAK_S (MT(MOD_LALT, KC_S))
#define QUAK_D (MT(MOD_LSFT, KC_D))
#define QUAK_F (MT(MOD_LCTL, KC_F))
#define QUAK_J (MT(MOD_LCTL, KC_J))
#define QUAK_K (MT(MOD_LSFT, KC_K))
#define QUAK_L (MT(MOD_LALT, KC_L))
#define QUAK__ (MT(MOD_LGUI, KC_SCLN))
enum layer_names {
_BS,
_GM,
_NV,
_CH,
_MS,
_CAPS, // for lighting layers only, do not assign keymap!
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* keyboard layout
* ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
* │ESC │ 1! │ 2@ │ 3# │ 4$ │ 5% │ │ 6^ │ 7& │ 8* │ 9( │ 0) │ __ │
* ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
* │TAB │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ \| │
* ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
* │_CH │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;: │ '" │
* ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
* │LSFT│ Z │ X │ C │ V │ B │ ┌────┐ ┌────┐ │ N │ M │ ,< │ .> │ /? │RSFT│
* └────┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┐│ENCL│ │ENCL│┌──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴────┘
* │LALT│LCTL│ __ │SPC │ESC │└────┘ └────┘│LALT│LCTL│____│SPC │ESC │
* └────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┘
*/
/// [TEMPLATE]
// [<LAYER>] = LAYOUT(
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// ),
// base layer
[_BS] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
MO(_CH), QUAK_A, QUAK_S, QUAK_D, QUAK_F, KC_G, KC_H, QUAK_J, QUAK_K, QUAK_L, QUAK__, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LCTL, KC_ESC, KC_SPC, KC_DEL, _______, _______, KC_BSPC, KC_ENT, MO(_NV), _______, KC_RGUI,
),
// gaming layer
[_GM] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_TAB, KC_T, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_G, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LCTL, KC_ESC, KC_SPC, KC_DEL, DF(_BS), _______, KC_BSPC, KC_ENT, MO(_NV), _______, KC_RGUI,
),
// navigation layer
[_NV] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_F12,
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______,
),
// div
[_CH] = LAYOUT(
KC_GRV, 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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______,
),
// mouse layer
[_MS] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_BTN2, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
),
};
// /* Indicator LED Configuraton */
// const rgblight_segment_t PROGMEM rgb_layer_BASE[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_YELLOW});
// const rgblight_segment_t PROGMEM rgb_layer_GAME[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_SPRINGGREEN});
// const rgblight_segment_t PROGMEM rgb_layer_NAV[] = RGBLIGHT_LAYER_SEGMENTS({11, 2, HSV_PURPLE});
// const rgblight_segment_t PROGMEM rgb_layer_DIV[] = RGBLIGHT_LAYER_SEGMENTS({11, 2, HSV_PURPLE});
// const rgblight_segment_t PROGMEM rgb_layer_MOUS[] = RGBLIGHT_LAYER_SEGMENTS({11, 2, HSV_PURPLE});
// const rgblight_segment_t PROGMEM rgb_layer_CAPS[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_WHITE});
//
// const rgblight_segment_t * const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
// [_BASE] = rgb_layer_BASE,
// [_GAME] = rgb_layer_GAME,
// [_NAV] = rgb_layer_NAV,
// [_DIV] = rgb_layer_DIV,
// [_MOUS] = rgb_layer_MOUS,
// [_CAPS] = rgb_layer_CAPS
// );
//
// void keyboard_post_init_user(void) {
// rgblight_layers = rgb_layers;
// }
//
// bool led_update_user(led_t led_state) {
// rgblight_set_layer_state(_CAPS, led_state.caps_lock);
// return true;
// }
//
// layer_state_t default_layer_state_set_user(layer_state_t state) {
// rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE));
// rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME));
// return state;
// }
//
// layer_state_t layer_state_set_user(layer_state_t state) {
// rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV));
// rgblight_set_layer_state(_DIV, layer_state_cmp(state, _DIV));
// rgblight_set_layer_state(_MOUS, layer_state_cmp(state, _MOUS));
// return state;
// }
+2
View File
@@ -0,0 +1,2 @@
DEBOUNCE_TYPE = sym_defer_g
+1
View File
@@ -0,0 +1 @@
#define DEBOUNCE 8
+141
View File
@@ -0,0 +1,141 @@
/*
* KEYMAP KEYMAP KEYMAP, QUAK!
*/
#include QMK_KEYBOARD_H
#define QUAK_A (MT(MOD_LGUI, KC_A))
#define QUAK_S (MT(MOD_LALT, KC_S))
#define QUAK_D (MT(MOD_LSFT, KC_D))
#define QUAK_F (MT(MOD_LCTL, KC_F))
#define QUAK_J (MT(MOD_LCTL, KC_J))
#define QUAK_K (MT(MOD_LSFT, KC_K))
#define QUAK_L (MT(MOD_LALT, KC_L))
#define QUAK__ (MT(MOD_LGUI, KC_SCLN))
enum layer_names {
_BS,
_GM,
_NV,
_CH,
_MS,
_CAPS, // for lighting layers only, do not assign keymap!
};
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BS] = { ENCODER_CCW_CW(KC_WH_L, KC_WH_R), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) },
[_GM] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) },
[_NV] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______) },
[_CH] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
[_MS] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* keyboard layout
* ┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
* │ESC │ 1! │ 2@ │ 3# │ 4$ │ 5% │ │ 6^ │ 7& │ 8* │ 9( │ 0) │ __ │
* ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
* │TAB │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ \| │
* ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
* │_CH │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;: │ '" │
* ├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
* │LSFT│ Z │ X │ C │ V │ B │ ┌────┐ ┌────┐ │ N │ M │ ,< │ .> │ /? │RSFT│
* └────┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┐│ENCL│ │ENCL│┌──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴────┘
* │LALT│LCTL│ESC │SPC │DEL │└────┘ └────┘│LALT│LCTL│____│SPC │ESC │
* └────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┘
*/
/// [TEMPLATE]
// [<LAYER>] = LAYOUT(
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
// ),
// base layer
[_BS] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
MO(_CH), QUAK_A, QUAK_S, QUAK_D, QUAK_F, KC_G, KC_H, QUAK_J, QUAK_K, QUAK_L, QUAK__, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LCTL, KC_ESC, KC_SPC, KC_DEL, _______, _______, KC_BSPC, KC_ENT, MO(_NV), _______, KC_RGUI
),
// gaming layer
[_GM] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_TAB, KC_T, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_G, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LCTL, KC_ESC, KC_SPC, KC_DEL, DF(_BS), _______, KC_BSPC, KC_ENT, MO(_NV), _______, KC_RGUI
),
// navigation layer
[_NV] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_F12,
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______
),
// div
[_CH] = LAYOUT(
KC_GRV, 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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______
),
// mouse layer
[_MS] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_BTN2, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
// /* Indicator LED Configuraton */
// const rgblight_segment_t PROGMEM rgb_layer_BASE[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_YELLOW});
// const rgblight_segment_t PROGMEM rgb_layer_GAME[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_SPRINGGREEN});
// const rgblight_segment_t PROGMEM rgb_layer_NAV[] = RGBLIGHT_LAYER_SEGMENTS({11, 2, HSV_PURPLE});
// const rgblight_segment_t PROGMEM rgb_layer_DIV[] = RGBLIGHT_LAYER_SEGMENTS({11, 2, HSV_PURPLE});
// const rgblight_segment_t PROGMEM rgb_layer_MOUS[] = RGBLIGHT_LAYER_SEGMENTS({11, 2, HSV_PURPLE});
// const rgblight_segment_t PROGMEM rgb_layer_CAPS[] = RGBLIGHT_LAYER_SEGMENTS({1, 1, HSV_WHITE});
//
// const rgblight_segment_t * const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
// [_BASE] = rgb_layer_BASE,
// [_GAME] = rgb_layer_GAME,
// [_NAV] = rgb_layer_NAV,
// [_DIV] = rgb_layer_DIV,
// [_MOUS] = rgb_layer_MOUS,
// [_CAPS] = rgb_layer_CAPS
// );
//
// void keyboard_post_init_user(void) {
// rgblight_layers = rgb_layers;
// }
//
// bool led_update_user(led_t led_state) {
// rgblight_set_layer_state(_CAPS, led_state.caps_lock);
// return true;
// }
//
// layer_state_t default_layer_state_set_user(layer_state_t state) {
// rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE));
// rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME));
// return state;
// }
//
// layer_state_t layer_state_set_user(layer_state_t state) {
// rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV));
// rgblight_set_layer_state(_DIV, layer_state_cmp(state, _DIV));
// rgblight_set_layer_state(_MOUS, layer_state_cmp(state, _MOUS));
// return state;
// }
+2
View File
@@ -0,0 +1,2 @@
DEBOUNCE_TYPE = sym_defer_g
+6
View File
@@ -0,0 +1,6 @@
#pragma once
#include_next <mcuconf.h>
#undef STM32_SERIAL_USE_USART6
#define STM32_SERIAL_USE_USART6 TRUE
+7
View File
@@ -0,0 +1,7 @@
#include "gpio.h"
void keyboard_pre_init_kb(void) {
// set pulldown on handedness pin
gpio_set_pin_input_low(A2);
}
+34
View File
@@ -0,0 +1,34 @@
# Description
Configuration for my custom keyboard `qua-ken` base on the `Sofle 2.1`.
* Keyboard Maintainer: [zegonix](https://github.com/zegonix)
* Hardware Supported: [qua-ken](https://github.com/zegonix/qua-ken)
* Hardware Availability: the pcb is open source, order it yourself
# Building and flashing firmware
To build and flash the firmware, set up the qmk tool and use the compile and flash commands:
```
qmk config user.keyboard=zegonix/qua_ken
qmk config user.keymap=quaken
qmk compile
qmk flash
```
Alternatively you can use the QMK root level Makefile:
```
make zegonix/qua_ken:quaken // build firmware
make zegonix/qua_ken:quaken:dfu-utils // build and flash firmware
```
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with the [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
# Bootloader
Enter the bootloader in 2 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix, which is be Escape key, while connecting the keyboard. *This variant was not tested*
* **Physical reset button**: Short the two Pins of J2 (usually a pair of tweezers works well) and press the reset button (only button on the backside)
* **Keycode in layout**: Press the key mapped to `QK_BOOT`.
+7
View File
@@ -0,0 +1,7 @@
SERIAL_DRIVER = usart
ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes
WS2812_DRIVER_REQUIRED = no