commit
c14abd8c14
@ -0,0 +1,241 @@ |
|||||||
|
/* Copyright 2021 Gigahawk
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
#include "ansi.h" |
||||||
|
|
||||||
|
#ifdef RGB_MATRIX_ENABLE |
||||||
|
led_config_t __flash g_led_config = {{ |
||||||
|
{ 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 }, |
||||||
|
{ 8, 2, 9, 0, 10, 75, 1, 7 }, |
||||||
|
{ 14, 3, 15, NO_LED, 16, 86, 6, 13 }, |
||||||
|
{ 20, 18, 21, 23, 22, 94, 12, 19 }, |
||||||
|
{ 25, 30, 26, 31, 27, 32, 29, 24 }, |
||||||
|
{ 41, 36, 42, 37, 43, 38, 35, 40 }, |
||||||
|
{ 46, 89, 47, 34, 48, 72, 78, 45 }, |
||||||
|
{ 52, 39, 53, 97, 54, 82, 44, 51 }, |
||||||
|
{ 58, 63, 59, 64, NO_LED, 60, 62, 57 }, |
||||||
|
{ 11, 90, 55, 17, 33, 49, NO_LED, 69 }, |
||||||
|
{ NO_LED, 85, 93, 61, 96, 66, 50, 56 } |
||||||
|
}, { |
||||||
|
{0, 0}, // 0, ESC, k13
|
||||||
|
{0, 15}, // 1, ~, k16
|
||||||
|
{4, 26}, // 2, Tab, k11
|
||||||
|
{5, 38}, // 3, Caps, k21
|
||||||
|
{9, 49}, // 4, Sh_L, k00
|
||||||
|
{2, 61}, // 5, Ct_L, k06
|
||||||
|
{18, 0}, // 6, F1, k26
|
||||||
|
{14, 15}, // 7, 1, k17
|
||||||
|
{22, 26}, // 8, Q, k10
|
||||||
|
{25, 38}, // 9, A, k12
|
||||||
|
{33, 49}, // 10, Z, k14
|
||||||
|
{20, 61}, // 11, Win_L, k90
|
||||||
|
{33, 0}, // 12, F2, k36
|
||||||
|
{29, 15}, // 13, 2, k27
|
||||||
|
{36, 26}, // 14, W, k20
|
||||||
|
{40, 38}, // 15, S, k22
|
||||||
|
{47, 49}, // 16, X, k24
|
||||||
|
{38, 61}, // 17, Alt_L, k93
|
||||||
|
{47, 0}, // 18, F3, k31
|
||||||
|
{43, 15}, // 19, 3, k37
|
||||||
|
{51, 26}, // 20, E, k30
|
||||||
|
{54, 38}, // 21, D, k32
|
||||||
|
{61, 49}, // 22, C, k34
|
||||||
|
{61, 0}, // 23, F4, k33
|
||||||
|
{58, 15}, // 24, 4, k47
|
||||||
|
{65, 26}, // 25, R, k40
|
||||||
|
{69, 38}, // 26, F, k42
|
||||||
|
{76, 49}, // 27, V, k44
|
||||||
|
{79, 0}, // 28, F5, k07
|
||||||
|
{72, 15}, // 29, 5, k46
|
||||||
|
{79, 26}, // 30, T, k41
|
||||||
|
{83, 38}, // 31, G, k43
|
||||||
|
{90, 49}, // 32, B, k45
|
||||||
|
{92, 61}, // 33, SPACE, k94
|
||||||
|
{94, 0}, // 34, F6, k63
|
||||||
|
{87, 15}, // 35, 6, k56
|
||||||
|
{94, 26}, // 36, Y, k51
|
||||||
|
{98, 38}, // 37, H, k53
|
||||||
|
{105, 49}, // 38, N, k55
|
||||||
|
{108, 0}, // 39, F7, k71
|
||||||
|
{101, 15}, // 40, 7, k57
|
||||||
|
{108, 26}, // 41, U, k50
|
||||||
|
{112, 38}, // 42, J, k52
|
||||||
|
{119, 49}, // 43, M, k54
|
||||||
|
{123, 0}, // 44, F8, k76
|
||||||
|
{116, 15}, // 45, 8, k67
|
||||||
|
{123, 26}, // 46, I, k60
|
||||||
|
{126, 38}, // 47, K, k62
|
||||||
|
{134, 49}, // 48, ,, k64
|
||||||
|
{145, 61}, // 49, Alt_R, k95
|
||||||
|
{141, 0}, // 50, F9, ka6
|
||||||
|
{130, 15}, // 51, 9, k77
|
||||||
|
{137, 26}, // 52, O, k70
|
||||||
|
{141, 38}, // 53, L, k72
|
||||||
|
{148, 49}, // 54, ., k74
|
||||||
|
{159, 61}, // 55, FN, k92
|
||||||
|
{155, 0}, // 56, F10, ka7
|
||||||
|
{145, 15}, // 57, 0, k87
|
||||||
|
{152, 26}, // 58, P, k80
|
||||||
|
{155, 38}, // 59, ;, k82
|
||||||
|
{163, 49}, // 60, ?, k85
|
||||||
|
{170, 0}, // 61, F11, ka3
|
||||||
|
{159, 15}, // 62, -, k86
|
||||||
|
{166, 26}, // 63, [, k81
|
||||||
|
{170, 38}, // 64, ", k83
|
||||||
|
{173, 61}, // 65, Ct_R, k04
|
||||||
|
{184, 0}, // 66, F12, ka5
|
||||||
|
{0, 8}, // 67, LED, l01
|
||||||
|
{224, 8}, // 68, LED, l11
|
||||||
|
{202, 0}, // 69, Prt, k97
|
||||||
|
{0, 15}, // 70, LED, l02
|
||||||
|
{224, 15}, // 71, LED, l12
|
||||||
|
{224, 15}, // 72, Del, k65
|
||||||
|
{0, 21}, // 73, LED, l03
|
||||||
|
{224, 21}, // 74, LED, l13
|
||||||
|
{224, 26}, // 75, PgUp, k15
|
||||||
|
{0, 28}, // 76, LED, l04
|
||||||
|
{224, 28}, // 77, LED, l14
|
||||||
|
{173, 15}, // 78, =, k66
|
||||||
|
{220, 64}, // 79, Right, k05
|
||||||
|
{0, 35}, // 80, LED, l05
|
||||||
|
{224, 35}, // 81, LED, l15
|
||||||
|
{224, 49}, // 82, End, k75
|
||||||
|
{0, 42}, // 83, LED, l06
|
||||||
|
{224, 42}, // 84, LED, l16
|
||||||
|
{195, 15}, // 85, BSpc, ka1
|
||||||
|
{224, 38}, // 86, PgDn, k25
|
||||||
|
{0, 48}, // 87, LED, l07
|
||||||
|
{224, 48}, // 88, LED, l17
|
||||||
|
{181, 26}, // 89, ], k61
|
||||||
|
{182, 49}, // 90, Sh_R, k91
|
||||||
|
{0, 55}, // 91, LED, l08
|
||||||
|
{224, 55}, // 92, LED, l18
|
||||||
|
{199, 26}, // 93, \, ka2
|
||||||
|
{206, 52}, // 94, Up, k35
|
||||||
|
{191, 64}, // 95, Left, k03
|
||||||
|
{193, 38}, // 96, Enter, ka4
|
||||||
|
{206, 64} // 97, Down, k73
|
||||||
|
}, { |
||||||
|
4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, |
||||||
|
4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 |
||||||
|
}}; |
||||||
|
|
||||||
|
const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { |
||||||
|
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
|
||||||
|
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
|
||||||
|
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
|
||||||
|
{0, CS10_SW1, CS11_SW1, CS12_SW1}, // 3, Caps, k21
|
||||||
|
{0, CS13_SW1, CS14_SW1, CS15_SW1}, // 4, Sh_L, k00
|
||||||
|
{0, CS16_SW1, CS17_SW1, CS18_SW1}, // 5, Ct_L, k06
|
||||||
|
{0, CS1_SW2, CS2_SW2, CS3_SW2}, // 6, F1, k26
|
||||||
|
{0, CS4_SW2, CS5_SW2, CS6_SW2}, // 7, 1, k17
|
||||||
|
{0, CS7_SW2, CS8_SW2, CS9_SW2}, // 8, Q, k10
|
||||||
|
{0, CS10_SW2, CS11_SW2, CS12_SW2}, // 9, A, k12
|
||||||
|
{0, CS13_SW2, CS14_SW2, CS15_SW2}, // 10, Z, k14
|
||||||
|
{0, CS16_SW2, CS17_SW2, CS18_SW2}, // 11, Win_L, k90
|
||||||
|
{0, CS1_SW3, CS2_SW3, CS3_SW3}, // 12, F2, k36
|
||||||
|
{0, CS4_SW3, CS5_SW3, CS6_SW3}, // 13, 2, k27
|
||||||
|
{0, CS7_SW3, CS8_SW3, CS9_SW3}, // 14, W, k20
|
||||||
|
{0, CS10_SW3, CS11_SW3, CS12_SW3}, // 15, S, k22
|
||||||
|
{0, CS13_SW3, CS14_SW3, CS15_SW3}, // 16, X, k24
|
||||||
|
{0, CS16_SW3, CS17_SW3, CS18_SW3}, // 17, Alt_L, k93
|
||||||
|
{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 18, F3, k31
|
||||||
|
{0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, 3, k37
|
||||||
|
{0, CS7_SW4, CS8_SW4, CS9_SW4}, // 20, E, k30
|
||||||
|
{0, CS10_SW4, CS11_SW4, CS12_SW4}, // 21, D, k32
|
||||||
|
{0, CS13_SW4, CS14_SW4, CS15_SW4}, // 22, C, k34
|
||||||
|
{0, CS1_SW5, CS2_SW5, CS3_SW5}, // 23, F4, k33
|
||||||
|
{0, CS4_SW5, CS5_SW5, CS6_SW5}, // 24, 4, k47
|
||||||
|
{0, CS7_SW5, CS8_SW5, CS9_SW5}, // 25, R, k40
|
||||||
|
{0, CS10_SW5, CS11_SW5, CS12_SW5}, // 26, F, k42
|
||||||
|
{0, CS13_SW5, CS14_SW5, CS15_SW5}, // 27, V, k44
|
||||||
|
{0, CS1_SW6, CS2_SW6, CS3_SW6}, // 28, F5, k07
|
||||||
|
{0, CS4_SW6, CS5_SW6, CS6_SW6}, // 29, 5, k46
|
||||||
|
{0, CS7_SW6, CS8_SW6, CS9_SW6}, // 30, T, k41
|
||||||
|
{0, CS10_SW6, CS11_SW6, CS12_SW6}, // 31, G, k43
|
||||||
|
{0, CS13_SW6, CS14_SW6, CS15_SW6}, // 32, B, k45
|
||||||
|
{0, CS16_SW6, CS17_SW6, CS18_SW6}, // 33, SPACE, k94
|
||||||
|
{0, CS1_SW7, CS2_SW7, CS3_SW7}, // 34, F6, k63
|
||||||
|
{0, CS4_SW7, CS5_SW7, CS6_SW7}, // 35, 6, k56
|
||||||
|
{0, CS7_SW7, CS8_SW7, CS9_SW7}, // 36, Y, k51
|
||||||
|
{0, CS10_SW7, CS11_SW7, CS12_SW7}, // 37, H, k53
|
||||||
|
{0, CS13_SW7, CS14_SW7, CS15_SW7}, // 38, N, k55
|
||||||
|
{0, CS1_SW8, CS2_SW8, CS3_SW8}, // 39, F7, k71
|
||||||
|
{0, CS4_SW8, CS5_SW8, CS6_SW8}, // 40, 7, k57
|
||||||
|
{0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U, k50
|
||||||
|
{0, CS10_SW8, CS11_SW8, CS12_SW8}, // 42, J, k52
|
||||||
|
{0, CS13_SW8, CS14_SW8, CS15_SW8}, // 43, M, k54
|
||||||
|
{0, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, F8, k76
|
||||||
|
{0, CS4_SW9, CS5_SW9, CS6_SW9}, // 45, 8, k67
|
||||||
|
{0, CS7_SW9, CS8_SW9, CS9_SW9}, // 46, I, k60
|
||||||
|
{0, CS10_SW9, CS11_SW9, CS12_SW9}, // 47, K, k62
|
||||||
|
{0, CS13_SW9, CS14_SW9, CS15_SW9}, // 48, ,, k64
|
||||||
|
{0, CS16_SW9, CS17_SW9, CS18_SW9}, // 49, Alt_R, k95
|
||||||
|
{0, CS1_SW10, CS2_SW10, CS3_SW10}, // 50, F9, ka6
|
||||||
|
{0, CS4_SW10, CS5_SW10, CS6_SW10}, // 51, 9, k77
|
||||||
|
{0, CS7_SW10, CS8_SW10, CS9_SW10}, // 52, O, k70
|
||||||
|
{0, CS10_SW10, CS11_SW10, CS12_SW10}, // 53, L, k72
|
||||||
|
{0, CS13_SW10, CS14_SW10, CS15_SW10}, // 54, ., k74
|
||||||
|
{0, CS16_SW10, CS17_SW10, CS18_SW10}, // 55, FN, k92
|
||||||
|
{0, CS1_SW11, CS2_SW11, CS3_SW11}, // 56, F10, ka7
|
||||||
|
{0, CS4_SW11, CS5_SW11, CS6_SW11}, // 57, 0, k87
|
||||||
|
{0, CS7_SW11, CS8_SW11, CS9_SW11}, // 58, P, k80
|
||||||
|
{0, CS10_SW11, CS11_SW11, CS12_SW11}, // 59, ;, k82
|
||||||
|
{0, CS13_SW11, CS14_SW11, CS15_SW11}, // 60, ?, k85
|
||||||
|
{0, CS1_SW12, CS2_SW12, CS3_SW12}, // 61, F11, ka3
|
||||||
|
{0, CS4_SW12, CS5_SW12, CS6_SW12}, // 62, -, k86
|
||||||
|
{0, CS7_SW12, CS8_SW12, CS9_SW12}, // 63, [, k81
|
||||||
|
{0, CS10_SW12, CS11_SW12, CS12_SW12}, // 64, ", k83
|
||||||
|
{0, CS16_SW12, CS17_SW12, CS18_SW12}, // 65, Ct_R, k04
|
||||||
|
|
||||||
|
{1, CS1_SW1, CS2_SW1, CS3_SW1}, // 66, F12, ka5
|
||||||
|
{1, CS13_SW1, CS14_SW1, CS15_SW1}, // 67, LED, l01
|
||||||
|
{1, CS16_SW1, CS17_SW1, CS18_SW1}, // 68, LED, l11
|
||||||
|
{1, CS4_SW2, CS5_SW2, CS6_SW2}, // 69, Prt, k97
|
||||||
|
{1, CS13_SW2, CS14_SW2, CS15_SW2}, // 70, LED, l02
|
||||||
|
{1, CS16_SW2, CS17_SW2, CS18_SW2}, // 71, LED, l12
|
||||||
|
{1, CS4_SW3, CS5_SW3, CS6_SW3}, // 72, Del, k65
|
||||||
|
{1, CS13_SW3, CS14_SW3, CS15_SW3}, // 73, LED, l03
|
||||||
|
{1, CS16_SW3, CS17_SW3, CS18_SW3}, // 74, LED, l13
|
||||||
|
{1, CS4_SW4, CS5_SW4, CS6_SW4}, // 75, PgUp, k15
|
||||||
|
{1, CS13_SW4, CS14_SW4, CS15_SW4}, // 76, LED, l04
|
||||||
|
{1, CS16_SW4, CS17_SW4, CS18_SW4}, // 77, LED, l14
|
||||||
|
{1, CS1_SW5, CS2_SW5, CS3_SW5}, // 78, =, k66
|
||||||
|
{1, CS10_SW5, CS11_SW5, CS12_SW5}, // 79, Right, k05
|
||||||
|
{1, CS13_SW5, CS14_SW5, CS15_SW5}, // 80, LED, l05
|
||||||
|
{1, CS16_SW5, CS17_SW5, CS18_SW5}, // 81, LED, l15
|
||||||
|
{1, CS4_SW6, CS5_SW6, CS6_SW6}, // 82, End, k75
|
||||||
|
{1, CS13_SW6, CS14_SW6, CS15_SW6}, // 83, LED, l06
|
||||||
|
{1, CS16_SW6, CS17_SW6, CS18_SW6}, // 84, LED, l16
|
||||||
|
{1, CS1_SW7, CS2_SW7, CS3_SW7}, // 85, BSpc, ka1
|
||||||
|
{1, CS4_SW7, CS5_SW7, CS6_SW7}, // 86, PgDn, k25
|
||||||
|
{1, CS13_SW7, CS14_SW7, CS15_SW7}, // 87, LED, l07
|
||||||
|
{1, CS16_SW7, CS17_SW7, CS18_SW7}, // 88, LED, l17
|
||||||
|
{1, CS1_SW8, CS2_SW8, CS3_SW8}, // 89, ], k61
|
||||||
|
{1, CS4_SW8, CS5_SW8, CS6_SW8}, // 90, Sh_R, k91
|
||||||
|
{1, CS13_SW8, CS14_SW8, CS15_SW8}, // 91, LED, l08
|
||||||
|
{1, CS16_SW8, CS17_SW8, CS18_SW8}, // 92, LED, l18
|
||||||
|
{1, CS1_SW9, CS2_SW9, CS3_SW9}, // 93, \, ka2
|
||||||
|
{1, CS4_SW9, CS5_SW9, CS6_SW9}, // 94, Up, k35
|
||||||
|
{1, CS4_SW10, CS5_SW10, CS6_SW10}, // 95, Left, k03
|
||||||
|
{1, CS1_SW11, CS2_SW11, CS3_SW11}, // 96, Enter, ka4
|
||||||
|
{1, CS4_SW11, CS5_SW11, CS6_SW11}, // 97, Down, k73
|
||||||
|
}; |
||||||
|
// clang-format on
|
||||||
|
#endif |
@ -0,0 +1,63 @@ |
|||||||
|
/* Copyright 2021 Matt Gauf
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
/* Defaults */ |
||||||
|
#define RAW_USAGE_PAGE 0x200 |
||||||
|
#define RAW_USAGE_ID 0x40 |
||||||
|
|
||||||
|
/* Board Features */ |
||||||
|
#define DYNAMIC_MACRO_SIZE 512 |
||||||
|
|
||||||
|
/* RGB Matrix Features */ |
||||||
|
#define RGB_MATRIX_KEYPRESSES |
||||||
|
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR |
||||||
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED true |
||||||
|
|
||||||
|
/* RGB Matrix Framebuffer Config */ |
||||||
|
// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||||
|
// #define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25
|
||||||
|
|
||||||
|
/* RGB Matrix Disabled Effects */ |
||||||
|
#define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
|
||||||
|
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
|
||||||
|
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
|
||||||
|
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
|
||||||
|
#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
|
||||||
|
#define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
|
||||||
|
#define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
|
||||||
|
#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
|
||||||
|
#define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
|
||||||
|
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
|
||||||
|
#define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left
|
||||||
|
#define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right
|
||||||
|
|
||||||
|
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) |
||||||
|
#define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
|
||||||
|
#endif |
||||||
|
|
||||||
|
#if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) |
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
|
||||||
|
#define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
|
||||||
|
#define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
|
||||||
|
#endif |
||||||
|
|
||||||
|
#define DISABLE_RGB_MATRIX_EFFECT_MAX |
||||||
|
// clang-format on
|
@ -0,0 +1,25 @@ |
|||||||
|
/* Copyright 2021 Matt Gauf
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include "rgb_matrix.h" |
||||||
|
|
||||||
|
void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags) { |
||||||
|
for (uint8_t ii = 0; ii < DRIVER_LED_TOTAL; ii++) { |
||||||
|
if (g_led_config.flags[ii] & flags) { |
||||||
|
rgb_matrix_set_color(ii, red, green, blue); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,220 @@ |
|||||||
|
/* Copyright 2021 Matt Gauf
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
#include "keymap_helpers.h" |
||||||
|
|
||||||
|
|
||||||
|
enum custom_codes { |
||||||
|
SET_MP = RGB_M_P, |
||||||
|
SET_MB = RGB_M_B, |
||||||
|
SET_MR = RGB_M_R, |
||||||
|
|
||||||
|
MG_F17 = SAFE_RANGE, |
||||||
|
MG_F18, |
||||||
|
MG_F19 |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
enum layer_names { |
||||||
|
_DEFAULT = 0, |
||||||
|
_EFFECTS, |
||||||
|
_UTILITY, |
||||||
|
_DFUMODE |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
// static uint8_t rgb_pin_fn_column[] = {PIN_DEL,PIN_PGUP,PIN_PGDN,PIN_END};
|
||||||
|
// static uint8_t rgb_pin_left_underglow[] = {PIN_LED_L01,PIN_LED_L02,PIN_LED_L03,PIN_LED_L04,PIN_LED_L05,PIN_LED_L06,PIN_LED_L07,PIN_LED_L08};
|
||||||
|
// static uint8_t rgb_pin_right_underglow[] = {PIN_LED_L11,PIN_LED_L12,PIN_LED_L13,PIN_LED_L14,PIN_LED_L15,PIN_LED_L16,PIN_LED_L17,PIN_LED_L18};
|
||||||
|
|
||||||
|
|
||||||
|
#define MODS_SHIFT ((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) |
||||||
|
#define MODS_CTRL ((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) |
||||||
|
#define MODS_ALT ((get_mods() | get_oneshot_mods()) & MOD_MASK_ALT) |
||||||
|
#define MODS_GUI ((get_mods() | get_oneshot_mods()) & MOD_MASK_GUI) |
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
[_DEFAULT] = LAYOUT(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, MG_F17, KC_MUTE, |
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, |
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, |
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, |
||||||
|
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_UP, KC_END, |
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_EFFECTS), KC_LEFT, KC_DOWN, KC_RGHT), |
||||||
|
|
||||||
|
[_EFFECTS] = LAYOUT(_______, KC_F13, KC_F14, KC_F15, KC_F16, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, MG_F18, _______, |
||||||
|
_______, SET_MP, SET_MB, SET_MR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_SAI, RGB_SPD, |
||||||
|
_______, _______, _______, _______, TG(_UTILITY), MO(_DFUMODE), _______, RGB_HUD, RGB_SAD, RGB_HUI), |
||||||
|
|
||||||
|
[_UTILITY] = LAYOUT(_______, _______, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), |
||||||
|
|
||||||
|
[_DFUMODE] = LAYOUT(RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MG_F19, DEBUG, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), |
||||||
|
}; |
||||||
|
// Runs constantly in the background, in a loop.
|
||||||
|
void rgb_matrix_indicators_user(void) { |
||||||
|
if (rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)) { |
||||||
|
|
||||||
|
if (IS_LAYER_ON(_UTILITY)) { |
||||||
|
rgb_matrix_set_color(PIN_F9, LEDGREE); |
||||||
|
rgb_matrix_set_color(PIN_F10, LEDGREE); |
||||||
|
rgb_matrix_set_color(PIN_F11, LED_RED); |
||||||
|
rgb_matrix_set_color(PIN_F12, LED_RED); |
||||||
|
rgb_matrix_set_color(PIN_PRINT, LEDTEAL); |
||||||
|
} |
||||||
|
|
||||||
|
switch (get_highest_layer(layer_state)) { |
||||||
|
case _DFUMODE: |
||||||
|
rgb_matrix_set_color_all(LED_OFF); |
||||||
|
rgb_matrix_set_color(PIN_ESC, LED_RED); |
||||||
|
rgb_matrix_set_color(PIN_PRINT, LEDORAN); |
||||||
|
return; |
||||||
|
case _EFFECTS: |
||||||
|
rgb_matrix_set_color(PIN_PRINT, LEDGREE); |
||||||
|
break; |
||||||
|
default: |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
if (host_keyboard_led_state().caps_lock) { |
||||||
|
rgb_matrix_set_color(PIN_CAPS, RGB_WHITE); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Called on start
|
||||||
|
void dynamic_macro_record_start_user(void) { |
||||||
|
dprint("-- Recording Started\n"); |
||||||
|
layer_on(_UTILITY); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Called on end
|
||||||
|
void dynamic_macro_record_end_user(int8_t direction) { |
||||||
|
dprint("-- Recording Ended\n"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Called on playback
|
||||||
|
void dynamic_macro_play_user(int8_t direction) { |
||||||
|
dprint("-- Recording Playing\n"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Runs on encoder event
|
||||||
|
bool encoder_update_user(uint8_t index, bool clockwise) { |
||||||
|
uint8_t curr_mod = get_mods(); |
||||||
|
|
||||||
|
if (IS_LAYER_ON(_EFFECTS)) { |
||||||
|
if (clockwise) { |
||||||
|
rgb_matrix_increase_val(); |
||||||
|
} else { |
||||||
|
rgb_matrix_decrease_val(); |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (MODS_GUI) { |
||||||
|
if (MODS_GUI && MODS_SHIFT) { |
||||||
|
clear_mods(); |
||||||
|
if (clockwise) { |
||||||
|
tap_code16(LSG(KC_Z)); |
||||||
|
} else { |
||||||
|
tap_code16(LGUI(KC_Z)); |
||||||
|
} |
||||||
|
set_mods(curr_mod); |
||||||
|
} else if (MODS_GUI && MODS_ALT) { |
||||||
|
clear_mods(); |
||||||
|
if (clockwise) { |
||||||
|
tap_code(KC_RIGHT); |
||||||
|
} else { |
||||||
|
tap_code(KC_LEFT); |
||||||
|
} |
||||||
|
set_mods(curr_mod); |
||||||
|
} else { |
||||||
|
if (clockwise) { |
||||||
|
tap_code16(LGUI(KC_TAB)); |
||||||
|
} else { |
||||||
|
tap_code16(LSG(KC_TAB)); |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (clockwise) { |
||||||
|
tap_code(KC_VOLU); |
||||||
|
} else { |
||||||
|
tap_code(KC_VOLD); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Runs on key event
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
||||||
|
switch (keycode) { |
||||||
|
case MG_F17: |
||||||
|
if (record->event.pressed) { |
||||||
|
tap_code16(HYPR(KC_F17)); |
||||||
|
} |
||||||
|
return false; |
||||||
|
case MG_F18: |
||||||
|
if (record->event.pressed) { |
||||||
|
tap_code16(HYPR(KC_F18)); |
||||||
|
} |
||||||
|
return false; |
||||||
|
case MG_F19: |
||||||
|
if (record->event.pressed) { |
||||||
|
tap_code16(HYPR(KC_F19)); |
||||||
|
} |
||||||
|
return false; |
||||||
|
case RGB_TOG: |
||||||
|
if (record->event.pressed) { |
||||||
|
switch (rgb_matrix_get_flags()) { |
||||||
|
case LED_FLAG_ALL: |
||||||
|
rgb_matrix_set_flags(LED_FLAG_NONE); |
||||||
|
break; |
||||||
|
case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: |
||||||
|
rgb_matrix_set_flags(LED_FLAG_ALL); |
||||||
|
break; |
||||||
|
case LED_FLAG_UNDERGLOW: |
||||||
|
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); |
||||||
|
break; |
||||||
|
default: |
||||||
|
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
return false; |
||||||
|
default: |
||||||
|
return true; // Process all other keycodes normally
|
||||||
|
} |
||||||
|
} |
||||||
|
// clang-format on
|
@ -0,0 +1,165 @@ |
|||||||
|
/* Copyright 2021 Matt Gauf
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
#include <inttypes.h> |
||||||
|
#include "rgb_matrix_types.h" |
||||||
|
|
||||||
|
/* Color Codes */ |
||||||
|
#define LEDWHIT 0xff, 0xff, 0xff |
||||||
|
#define LED_RED 0xff, 0x00, 0x00 |
||||||
|
#define LEDORAN 0xff, 0x29, 0x00 |
||||||
|
#define LEDGOLD 0xff, 0x80, 0x00 |
||||||
|
#define LEDYELL 0xff, 0xff, 0x00 |
||||||
|
#define LEDCHAR 0x80, 0xff, 0x00 |
||||||
|
#define LEDGREE 0x00, 0xff, 0x00 |
||||||
|
#define LEDFOAM 0x00, 0xff, 0x40 |
||||||
|
#define LEDTEAL 0x00, 0x80, 0xff |
||||||
|
#define LEDBLUE 0x00, 0x00, 0xff |
||||||
|
#define LEDPURP 0x80, 0x00, 0xff |
||||||
|
#define LEDMAGE 0xff, 0x00, 0xff |
||||||
|
#define LEDPINK 0xff, 0x00, 0x80 |
||||||
|
#define LEDBLAC 0x00, 0x00, 0x00 |
||||||
|
#define LED_OFF 0x00, 0x00, 0x00 |
||||||
|
|
||||||
|
/* Color Functions */ |
||||||
|
void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags); |
||||||
|
|
||||||
|
/* Function Row */ |
||||||
|
#define PIN_ESC 0 |
||||||
|
#define PIN_F1 6 |
||||||
|
#define PIN_F2 12 |
||||||
|
#define PIN_F3 18 |
||||||
|
#define PIN_F4 23 |
||||||
|
#define PIN_F5 28 |
||||||
|
#define PIN_F6 34 |
||||||
|
#define PIN_F7 39 |
||||||
|
#define PIN_F8 44 |
||||||
|
#define PIN_F9 50 |
||||||
|
#define PIN_F10 56 |
||||||
|
#define PIN_F11 61 |
||||||
|
#define PIN_F12 66 |
||||||
|
#define PIN_PRINT 69 |
||||||
|
|
||||||
|
/* Number Row */ |
||||||
|
#define PIN_0 57 |
||||||
|
#define PIN_1 7 |
||||||
|
#define PIN_2 13 |
||||||
|
#define PIN_3 19 |
||||||
|
#define PIN_4 24 |
||||||
|
#define PIN_5 29 |
||||||
|
#define PIN_6 35 |
||||||
|
#define PIN_7 40 |
||||||
|
#define PIN_8 45 |
||||||
|
#define PIN_9 51 |
||||||
|
|
||||||
|
/* QWERTY */ |
||||||
|
#define PIN_A 9 |
||||||
|
#define PIN_B 32 |
||||||
|
#define PIN_C 22 |
||||||
|
#define PIN_D 21 |
||||||
|
#define PIN_E 20 |
||||||
|
#define PIN_F 26 |
||||||
|
#define PIN_G 31 |
||||||
|
#define PIN_H 37 |
||||||
|
#define PIN_I 46 |
||||||
|
#define PIN_J 42 |
||||||
|
#define PIN_K 47 |
||||||
|
#define PIN_L 53 |
||||||
|
#define PIN_M 43 |
||||||
|
#define PIN_N 38 |
||||||
|
#define PIN_O 52 |
||||||
|
#define PIN_P 58 |
||||||
|
#define PIN_Q 8 |
||||||
|
#define PIN_R 25 |
||||||
|
#define PIN_S 15 |
||||||
|
#define PIN_T 30 |
||||||
|
#define PIN_U 41 |
||||||
|
#define PIN_V 27 |
||||||
|
#define PIN_W 14 |
||||||
|
#define PIN_X 16 |
||||||
|
#define PIN_Y 36 |
||||||
|
#define PIN_Z 10 |
||||||
|
|
||||||
|
/* Symbols */ |
||||||
|
#define PIN_MINUS 62 |
||||||
|
#define PIN_EQUAL 78 |
||||||
|
#define PIN_RBRACKET 89 |
||||||
|
#define PIN_LBRACKET 63 |
||||||
|
#define PIN_BSLASH 93 |
||||||
|
#define PIN_SLASH 60 |
||||||
|
#define PIN_SCOLON 59 |
||||||
|
#define PIN_QUOTE 64 |
||||||
|
#define PIN_COMMA 48 |
||||||
|
#define PIN_DOT 54 |
||||||
|
#define PIN_GRAVE 1 |
||||||
|
|
||||||
|
/* Indentation */ |
||||||
|
#define PIN_TAB 2 |
||||||
|
#define PIN_SPACE 33 |
||||||
|
|
||||||
|
/* Line Control */ |
||||||
|
#define PIN_BSPACE 85 |
||||||
|
#define PIN_ENTER 96 |
||||||
|
|
||||||
|
/* Indicator */ |
||||||
|
#define PIN_CAPS 3 |
||||||
|
|
||||||
|
/* Left Modifiers */ |
||||||
|
#define PIN_LSHIFT 4 |
||||||
|
#define PIN_LCTRL 5 |
||||||
|
#define PIN_LALT 17 |
||||||
|
#define PIN_LGUI 11 |
||||||
|
|
||||||
|
/* Right Modifiers */ |
||||||
|
#define PIN_RSHIFT 90 |
||||||
|
#define PIN_RCTRL 65 |
||||||
|
#define PIN_RALT 49 |
||||||
|
#define PIN_FN 55 |
||||||
|
|
||||||
|
/* Arrow Keys */ |
||||||
|
#define PIN_UP 94 |
||||||
|
#define PIN_DOWN 97 |
||||||
|
#define PIN_LEFT 95 |
||||||
|
#define PIN_RIGHT 79 |
||||||
|
|
||||||
|
/* Fn Column */ |
||||||
|
#define PIN_DEL 72 // ┳ TOP
|
||||||
|
#define PIN_PGUP 75 // ┃
|
||||||
|
#define PIN_PGDN 86 // ┃
|
||||||
|
#define PIN_END 82 // ┻ BOTTOM
|
||||||
|
|
||||||
|
/* Left Side Underglow */ |
||||||
|
#define PIN_LED_L01 67 // ┳ TOP
|
||||||
|
#define PIN_LED_L02 70 // ┃
|
||||||
|
#define PIN_LED_L03 73 // ┃
|
||||||
|
#define PIN_LED_L04 76 // ┃
|
||||||
|
#define PIN_LED_L05 80 // ┃
|
||||||
|
#define PIN_LED_L06 83 // ┃
|
||||||
|
#define PIN_LED_L07 87 // ┃
|
||||||
|
#define PIN_LED_L08 91 // ┻ BOTTOM
|
||||||
|
|
||||||
|
/* Right Side Underglow */ |
||||||
|
#define PIN_LED_L11 68 // ┳ TOP
|
||||||
|
#define PIN_LED_L12 71 // ┃
|
||||||
|
#define PIN_LED_L13 74 // ┃
|
||||||
|
#define PIN_LED_L14 77 // ┃
|
||||||
|
#define PIN_LED_L15 81 // ┃
|
||||||
|
#define PIN_LED_L16 84 // ┃
|
||||||
|
#define PIN_LED_L17 88 // ┃
|
||||||
|
#define PIN_LED_L18 92 // ┻ BOTTOM
|
||||||
|
|
||||||
|
// clang-format on
|
@ -0,0 +1,52 @@ |
|||||||
|
# @mattgauf's GMMK Pro layout |
||||||
|
|
||||||
|
### `_DEFAULT` |
||||||
|
> *Based on the default ansi layout, this keymap contains the following changes to the default layer.* |
||||||
|
- Screensaver: `HYPER(F17)` |
||||||
|
- `KC_PSCR` → `MG_F17` |
||||||
|
- `KC_DEL` → `KC_HOME` |
||||||
|
|
||||||
|
> *Additionally the encoder will follow new rules when holding a key.* |
||||||
|
- `KC_GUI` will cycle through applications (macOS variant) |
||||||
|
- `KC_GUI + KC_ALT` will tap the left and right arrows. |
||||||
|
- `KC_GUI + KC_SHIFT` will tap Undo and Redo (macOS variant) |
||||||
|
|
||||||
|
### `_EFFECTS` |
||||||
|
> *The function layer is now used for additional layer access, effect keys, and media keys (following the Macbook Pro fn key layout).* |
||||||
|
|
||||||
|
> *Additionally while effects is active, the encoder will only adjust the brightness of the RGB matrix.* |
||||||
|
- The RGB matrix effect and speed keys are located on the right hand vertical nav column. |
||||||
|
- `KC_HOME` → `RGB_MOD` |
||||||
|
- `KC_PGUP` → `RGB_RMOD` |
||||||
|
- `KC_PGDN` → `RGB_SPI` |
||||||
|
- `KC_END` → `RGB_SPD` |
||||||
|
- The RGB matrix Hue, Saturation keys are mapped to the arrow keys. |
||||||
|
- `KC_UP` → `RGB_SAI` |
||||||
|
- `KC_DN` → `RGB_SAD` |
||||||
|
- `KC_LEFT` → `RGB_HUD` |
||||||
|
- `KC_RIGHT` → `RGB_HUI` |
||||||
|
- The RGB matrix toggle is intercepted in process_record_user() cycling through the `LED_FLAG` modifiers. (`NONE`, `UNDERGLOW`, `KEYLIGHT`, `ALL`) |
||||||
|
- `KC_SLSH` → `RGB_TOG` |
||||||
|
- Hibernate: `HYPER(F18)` |
||||||
|
- `MG_F17` → `MG_F18` |
||||||
|
|
||||||
|
|
||||||
|
### `_UTILITY` |
||||||
|
*The utility layer is currently used for remapping* `KF_F9` *to* `KC_F12` *&* `MG_F17` *to the dynamic macro keys.* |
||||||
|
- Playback |
||||||
|
- `KC_F9` → `DM_PLY1` |
||||||
|
- `KC_F10` → `DM_PLY2` |
||||||
|
- Record |
||||||
|
- `KC_F11` → `DM_REC1` |
||||||
|
- `KC_F12` → `DM_REC2` |
||||||
|
- Stop Recording |
||||||
|
- `MG_F17` → `DM_RSTP` |
||||||
|
|
||||||
|
### `_DFUMODE` |
||||||
|
> *The final layer is used for resetting the board or triggering an immediate shutdown.* |
||||||
|
- DFU Mode |
||||||
|
- `KC_ESC` → `RESET` |
||||||
|
- Shutdown: `HYPER(F19)` |
||||||
|
- `MG_F17` → `MG_F19` |
||||||
|
- Encoder press, triggers debug output. |
||||||
|
- `KC_MUTE` → `DEBUG` |
@ -0,0 +1,6 @@ |
|||||||
|
# Build rules
|
||||||
|
LIB_SRC += ansi.c
|
||||||
|
LIB_SRC += helpers.c
|
||||||
|
|
||||||
|
# Overrides
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
@ -0,0 +1,31 @@ |
|||||||
|
/* Copyright 2021 mtei
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
|
||||||
|
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { |
||||||
|
/* If none of the keys are pressed,
|
||||||
|
* there is no need to wait for time for the next line. */ |
||||||
|
if (key_pressed) { |
||||||
|
# ifdef MATRIX_IO_DELAY |
||||||
|
# if MATRIX_IO_DELAY > 0 |
||||||
|
wait_us(MATRIX_IO_DELAY); |
||||||
|
# endif |
||||||
|
# else |
||||||
|
wait_us(30); |
||||||
|
# endif |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
/* Copyright 2021 mtei
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
|
||||||
|
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { |
||||||
|
/* If none of the keys are pressed,
|
||||||
|
* there is no need to wait for time for the next line. */ |
||||||
|
if (key_pressed) { |
||||||
|
# ifdef MATRIX_IO_DELAY |
||||||
|
# if MATRIX_IO_DELAY > 0 |
||||||
|
wait_us(MATRIX_IO_DELAY); |
||||||
|
# endif |
||||||
|
# else |
||||||
|
wait_us(30); |
||||||
|
# endif |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
/* Copyright 2021 QMK
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
#pragma once |
||||||
|
|
||||||
|
#define HAL_USE_I2C TRUE |
||||||
|
#define HAL_USE_GPT TRUE |
||||||
|
#define HAL_USE_DAC TRUE |
||||||
|
|
||||||
|
#include_next <halconf.h> |
@ -0,0 +1,39 @@ |
|||||||
|
/* Copyright 2021 QMK
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
#include_next "mcuconf.h" |
||||||
|
|
||||||
|
// for i2c expander, and ISSI
|
||||||
|
#undef STM32_I2C_USE_I2C1 |
||||||
|
#define STM32_I2C_USE_I2C1 TRUE |
||||||
|
|
||||||
|
// for future hardwar
|
||||||
|
#undef STM32_I2C_USE_I2C2 |
||||||
|
#define STM32_I2C_USE_I2C2 TRUE |
||||||
|
|
||||||
|
// for audio
|
||||||
|
#undef STM32_DAC_USE_DAC1_CH1 |
||||||
|
#define STM32_DAC_USE_DAC1_CH1 TRUE |
||||||
|
#undef STM32_DAC_USE_DAC1_CH2 |
||||||
|
#define STM32_DAC_USE_DAC1_CH2 TRUE |
||||||
|
#undef STM32_GPT_USE_TIM6 |
||||||
|
#define STM32_GPT_USE_TIM6 TRUE |
||||||
|
#undef STM32_GPT_USE_TIM7 |
||||||
|
#define STM32_GPT_USE_TIM7 TRUE |
||||||
|
#undef STM32_GPT_USE_TIM8 |
||||||
|
#define STM32_GPT_USE_TIM8 TRUE |
@ -1,43 +1,49 @@ |
|||||||
oxalys80 |
# OXALYS80 |
||||||
=== |
|
||||||
|
|
||||||
A QMK-powered replacement PCB for custom TKL keyboards. This PCB has the same size of the b.87 PCB, Hiney H87a, KBD8X. |
A QMK-powered replacement PCB for custom TKL keyboards. This PCB has the same size of the b.87 PCB, Hiney H87a, and KBD8X. |
||||||
|
|
||||||
Keyboard Maintainer: [Nix Studio](https://github.com/Nix-Studio) |
* Keyboard Maintainer: [Nix Studio](https://github.com/Nix-Studio) |
||||||
Hardware Supported: oxalys80 ver. 1.0 |
* Hardware Supported: oxalys80 ver. 1.0 |
||||||
Hardware Availability: [Nix Studio](https://www.instagram.com/nix.studio/) |
* Hardware Availability: [Nix Studio](https://www.instagram.com/nix.studio/) |
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment): |
Make example for this keyboard (after setting up your build environment): |
||||||
|
|
||||||
make nix_studio/oxalys80:default |
make nix_studio/oxalys80:default |
||||||
|
|
||||||
|
Flashing example for this keyboard: |
||||||
|
|
||||||
|
make nix_studio/oxalys80:default:flash |
||||||
|
|
||||||
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 our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
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 our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
||||||
|
|
||||||
## oxalys80 hardware information |
## OXALYS80 Hardware Information |
||||||
|
|
||||||
|
Controller: ATmega32U4 |
||||||
|
|
||||||
|
### Column Pin Configuration |
||||||
|
|
||||||
Controller: Atmega32u4 |
| col: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
||||||
|
|------|----|----|----|----|----|----|----|----|----| |
||||||
|
| pin: | F0 | F1 | F4 | F5 | F6 | F7 | C7 | B0 | B1 | |
||||||
|
|
||||||
/* Column pin configuration |
### Row Pin Configuration |
||||||
* col: 0 1 2 3 4 5 6 7 8 |
|
||||||
* pin: F0 F1 F4 F5 F6 F7 C7 B0 B1 |
|
||||||
*/ |
|
||||||
|
|
||||||
/* Row pin configuration |
| row: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
||||||
* row: 0 1 2 3 4 5 6 7 8 9 10 11 |
|------|----|----|----|----|----|----|----|----|----|----|----|----| |
||||||
* pin: C6 B6 B5 B4 D7 D6 D4 D5 D3 D2 D1 D0 |
| pin: | C6 | B6 | B5 | B4 | D7 | D6 | D4 | D5 | D3 | D2 | D1 | D0 | |
||||||
*/ |
|
||||||
|
|
||||||
The oxalys PCB utilizes duplex matrix organization. |
The OXALYS80 PCB utilizes duplex matrix organization. |
||||||
|
|
||||||
Caps Lock LED: E6 |
### LED Pins |
||||||
Scroll Lock LED: B2 |
|
||||||
Num Lock LED: not supported |
|
||||||
Backlight Pin: B7 |
|
||||||
RGB Data Pin: B3 |
|
||||||
|
|
||||||
|
* Caps Lock LED: E6 |
||||||
|
* Scroll Lock LED: B2 |
||||||
|
* Num Lock LED: not supported |
||||||
|
* Backlight Pin: B7 |
||||||
|
* RGB Data Pin: B3 |
||||||
|
|
||||||
|
## In-switch Indicators |
||||||
|
|
||||||
In-switch indicators: |
|
||||||
To connect the Caps Lock LED to the main backlight matrix, turn switch to top position on SW3. To use the Caps Lock LED as an indicator, turn switch to bottom position on SW3. |
To connect the Caps Lock LED to the main backlight matrix, turn switch to top position on SW3. To use the Caps Lock LED as an indicator, turn switch to bottom position on SW3. |
||||||
|
|
||||||
To connect the Scroll Lock LED to the main backlight matrix, turn switch to left position on SW2. To use the Scroll Lock LED as an indicator, turn switch to right position on SW2. |
To connect the Scroll Lock LED to the main backlight matrix, turn switch to left position on SW2. To use the Scroll Lock LED as an indicator, turn switch to right position on SW2. |
||||||
|
@ -0,0 +1,23 @@ |
|||||||
|
/* Copyright 2021 QMK
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
#pragma once |
||||||
|
|
||||||
|
#define HAL_USE_I2C TRUE |
||||||
|
#define HAL_USE_GPT TRUE |
||||||
|
#define HAL_USE_DAC TRUE |
||||||
|
#define HAL_USE_PWM TRUE |
||||||
|
|
||||||
|
#include_next <halconf.h> |
@ -0,0 +1,41 @@ |
|||||||
|
/* Copyright 2021 QMK
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
#include_next "mcuconf.h" |
||||||
|
|
||||||
|
// for i2c expander, and ISSI
|
||||||
|
#undef STM32_I2C_USE_I2C1 |
||||||
|
#define STM32_I2C_USE_I2C1 TRUE |
||||||
|
|
||||||
|
// for indicator LEDs
|
||||||
|
#undef STM32_PWM_USE_TIM3 |
||||||
|
#define STM32_PWM_USE_TIM3 TRUE |
||||||
|
#undef STM32_PWM_USE_TIM4 |
||||||
|
#define STM32_PWM_USE_TIM4 TRUE |
||||||
|
|
||||||
|
// for audio
|
||||||
|
#undef STM32_DAC_USE_DAC1_CH1 |
||||||
|
#define STM32_DAC_USE_DAC1_CH1 TRUE |
||||||
|
#undef STM32_DAC_USE_DAC1_CH2 |
||||||
|
#define STM32_DAC_USE_DAC1_CH2 TRUE |
||||||
|
#undef STM32_GPT_USE_TIM6 |
||||||
|
#define STM32_GPT_USE_TIM6 TRUE |
||||||
|
#undef STM32_GPT_USE_TIM7 |
||||||
|
#define STM32_GPT_USE_TIM7 TRUE |
||||||
|
#undef STM32_GPT_USE_TIM8 |
||||||
|
#define STM32_GPT_USE_TIM8 TRUE |
@ -0,0 +1,58 @@ |
|||||||
|
/* Copyright 2021 Andy Yong (Sauce)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
#include "config_common.h" |
||||||
|
|
||||||
|
/* USB Device descriptor parameter */ |
||||||
|
#define VENDOR_ID 0x8367 // "SC"
|
||||||
|
#define PRODUCT_ID 0x7783 // "MS"
|
||||||
|
#define DEVICE_VER 0x0001 |
||||||
|
#define MANUFACTURER Sauce |
||||||
|
#define PRODUCT Mild |
||||||
|
|
||||||
|
/* key matrix size */ |
||||||
|
#define MATRIX_ROWS 6 |
||||||
|
#define MATRIX_COLS 17 |
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments |
||||||
|
* |
||||||
|
* Change this to how you wired your keyboard |
||||||
|
* COLS: AVR pins used for columns, left to right |
||||||
|
* ROWS: AVR pins used for rows, top to bottom |
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) |
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) |
||||||
|
* |
||||||
|
*/ |
||||||
|
#define MATRIX_ROW_PINS { C13, C14, C15, A15, F0, F1 } |
||||||
|
#define MATRIX_COL_PINS { A10, A9, A8, B11, B10, B2, B1, B0, A7, A5, A4, A3, A2, A1, B6, B5, B4 } |
||||||
|
#define UNUSED_PINS |
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/ |
||||||
|
#define DIODE_DIRECTION COL2ROW |
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
||||||
|
#define DEBOUNCE 5 |
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
||||||
|
#define LOCKING_SUPPORT_ENABLE |
||||||
|
/* Locking resynchronize hack */ |
||||||
|
#define LOCKING_RESYNC_ENABLE |
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN A6 |
||||||
|
#define LED_SCROLL_LOCK_PIN B14 |
@ -0,0 +1,17 @@ |
|||||||
|
{ |
||||||
|
"keyboard_name": "Sauce - Mild", |
||||||
|
"url": "", |
||||||
|
"maintainer": "Sauce", |
||||||
|
"layouts": { |
||||||
|
"LAYOUT_all": { |
||||||
|
"layout": [ |
||||||
|
{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, |
||||||
|
{"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, |
||||||
|
{"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, |
||||||
|
{"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, |
||||||
|
{"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, |
||||||
|
{"x":0, "y":5.25, "w":1.5}, {"x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"x":11, "y":5.25, "w":1.5}, {"x":13.5, "y":5.25, "w":1.5}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25} |
||||||
|
] |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
/* Copyright 2021 Andy Yong (Sauce)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
|
||||||
|
[0] = LAYOUT_all( |
||||||
|
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_PSCR, KC_SLCK, KC_PAUS, |
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, |
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, |
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, |
||||||
|
KC_LSFT, 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_RSFT, KC_UP, |
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
||||||
|
|
||||||
|
[1] = LAYOUT_all( |
||||||
|
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLU, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_VOLD, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
||||||
|
|
||||||
|
}; |
@ -0,0 +1,52 @@ |
|||||||
|
/* Copyright 2021 Andy Yong (Sauce)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
|
||||||
|
[0] = LAYOUT_all( |
||||||
|
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_PSCR, KC_SLCK, KC_PAUS, |
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, |
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, |
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, |
||||||
|
KC_LSFT, 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_RSFT, KC_UP, |
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
||||||
|
|
||||||
|
[1] = LAYOUT_all( |
||||||
|
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLU, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_VOLD, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
||||||
|
|
||||||
|
[2] = LAYOUT_all( |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
||||||
|
|
||||||
|
[3] = LAYOUT_all( |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
||||||
|
|
||||||
|
}; |
@ -0,0 +1 @@ |
|||||||
|
VIA_ENABLE = yes
|
@ -0,0 +1,17 @@ |
|||||||
|
/* Copyright 2021 Andy Yong (Sauce)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include "mild.h" |
@ -0,0 +1,37 @@ |
|||||||
|
/* Copyright 2021 Andy Yong (Sauce)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
#include "quantum.h" |
||||||
|
|
||||||
|
#define ____ KC_NO |
||||||
|
|
||||||
|
#define LAYOUT_all( \ |
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, K016, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K412, K114, K115, K116, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K314, \
|
||||||
|
K400, K501, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
|
||||||
|
K500, K503, K505, K510, K513, K514, K515, K516 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, ____, K014, K015, K016 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K314, ____, ____, ____ }, \
|
||||||
|
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, ____, K415, ____ }, \
|
||||||
|
{ K500, K501, ____, K503, ____, K505, ____, ____, ____, ____, K510, ____, ____, K513, K514, K515, K516 } \
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
# Sauce Mild |
||||||
|
|
||||||
|
Mild is a basic TKL keyboard |
||||||
|
|
||||||
|
* Keyboard Maintainer: [Sauce](https://github.com/andyywz) |
||||||
|
* Hardware Supported: Mild pcb |
||||||
|
* Hardware Availability: - |
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment): |
||||||
|
|
||||||
|
make sauce/mild:default |
||||||
|
|
||||||
|
Flashing example for this keyboard: |
||||||
|
|
||||||
|
make sauce/mild:default:flash |
||||||
|
|
||||||
|
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 our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,24 @@ |
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = stm32-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||||
|
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
Loading…
Reference in new issue