Added Dynamic Layout selection

- Cleanup unused code and updated documentation
- add dynamic layout selection
  - Leveraged common_features.mk framework
  - Configure layout in keymap rules.mk
- Will test more but it is ready to ship
This commit is contained in:
Victor 2024-05-15 07:52:23 -05:00
parent 10fed13d0f
commit 41a0204fc9
Failed to generate hash of commit
10 changed files with 249 additions and 291 deletions

View file

@ -11,6 +11,5 @@ CONVERT_TO = promicro_rp2040
#CONVERT_TO = blok
#CONVERT_TO = elite_pi
# AUDIO
AUDIO_ENABLE = yes
# AUDIO
AUDIO_DRIVER = pwm_hardware

View file

@ -82,51 +82,7 @@
"sleep": true,
"default": {
"hue": 35
},
"layout": [
{"matrix": [3, 4], "x": 102, "y": 63, "flags": 1},
{"matrix": [3, 3], "x": 89, "y": 54, "flags": 1},
{"matrix": [3, 2], "x": 74, "y": 49, "flags": 1},
{"matrix": [2, 5], "x": 75, "y": 34, "flags": 4},
{"matrix": [1, 5], "x": 75, "y": 21, "flags": 4},
{"matrix": [0, 5], "x": 75, "y": 8, "flags": 4},
{"matrix": [0, 4], "x": 60, "y": 6, "flags": 4},
{"matrix": [1, 4], "x": 60, "y": 19, "flags": 4},
{"matrix": [2, 4], "x": 60, "y": 32, "flags": 4},
{"matrix": [3, 1], "x": 58, "y": 48, "flags": 1},
{"matrix": [2, 3], "x": 46, "y": 25, "flags": 4},
{"matrix": [1, 3], "x": 46, "y": 12, "flags": 4},
{"matrix": [0, 3], "x": 46, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 29, "y": 7, "flags": 4},
{"matrix": [1, 2], "x": 30, "y": 20, "flags": 4},
{"matrix": [2, 2], "x": 31, "y": 33, "flags": 4},
{"matrix": [2, 1], "x": 17, "y": 42, "flags": 4},
{"matrix": [1, 1], "x": 15, "y": 30, "flags": 4},
{"matrix": [0, 1], "x": 13, "y": 17, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 28, "flags": 1},
{"matrix": [2, 0], "x": 3, "y": 41, "flags": 1},
{"matrix": [7, 4], "x": 122, "y": 63, "flags": 1},
{"matrix": [7, 3], "x": 135, "y": 54, "flags": 1},
{"matrix": [7, 2], "x": 150, "y": 49, "flags": 1},
{"matrix": [6, 5], "x": 149, "y": 34, "flags": 4},
{"matrix": [5, 5], "x": 149, "y": 21, "flags": 4},
{"matrix": [4, 5], "x": 149, "y": 8, "flags": 4},
{"matrix": [4, 4], "x": 163, "y": 6, "flags": 4},
{"matrix": [5, 4], "x": 163, "y": 19, "flags": 4},
{"matrix": [6, 4], "x": 163, "y": 32, "flags": 4},
{"matrix": [7, 1], "x": 166, "y": 48, "flags": 1},
{"matrix": [6, 3], "x": 178, "y": 25, "flags": 4},
{"matrix": [5, 3], "x": 178, "y": 12, "flags": 4},
{"matrix": [4, 3], "x": 178, "y": 0, "flags": 4},
{"matrix": [4, 2], "x": 195, "y": 7, "flags": 4},
{"matrix": [5, 2], "x": 194, "y": 20, "flags": 4},
{"matrix": [6, 2], "x": 193, "y": 33, "flags": 4},
{"matrix": [4, 1], "x": 206, "y": 42, "flags": 4},
{"matrix": [5, 1], "x": 209, "y": 30, "flags": 4},
{"matrix": [6, 1], "x": 211, "y": 17, "flags": 4},
{"matrix": [5, 0], "x": 224, "y": 28, "flags": 1},
{"matrix": [6, 0], "x": 221, "y": 41, "flags": 1}
]
}
},
"ws2812": {
"pin": "D3"
@ -134,9 +90,6 @@
"audio": {
"voices": true
},
"layout_aliases": {
"LAYOUT": "LAYOUT_polydactyl"
},
"layouts": {
"LAYOUT_konrad": {
"layout": [

View file

@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
CTRL LOWER SPACE ALT CMD/WIN ENTER RAISE BSPACE
*/
[_QWERTY] = LAYOUT_polydactyl(
[_QWERTY] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
CTRL LOWER SPACE ALT CMD/WIN ENTER RAISE BSPCE
*/
[_COLEMAK] = LAYOUT_polydactyl(
[_COLEMAK] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_TAB, GUI_A, ALT_R, CTL_S, SHT_T, KC_D, KC_H, SHT_N, CTL_E, ALT_I, GUI_O, KC_QUOT,
@ -160,7 +160,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
ADJUST 0
*/
[_LOWER] = LAYOUT_polydactyl(
[_LOWER] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_ESC, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS, KC_DQT,
@ -183,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
ADJUST
*/
[_RAISE] = LAYOUT_polydactyl(
[_RAISE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U),RALT(KC_3),KC_BSLS,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@ -206,7 +206,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_ADJUST] = LAYOUT_polydactyl(
[_ADJUST] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
AU_TOGG, HF_TOGG, RGB_HUI, RGB_MOD, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F14,
QK_BOOT, DB_TOGG, QWERTY, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F12, KC_F13,
@ -230,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_polydactyl(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -253,7 +253,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_konrad(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -276,7 +276,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_yubitsume(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -300,7 +300,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_saegewerk(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View file

@ -4,5 +4,9 @@ DYNAMIC_MACRO_ENABLE = no
COMBO_ENABLE = no
KEY_OVERRIDE_ENABLE = no
#HAPTIC FEEBACK
HAPTIC_ENABLE = no
AUDIO_ENABLE = yes
MUSIC_ENABLE = yes
HAPTIC_ENABLE = no
# Choose your layout
KLOR_LAYOUT = polydactyl

View file

@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
CTRL LOWER SPACE ENTER RAISE BSPACE
*/
[_QWERTY] = LAYOUT_saegewerk(
[_QWERTY] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
CTRL LOWER SPACE ENTER RAISE BSPCE
*/
[_COLEMAK] = LAYOUT_saegewerk(
[_COLEMAK] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
GUI_A, ALT_R, CTL_S, SHT_T, KC_D, KC_H, SHT_N, CTL_E, ALT_I, GUI_O,
@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
ADJUST 0
*/
[_LOWER] = LAYOUT_saegewerk(
[_LOWER] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS,
@ -182,7 +182,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
ADJUST
*/
[_RAISE] = LAYOUT_saegewerk(
[_RAISE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U),RALT(KC_3),KC_BSLS,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@ -205,7 +205,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_ADJUST] = LAYOUT_saegewerk(
[_ADJUST] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
AU_TOGG, HF_TOGG, RGB_HUI, RGB_MOD, QK_BOOT, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F11,
DB_TOGG, QWERTY, RGB_SAI, XXXXXXX, QK_MAKE, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F12,
@ -229,7 +229,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_polydactyl(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -252,7 +252,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_konrad(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -275,7 +275,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_yubitsume(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -299,7 +299,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TEMPLATE] = LAYOUT_saegewerk(
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View file

@ -4,9 +4,10 @@ DYNAMIC_MACRO_ENABLE = no
COMBO_ENABLE = no
KEY_OVERRIDE_ENABLE = no
#HAPTIC FEEBACK
AUDIO_ENABLE = yes
MUSIC_ENABLE = yes
HAPTIC_ENABLE = yes
RGB_MATRIX_ENABLE = yes
MUSIC_ENABLE = yes
# Choose your layout
KLOR_LAYOUT = saegewerk

View file

@ -17,79 +17,80 @@
#include "klor.h"
#define LAYOUT_polydactyl( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, R25, \
L31, L32, L33, L34, R31, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, L34, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ R15, R14, R13, R12, R11, R10 }, \
{ R25, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, R31, R30 }, \
}
#define LAYOUT_konrad( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, R25, \
L31, L32, L33, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, ___, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ R15, R14, R13, R12, R11, R10 }, \
{ R25, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, ___, R30 }, \
}
#define LAYOUT_yubitsume( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, \
L31, L32, L33, L34, R31, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ ___, L11, L12, L13, L14, L15 }, \
{ ___, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, L34, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ ___, R14, R13, R12, R11, R10 }, \
{ ___, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, R31, R30 }, \
}
#define LAYOUT_saegewerk( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, \
L31, L32, L33, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ ___, L11, L12, L13, L14, L15 }, \
{ ___, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, ___, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ ___, R14, R13, R12, R11, R10 }, \
{ ___, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, ___, R30 }, \
}
#define LAYOUT LAYOUT_polydactyl
#ifdef KLOR_POLYDACTL
# define LAYOUT LAYOUT_polydactyl
# define LAYOUT_polydactyl( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, R25, \
L31, L32, L33, L34, R31, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, L34, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ R15, R14, R13, R12, R11, R10 }, \
{ R25, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, R31, R30 }, \
}
#elif defined(KLOR_KONRAD)
# define LAYOUT LAYOUT_konrad
# define LAYOUT_konrad( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, R25, \
L31, L32, L33, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, ___, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ R15, R14, R13, R12, R11, R10 }, \
{ R25, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, ___, R30 }, \
}
#elif defined(KLOR_YUBITSUME)
# define LAYOUT LAYOUT_yubitsume
# define LAYOUT_yubitsume( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, \
L31, L32, L33, L34, R31, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ ___, L11, L12, L13, L14, L15 }, \
{ ___, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, L34, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ ___, R14, R13, R12, R11, R10 }, \
{ ___, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, R31, R30 }, \
}
#elif defined(KLOR_SAEGEWERK)
# define LAYOUT LAYOUT_saegewerk
# define LAYOUT_saegewerk( \
L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
L21, L22, L23, L24, L25, L35, R30, R20, R21, R22, R23, R24, \
L31, L32, L33, R32, R33, R34 \
) \
{ \
{ ___, L01, L02, L03, L04, L05 }, \
{ ___, L11, L12, L13, L14, L15 }, \
{ ___, L21, L22, L23, L24, L25 }, \
{ ___, L31, L32, L33, ___, L35 }, \
{ ___, R04, R03, R02, R01, R00 }, \
{ ___, R14, R13, R12, R11, R10 }, \
{ ___, R24, R23, R22, R21, R20 }, \
{ ___, R34, R33, R32, ___, R30 }, \
}
#endif //KLOR_POLYDACTL
@ -170,132 +171,135 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
// └────────────────┘ └────────────────┘
// POLYDACTYL / YUBITSUME
// use this matrix if you use the polydactyl or yubitsume layout ────────────────────────────────────┐
/*
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 18, 13, 12, 6, 5 },//00
{ 19, 17, 14, 11, 7, 4 },//01
{ 20, 16, 15, 10, 8, 3 },//02
{ NO_LED, 9, 2, 1, 0, NO_LED },//03
{ NO_LED, 37, 34, 33, 27, 26 },//00
{ 40, 38, 35, 32, 28, 25 },//01
{ 41, 39, 36, 31, 29, 24 },//02
{ NO_LED, 30, 23, 22, 21, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 102, 63 }, { 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 }, { 0, 28 }, { 3, 41 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 122, 63 }, { 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }, { 224, 28 }, { 221, 41 }
}, {
//LEFT
1, 1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1,
//RIGHT
1, 1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1
} };
# if defined (KLOR_POLYDACTL) || defined(KLOR_YUBITSUME)
// POLYDACTYL / YUBITSUME
// use this matrix if you use the polydactyl or yubitsume layout ────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 18, 13, 12, 6, 5 },//00
{ 19, 17, 14, 11, 7, 4 },//01
{ 20, 16, 15, 10, 8, 3 },//02
{ NO_LED, 9, 2, 1, 0, NO_LED },//03
{ NO_LED, 37, 34, 33, 27, 26 },//00
{ 40, 38, 35, 32, 28, 25 },//01
{ 41, 39, 36, 31, 29, 24 },//02
{ NO_LED, 30, 23, 22, 21, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 102, 63 }, { 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 }, { 0, 28 }, { 3, 41 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 122, 63 }, { 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }, { 224, 28 }, { 221, 41 }
}, {
//LEFT
1, 1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1,
//RIGHT
1, 1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1
} };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
/*
// KONRAD
// use this matrix if you use the konrad layout ───────────────────────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 17, 12, 11, 5, 4 },//00
{ 18, 16, 13, 10, 6, 3 },//01
{ 19, 15, 14, 9, 7, 2 },//02
{ NO_LED, 8, 1, 0, NO_LED, NO_LED },//03
{ NO_LED, 37, 32, 31, 25, 24 },//00
{ 38, 36, 33, 30, 26, 23 },//01
{ 39, 35, 34, 29, 27, 22 },//02
{ NO_LED, 28, 21, 20, NO_LED, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 }, { 0, 28 }, { 3, 41 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }, { 224, 28 }, { 221, 41 }
}, {
//LEFT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1,
//RIGHT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1
} };
# elif defined(KLOR_KONRAD)
// KONRAD
// use this matrix if you use the konrad layout ───────────────────────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 17, 12, 11, 5, 4 },//00
{ 18, 16, 13, 10, 6, 3 },//01
{ 19, 15, 14, 9, 7, 2 },//02
{ NO_LED, 8, 1, 0, NO_LED, NO_LED },//03
{ NO_LED, 37, 32, 31, 25, 24 },//00
{ 38, 36, 33, 30, 26, 23 },//01
{ 39, 35, 34, 29, 27, 22 },//02
{ NO_LED, 28, 21, 20, NO_LED, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 }, { 0, 28 }, { 3, 41 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }, { 224, 28 }, { 221, 41 }
}, {
//LEFT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1,
//RIGHT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1
} };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
/*
// SAEGEWERK
// use this matrix if you use the saegewerk layout ────────────────────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 17, 12, 11, 5, 4 },//00
{ NO_LED, 16, 13, 10, 6, 3 },//01
{ NO_LED, 15, 14, 9, 7, 2 },//02
{ NO_LED, 8, 1, 0, NO_LED, NO_LED },//03
{ NO_LED, 35, 30, 29, 23, 22 },//00
{ NO_LED, 34, 31, 28, 24, 21 },//01
{ NO_LED, 33, 32, 27, 25, 20 },//02
{ NO_LED, 26, 19, 18, NO_LED, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }
}, {
//LEFT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4,
//RIGHT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4
} };
# elif defined(KLOR_SAEGEWERK)
// SAEGEWERK
// use this matrix if you use the saegewerk layout ────────────────────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 17, 12, 11, 5, 4 },//00
{ NO_LED, 16, 13, 10, 6, 3 },//01
{ NO_LED, 15, 14, 9, 7, 2 },//02
{ NO_LED, 8, 1, 0, NO_LED, NO_LED },//03
{ NO_LED, 35, 30, 29, 23, 22 },//00
{ NO_LED, 34, 31, 28, 24, 21 },//01
{ NO_LED, 33, 32, 27, 25, 20 },//02
{ NO_LED, 26, 19, 18, NO_LED, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }
}, {
//LEFT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4,
//RIGHT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4
} };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
# endif //KLOR_POLYDACTL || KLOR_YUBITSUME
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
@ -306,6 +310,7 @@ void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
#endif //RGB_MATRIX_ENABLE

View file

@ -0,0 +1,7 @@
VALID_KLOR_LAYOUTS := polydactyl konrad yubitsume saegewerk
ifeq ($(filter $(KLOR_LAYOUT),$(VALID_KLOR_LAYOUTS)),)
$(call CATASTROPHIC_ERROR,Invalid KLOR_LAYOUT,KLOR_LAYOUT="$(KLOR_LAYOUT)" is not a valid Haptic driver)
else
OPT_DEFS += -DKLOR_$(strip $(shell echo $(KLOR_LAYOUT) | tr '[:lower:]' '[:upper:]'))
endif

View file

@ -17,10 +17,23 @@
KLOR is 42 keys column-staggered split keyboard made by @geigeigeist. It supports a per key RGB matrix, encoders, OLED displays, haptic feedback, audio, a Pixart Paw3204 trackball and four different layouts, through brake off parts.
It's schematics are based on the Sofle, while the layout is based on the Yacc46.
t4croun: this is my attempt at modernizing @geigeigeist's keymap. The repo has not been updated in a few years and QMK has introduced breaking changes. His repo can be found [here](https://github.com/GEIGEIGEIST/qmk-config-klor). Note: Focusing on defining my saegewerk configuration as that is what I have
You can use this command to compile the firmware
`qmk compile -kb klor -km default`
and this command if you want to compile the firmware for a RP2040 based MCU
`qmk compile -kb klor/2040 -km default`
`qmk compile -kb klor/2040 -km default`
## t4corun modernization
this is my attempt at modernizing @geigeigeist's repo. It has not been updated in a few years and firmware cannot be built as-is as QMK has introduced breaking changes. @geigeigeist's repo can be found [here](https://github.com/GEIGEIGEIST/qmk-config-klor). Should work for all KLOR variations, but I tested against Saegwerk as that is the one I have
Features
- Can choose layout based on keymap rules.mk configuration. Before keyboard configuration would need to be changed
- Converted as much as possible to data driven configuration: `info.json`
What I did not test
- RGBLight
- Other variations (e.g.Polydactyl)
- Swap Hands

View file

@ -1,28 +1,4 @@
# A number of these rules were moved into info.json
# Build Options
# change yes to no to disable
#
#SWAP_HANDS_ENABLE = yes
#OLED_ENABLE = yes
# Features are now defined in info.json when possible
# HAPTIC FEEDBACK
HAPTIC_DRIVER = drv2605l
# PER KEY RGB
#BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
#RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
#RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
# SPACE SAVING
# EXTRAKEY_ENABLE = no
# AUDIO_ENABLE = no
# MUSIC_ENABLE = no
# LTO_ENABLE = no
# CONSOLE_ENABLE = no
# COMMAND_ENABLE = no
# MOUSEKEY_ENABLE = no
# SPACE_CADET_ENABLE = no
# GRAVE_ESC_ENABLE = no
# MAGIC_ENABLE = no
HAPTIC_DRIVER = drv2605l