aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c241
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/config.h63
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/helpers.c25
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap.c220
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap_helpers.h165
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/readme.md52
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/mattgauf/rules.mk6
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/config.h6
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/matrix_output_unselect_delay.c31
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/oled_display.c92
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/rules.mk13
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/config.h6
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c31
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c92
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk13
-rw-r--r--keyboards/massdrop/ctrl/keymaps/r-pufky/config.h2
-rw-r--r--keyboards/massdrop/ctrl/keymaps/r-pufky/keymap.c105
-rw-r--r--keyboards/massdrop/ctrl/keymaps/r-pufky/readme.md34
-rw-r--r--keyboards/mode/m65s/config.h2
-rw-r--r--keyboards/mode/m65s/rules.mk4
-rw-r--r--keyboards/moonlander/halconf.h22
-rw-r--r--keyboards/moonlander/mcuconf.h39
-rw-r--r--keyboards/moonlander/rules.mk3
-rw-r--r--keyboards/nix_studio/oxalys80/info.json382
-rw-r--r--keyboards/nix_studio/oxalys80/keymaps/default/keymap.c28
-rw-r--r--keyboards/nix_studio/oxalys80/keymaps/via/keymap.c56
-rw-r--r--keyboards/nix_studio/oxalys80/oxalys80.h194
-rw-r--r--keyboards/nix_studio/oxalys80/readme.md64
-rw-r--r--keyboards/nix_studio/oxalys80/rules.mk10
-rw-r--r--keyboards/planck/ez/halconf.h23
-rw-r--r--keyboards/planck/ez/mcuconf.h41
-rw-r--r--keyboards/planck/ez/rules.mk17
-rw-r--r--keyboards/sauce/mild/config.h58
-rw-r--r--keyboards/sauce/mild/info.json17
-rw-r--r--keyboards/sauce/mild/keymaps/default/keymap.c36
-rw-r--r--keyboards/sauce/mild/keymaps/via/keymap.c52
-rw-r--r--keyboards/sauce/mild/keymaps/via/rules.mk1
-rw-r--r--keyboards/sauce/mild/mild.c17
-rw-r--r--keyboards/sauce/mild/mild.h37
-rw-r--r--keyboards/sauce/mild/readme.md17
-rw-r--r--keyboards/sauce/mild/rules.mk24
-rw-r--r--keyboards/xbows/knight/rules.mk2
-rw-r--r--keyboards/xbows/knight_plus/rules.mk2
-rw-r--r--keyboards/xbows/numpad/rules.mk2
44 files changed, 2163 insertions, 184 deletions
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c
new file mode 100644
index 000000000..b09af297b
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c
@@ -0,0 +1,241 @@
1/* Copyright 2021 Gigahawk
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// clang-format off
18#include "ansi.h"
19
20#ifdef RGB_MATRIX_ENABLE
21led_config_t __flash g_led_config = {{
22 { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 },
23 { 8, 2, 9, 0, 10, 75, 1, 7 },
24 { 14, 3, 15, NO_LED, 16, 86, 6, 13 },
25 { 20, 18, 21, 23, 22, 94, 12, 19 },
26 { 25, 30, 26, 31, 27, 32, 29, 24 },
27 { 41, 36, 42, 37, 43, 38, 35, 40 },
28 { 46, 89, 47, 34, 48, 72, 78, 45 },
29 { 52, 39, 53, 97, 54, 82, 44, 51 },
30 { 58, 63, 59, 64, NO_LED, 60, 62, 57 },
31 { 11, 90, 55, 17, 33, 49, NO_LED, 69 },
32 { NO_LED, 85, 93, 61, 96, 66, 50, 56 }
33}, {
34 {0, 0}, // 0, ESC, k13
35 {0, 15}, // 1, ~, k16
36 {4, 26}, // 2, Tab, k11
37 {5, 38}, // 3, Caps, k21
38 {9, 49}, // 4, Sh_L, k00
39 {2, 61}, // 5, Ct_L, k06
40 {18, 0}, // 6, F1, k26
41 {14, 15}, // 7, 1, k17
42 {22, 26}, // 8, Q, k10
43 {25, 38}, // 9, A, k12
44 {33, 49}, // 10, Z, k14
45 {20, 61}, // 11, Win_L, k90
46 {33, 0}, // 12, F2, k36
47 {29, 15}, // 13, 2, k27
48 {36, 26}, // 14, W, k20
49 {40, 38}, // 15, S, k22
50 {47, 49}, // 16, X, k24
51 {38, 61}, // 17, Alt_L, k93
52 {47, 0}, // 18, F3, k31
53 {43, 15}, // 19, 3, k37
54 {51, 26}, // 20, E, k30
55 {54, 38}, // 21, D, k32
56 {61, 49}, // 22, C, k34
57 {61, 0}, // 23, F4, k33
58 {58, 15}, // 24, 4, k47
59 {65, 26}, // 25, R, k40
60 {69, 38}, // 26, F, k42
61 {76, 49}, // 27, V, k44
62 {79, 0}, // 28, F5, k07
63 {72, 15}, // 29, 5, k46
64 {79, 26}, // 30, T, k41
65 {83, 38}, // 31, G, k43
66 {90, 49}, // 32, B, k45
67 {92, 61}, // 33, SPACE, k94
68 {94, 0}, // 34, F6, k63
69 {87, 15}, // 35, 6, k56
70 {94, 26}, // 36, Y, k51
71 {98, 38}, // 37, H, k53
72 {105, 49}, // 38, N, k55
73 {108, 0}, // 39, F7, k71
74 {101, 15}, // 40, 7, k57
75 {108, 26}, // 41, U, k50
76 {112, 38}, // 42, J, k52
77 {119, 49}, // 43, M, k54
78 {123, 0}, // 44, F8, k76
79 {116, 15}, // 45, 8, k67
80 {123, 26}, // 46, I, k60
81 {126, 38}, // 47, K, k62
82 {134, 49}, // 48, ,, k64
83 {145, 61}, // 49, Alt_R, k95
84 {141, 0}, // 50, F9, ka6
85 {130, 15}, // 51, 9, k77
86 {137, 26}, // 52, O, k70
87 {141, 38}, // 53, L, k72
88 {148, 49}, // 54, ., k74
89 {159, 61}, // 55, FN, k92
90 {155, 0}, // 56, F10, ka7
91 {145, 15}, // 57, 0, k87
92 {152, 26}, // 58, P, k80
93 {155, 38}, // 59, ;, k82
94 {163, 49}, // 60, ?, k85
95 {170, 0}, // 61, F11, ka3
96 {159, 15}, // 62, -, k86
97 {166, 26}, // 63, [, k81
98 {170, 38}, // 64, ", k83
99 {173, 61}, // 65, Ct_R, k04
100 {184, 0}, // 66, F12, ka5
101 {0, 8}, // 67, LED, l01
102 {224, 8}, // 68, LED, l11
103 {202, 0}, // 69, Prt, k97
104 {0, 15}, // 70, LED, l02
105 {224, 15}, // 71, LED, l12
106 {224, 15}, // 72, Del, k65
107 {0, 21}, // 73, LED, l03
108 {224, 21}, // 74, LED, l13
109 {224, 26}, // 75, PgUp, k15
110 {0, 28}, // 76, LED, l04
111 {224, 28}, // 77, LED, l14
112 {173, 15}, // 78, =, k66
113 {220, 64}, // 79, Right, k05
114 {0, 35}, // 80, LED, l05
115 {224, 35}, // 81, LED, l15
116 {224, 49}, // 82, End, k75
117 {0, 42}, // 83, LED, l06
118 {224, 42}, // 84, LED, l16
119 {195, 15}, // 85, BSpc, ka1
120 {224, 38}, // 86, PgDn, k25
121 {0, 48}, // 87, LED, l07
122 {224, 48}, // 88, LED, l17
123 {181, 26}, // 89, ], k61
124 {182, 49}, // 90, Sh_R, k91
125 {0, 55}, // 91, LED, l08
126 {224, 55}, // 92, LED, l18
127 {199, 26}, // 93, \, ka2
128 {206, 52}, // 94, Up, k35
129 {191, 64}, // 95, Left, k03
130 {193, 38}, // 96, Enter, ka4
131 {206, 64} // 97, Down, k73
132}, {
133 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,
134 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,
135 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,
136 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
137}};
138
139const aw_led g_aw_leds[DRIVER_LED_TOTAL] = {
140 {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
141 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
142 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
143 {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 3, Caps, k21
144 {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 4, Sh_L, k00
145 {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 5, Ct_L, k06
146 {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 6, F1, k26
147 {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 7, 1, k17
148 {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 8, Q, k10
149 {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 9, A, k12
150 {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 10, Z, k14
151 {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 11, Win_L, k90
152 {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 12, F2, k36
153 {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 13, 2, k27
154 {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 14, W, k20
155 {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 15, S, k22
156 {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 16, X, k24
157 {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 17, Alt_L, k93
158 {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 18, F3, k31
159 {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, 3, k37
160 {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 20, E, k30
161 {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 21, D, k32
162 {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 22, C, k34
163 {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 23, F4, k33
164 {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 24, 4, k47
165 {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 25, R, k40
166 {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 26, F, k42
167 {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 27, V, k44
168 {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 28, F5, k07
169 {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 29, 5, k46
170 {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 30, T, k41
171 {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 31, G, k43
172 {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 32, B, k45
173 {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 33, SPACE, k94
174 {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 34, F6, k63
175 {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 35, 6, k56
176 {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 36, Y, k51
177 {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 37, H, k53
178 {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 38, N, k55
179 {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 39, F7, k71
180 {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 40, 7, k57
181 {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U, k50
182 {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 42, J, k52
183 {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 43, M, k54
184 {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, F8, k76
185 {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 45, 8, k67
186 {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 46, I, k60
187 {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 47, K, k62
188 {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 48, ,, k64
189 {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 49, Alt_R, k95
190 {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 50, F9, ka6
191 {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 51, 9, k77
192 {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 52, O, k70
193 {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 53, L, k72
194 {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 54, ., k74
195 {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 55, FN, k92
196 {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 56, F10, ka7
197 {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 57, 0, k87
198 {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 58, P, k80
199 {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 59, ;, k82
200 {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 60, ?, k85
201 {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 61, F11, ka3
202 {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 62, -, k86
203 {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 63, [, k81
204 {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 64, ", k83
205 {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 65, Ct_R, k04
206
207 {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 66, F12, ka5
208 {1, CS13_SW1, CS14_SW1, CS15_SW1}, // 67, LED, l01
209 {1, CS16_SW1, CS17_SW1, CS18_SW1}, // 68, LED, l11
210 {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 69, Prt, k97
211 {1, CS13_SW2, CS14_SW2, CS15_SW2}, // 70, LED, l02
212 {1, CS16_SW2, CS17_SW2, CS18_SW2}, // 71, LED, l12
213 {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 72, Del, k65
214 {1, CS13_SW3, CS14_SW3, CS15_SW3}, // 73, LED, l03
215 {1, CS16_SW3, CS17_SW3, CS18_SW3}, // 74, LED, l13
216 {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 75, PgUp, k15
217 {1, CS13_SW4, CS14_SW4, CS15_SW4}, // 76, LED, l04
218 {1, CS16_SW4, CS17_SW4, CS18_SW4}, // 77, LED, l14
219 {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 78, =, k66
220 {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 79, Right, k05
221 {1, CS13_SW5, CS14_SW5, CS15_SW5}, // 80, LED, l05
222 {1, CS16_SW5, CS17_SW5, CS18_SW5}, // 81, LED, l15
223 {1, CS4_SW6, CS5_SW6, CS6_SW6}, // 82, End, k75
224 {1, CS13_SW6, CS14_SW6, CS15_SW6}, // 83, LED, l06
225 {1, CS16_SW6, CS17_SW6, CS18_SW6}, // 84, LED, l16
226 {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 85, BSpc, ka1
227 {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 86, PgDn, k25
228 {1, CS13_SW7, CS14_SW7, CS15_SW7}, // 87, LED, l07
229 {1, CS16_SW7, CS17_SW7, CS18_SW7}, // 88, LED, l17
230 {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 89, ], k61
231 {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 90, Sh_R, k91
232 {1, CS13_SW8, CS14_SW8, CS15_SW8}, // 91, LED, l08
233 {1, CS16_SW8, CS17_SW8, CS18_SW8}, // 92, LED, l18
234 {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 93, \, ka2
235 {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 94, Up, k35
236 {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 95, Left, k03
237 {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 96, Enter, ka4
238 {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 97, Down, k73
239};
240// clang-format on
241#endif
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/config.h b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/config.h
new file mode 100644
index 000000000..26417b823
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/config.h
@@ -0,0 +1,63 @@
1/* Copyright 2021 Matt Gauf
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// clang-format off
18#pragma once
19
20/* Defaults */
21#define RAW_USAGE_PAGE 0x200
22#define RAW_USAGE_ID 0x40
23
24/* Board Features */
25#define DYNAMIC_MACRO_SIZE 512
26
27/* RGB Matrix Features */
28#define RGB_MATRIX_KEYPRESSES
29#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
30#define RGB_DISABLE_WHEN_USB_SUSPENDED true
31
32/* RGB Matrix Framebuffer Config */
33// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
34// #define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25
35
36/* RGB Matrix Disabled Effects */
37#define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
38#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
39#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
40#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
41#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
42#define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
43#define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
44#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
45#define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
46#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
47#define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left
48#define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right
49
50#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
51 #define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
52#endif
53
54#if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES)
55 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
56 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
57 #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
58 #define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
59 #define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
60#endif
61
62#define DISABLE_RGB_MATRIX_EFFECT_MAX
63// clang-format on
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/helpers.c b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/helpers.c
new file mode 100644
index 000000000..f3f443ced
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/helpers.c
@@ -0,0 +1,25 @@
1/* Copyright 2021 Matt Gauf
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "rgb_matrix.h"
18
19void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags) {
20 for (uint8_t ii = 0; ii < DRIVER_LED_TOTAL; ii++) {
21 if (g_led_config.flags[ii] & flags) {
22 rgb_matrix_set_color(ii, red, green, blue);
23 }
24 }
25}
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap.c
new file mode 100644
index 000000000..f96be6ffe
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap.c
@@ -0,0 +1,220 @@
1/* Copyright 2021 Matt Gauf
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// clang-format off
18#include QMK_KEYBOARD_H
19#include "keymap_helpers.h"
20
21
22enum custom_codes {
23 SET_MP = RGB_M_P,
24 SET_MB = RGB_M_B,
25 SET_MR = RGB_M_R,
26
27 MG_F17 = SAFE_RANGE,
28 MG_F18,
29 MG_F19
30};
31
32
33enum layer_names {
34 _DEFAULT = 0,
35 _EFFECTS,
36 _UTILITY,
37 _DFUMODE
38};
39
40
41// static uint8_t rgb_pin_fn_column[] = {PIN_DEL,PIN_PGUP,PIN_PGDN,PIN_END};
42// 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};
43// 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};
44
45
46#define MODS_SHIFT ((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT)
47#define MODS_CTRL ((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL)
48#define MODS_ALT ((get_mods() | get_oneshot_mods()) & MOD_MASK_ALT)
49#define MODS_GUI ((get_mods() | get_oneshot_mods()) & MOD_MASK_GUI)
50
51
52const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
53 [_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,
54 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,
55 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,
56 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,
57 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,
58 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_EFFECTS), KC_LEFT, KC_DOWN, KC_RGHT),
59
60 [_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, _______,
61 _______, SET_MP, SET_MB, SET_MR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,
63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI,
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_SAI, RGB_SPD,
65 _______, _______, _______, _______, TG(_UTILITY), MO(_DFUMODE), _______, RGB_HUD, RGB_SAD, RGB_HUI),
66
67 [_UTILITY] = LAYOUT(_______, _______, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______,
68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
73
74 [_DFUMODE] = LAYOUT(RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MG_F19, DEBUG,
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
79 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
80};
81// Runs constantly in the background, in a loop.
82void rgb_matrix_indicators_user(void) {
83 if (rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)) {
84
85 if (IS_LAYER_ON(_UTILITY)) {
86 rgb_matrix_set_color(PIN_F9, LEDGREE);
87 rgb_matrix_set_color(PIN_F10, LEDGREE);
88 rgb_matrix_set_color(PIN_F11, LED_RED);
89 rgb_matrix_set_color(PIN_F12, LED_RED);
90 rgb_matrix_set_color(PIN_PRINT, LEDTEAL);
91 }
92
93 switch (get_highest_layer(layer_state)) {
94 case _DFUMODE:
95 rgb_matrix_set_color_all(LED_OFF);
96 rgb_matrix_set_color(PIN_ESC, LED_RED);
97 rgb_matrix_set_color(PIN_PRINT, LEDORAN);
98 return;
99 case _EFFECTS:
100 rgb_matrix_set_color(PIN_PRINT, LEDGREE);
101 break;
102 default:
103 break;
104 }
105
106 if (host_keyboard_led_state().caps_lock) {
107 rgb_matrix_set_color(PIN_CAPS, RGB_WHITE);
108 }
109
110 }
111}
112
113
114// Called on start
115void dynamic_macro_record_start_user(void) {
116 dprint("-- Recording Started\n");
117 layer_on(_UTILITY);
118}
119
120
121// Called on end
122void dynamic_macro_record_end_user(int8_t direction) {
123 dprint("-- Recording Ended\n");
124}
125
126
127// Called on playback
128void dynamic_macro_play_user(int8_t direction) {
129 dprint("-- Recording Playing\n");
130}
131
132
133// Runs on encoder event
134bool encoder_update_user(uint8_t index, bool clockwise) {
135 uint8_t curr_mod = get_mods();
136
137 if (IS_LAYER_ON(_EFFECTS)) {
138 if (clockwise) {
139 rgb_matrix_increase_val();
140 } else {
141 rgb_matrix_decrease_val();
142 }
143 } else {
144 if (MODS_GUI) {
145 if (MODS_GUI && MODS_SHIFT) {
146 clear_mods();
147 if (clockwise) {
148 tap_code16(LSG(KC_Z));
149 } else {
150 tap_code16(LGUI(KC_Z));
151 }
152 set_mods(curr_mod);
153 } else if (MODS_GUI && MODS_ALT) {
154 clear_mods();
155 if (clockwise) {
156 tap_code(KC_RIGHT);
157 } else {
158 tap_code(KC_LEFT);
159 }
160 set_mods(curr_mod);
161 } else {
162 if (clockwise) {
163 tap_code16(LGUI(KC_TAB));
164 } else {
165 tap_code16(LSG(KC_TAB));
166 }
167 }
168 } else {
169 if (clockwise) {
170 tap_code(KC_VOLU);
171 } else {
172 tap_code(KC_VOLD);
173 }
174 }
175 }
176 return true;
177}
178
179
180// Runs on key event
181bool process_record_user(uint16_t keycode, keyrecord_t *record) {
182 switch (keycode) {
183 case MG_F17:
184 if (record->event.pressed) {
185 tap_code16(HYPR(KC_F17));
186 }
187 return false;
188 case MG_F18:
189 if (record->event.pressed) {
190 tap_code16(HYPR(KC_F18));
191 }
192 return false;
193 case MG_F19:
194 if (record->event.pressed) {
195 tap_code16(HYPR(KC_F19));
196 }
197 return false;
198 case RGB_TOG:
199 if (record->event.pressed) {
200 switch (rgb_matrix_get_flags()) {
201 case LED_FLAG_ALL:
202 rgb_matrix_set_flags(LED_FLAG_NONE);
203 break;
204 case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER:
205 rgb_matrix_set_flags(LED_FLAG_ALL);
206 break;
207 case LED_FLAG_UNDERGLOW:
208 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
209 break;
210 default:
211 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
212 break;
213 }
214 }
215 return false;
216 default:
217 return true; // Process all other keycodes normally
218 }
219}
220// clang-format on
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap_helpers.h b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap_helpers.h
new file mode 100644
index 000000000..2a6e8dae7
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/keymap_helpers.h
@@ -0,0 +1,165 @@
1/* Copyright 2021 Matt Gauf
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// clang-format off
18#include <inttypes.h>
19#include "rgb_matrix_types.h"
20
21/* Color Codes */
22#define LEDWHIT 0xff, 0xff, 0xff
23#define LED_RED 0xff, 0x00, 0x00
24#define LEDORAN 0xff, 0x29, 0x00
25#define LEDGOLD 0xff, 0x80, 0x00
26#define LEDYELL 0xff, 0xff, 0x00
27#define LEDCHAR 0x80, 0xff, 0x00
28#define LEDGREE 0x00, 0xff, 0x00
29#define LEDFOAM 0x00, 0xff, 0x40
30#define LEDTEAL 0x00, 0x80, 0xff
31#define LEDBLUE 0x00, 0x00, 0xff
32#define LEDPURP 0x80, 0x00, 0xff
33#define LEDMAGE 0xff, 0x00, 0xff
34#define LEDPINK 0xff, 0x00, 0x80
35#define LEDBLAC 0x00, 0x00, 0x00
36#define LED_OFF 0x00, 0x00, 0x00
37
38/* Color Functions */
39void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags);
40
41/* Function Row */
42#define PIN_ESC 0
43#define PIN_F1 6
44#define PIN_F2 12
45#define PIN_F3 18
46#define PIN_F4 23
47#define PIN_F5 28
48#define PIN_F6 34
49#define PIN_F7 39
50#define PIN_F8 44
51#define PIN_F9 50
52#define PIN_F10 56
53#define PIN_F11 61
54#define PIN_F12 66
55#define PIN_PRINT 69
56
57/* Number Row */
58#define PIN_0 57
59#define PIN_1 7
60#define PIN_2 13
61#define PIN_3 19
62#define PIN_4 24
63#define PIN_5 29
64#define PIN_6 35
65#define PIN_7 40
66#define PIN_8 45
67#define PIN_9 51
68
69/* QWERTY */
70#define PIN_A 9
71#define PIN_B 32
72#define PIN_C 22
73#define PIN_D 21
74#define PIN_E 20
75#define PIN_F 26
76#define PIN_G 31
77#define PIN_H 37
78#define PIN_I 46
79#define PIN_J 42
80#define PIN_K 47
81#define PIN_L 53
82#define PIN_M 43
83#define PIN_N 38
84#define PIN_O 52
85#define PIN_P 58
86#define PIN_Q 8
87#define PIN_R 25
88#define PIN_S 15
89#define PIN_T 30
90#define PIN_U 41
91#define PIN_V 27
92#define PIN_W 14
93#define PIN_X 16
94#define PIN_Y 36
95#define PIN_Z 10
96
97/* Symbols */
98#define PIN_MINUS 62
99#define PIN_EQUAL 78
100#define PIN_RBRACKET 89
101#define PIN_LBRACKET 63
102#define PIN_BSLASH 93
103#define PIN_SLASH 60
104#define PIN_SCOLON 59
105#define PIN_QUOTE 64
106#define PIN_COMMA 48
107#define PIN_DOT 54
108#define PIN_GRAVE 1
109
110/* Indentation */
111#define PIN_TAB 2
112#define PIN_SPACE 33
113
114/* Line Control */
115#define PIN_BSPACE 85
116#define PIN_ENTER 96
117
118/* Indicator */
119#define PIN_CAPS 3
120
121/* Left Modifiers */
122#define PIN_LSHIFT 4
123#define PIN_LCTRL 5
124#define PIN_LALT 17
125#define PIN_LGUI 11
126
127/* Right Modifiers */
128#define PIN_RSHIFT 90
129#define PIN_RCTRL 65
130#define PIN_RALT 49
131#define PIN_FN 55
132
133/* Arrow Keys */
134#define PIN_UP 94
135#define PIN_DOWN 97
136#define PIN_LEFT 95
137#define PIN_RIGHT 79
138
139/* Fn Column */
140#define PIN_DEL 72 // ┳ TOP
141#define PIN_PGUP 75 // ┃
142#define PIN_PGDN 86 // ┃
143#define PIN_END 82 // ┻ BOTTOM
144
145/* Left Side Underglow */
146#define PIN_LED_L01 67 // ┳ TOP
147#define PIN_LED_L02 70 // ┃
148#define PIN_LED_L03 73 // ┃
149#define PIN_LED_L04 76 // ┃
150#define PIN_LED_L05 80 // ┃
151#define PIN_LED_L06 83 // ┃
152#define PIN_LED_L07 87 // ┃
153#define PIN_LED_L08 91 // ┻ BOTTOM
154
155/* Right Side Underglow */
156#define PIN_LED_L11 68 // ┳ TOP
157#define PIN_LED_L12 71 // ┃
158#define PIN_LED_L13 74 // ┃
159#define PIN_LED_L14 77 // ┃
160#define PIN_LED_L15 81 // ┃
161#define PIN_LED_L16 84 // ┃
162#define PIN_LED_L17 88 // ┃
163#define PIN_LED_L18 92 // ┻ BOTTOM
164
165// clang-format on
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/readme.md b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/readme.md
new file mode 100644
index 000000000..f388a3fbf
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/readme.md
@@ -0,0 +1,52 @@
1# @mattgauf's GMMK Pro layout
2
3### `_DEFAULT`
4> *Based on the default ansi layout, this keymap contains the following changes to the default layer.*
5 - Screensaver: `HYPER(F17)`
6 - `KC_PSCR` → `MG_F17`
7 - `KC_DEL` → `KC_HOME`
8
9> *Additionally the encoder will follow new rules when holding a key.*
10 - `KC_GUI` will cycle through applications (macOS variant)
11 - `KC_GUI + KC_ALT` will tap the left and right arrows.
12 - `KC_GUI + KC_SHIFT` will tap Undo and Redo (macOS variant)
13
14### `_EFFECTS`
15> *The function layer is now used for additional layer access, effect keys, and media keys (following the Macbook Pro fn key layout).*
16
17> *Additionally while effects is active, the encoder will only adjust the brightness of the RGB matrix.*
18 - The RGB matrix effect and speed keys are located on the right hand vertical nav column.
19 - `KC_HOME` → `RGB_MOD`
20 - `KC_PGUP` → `RGB_RMOD`
21 - `KC_PGDN` → `RGB_SPI`
22 - `KC_END` → `RGB_SPD`
23 - The RGB matrix Hue, Saturation keys are mapped to the arrow keys.
24 - `KC_UP` → `RGB_SAI`
25 - `KC_DN` → `RGB_SAD`
26 - `KC_LEFT` → `RGB_HUD`
27 - `KC_RIGHT` → `RGB_HUI`
28 - The RGB matrix toggle is intercepted in process_record_user() cycling through the `LED_FLAG` modifiers. (`NONE`, `UNDERGLOW`, `KEYLIGHT`, `ALL`)
29 - `KC_SLSH` → `RGB_TOG`
30 - Hibernate: `HYPER(F18)`
31 - `MG_F17` → `MG_F18`
32
33
34### `_UTILITY`
35*The utility layer is currently used for remapping* `KF_F9` *to* `KC_F12` *&* `MG_F17` *to the dynamic macro keys.*
36 - Playback
37 - `KC_F9` → `DM_PLY1`
38 - `KC_F10` → `DM_PLY2`
39 - Record
40 - `KC_F11` → `DM_REC1`
41 - `KC_F12` → `DM_REC2`
42 - Stop Recording
43 - `MG_F17` → `DM_RSTP`
44
45### `_DFUMODE`
46> *The final layer is used for resetting the board or triggering an immediate shutdown.*
47 - DFU Mode
48 - `KC_ESC` → `RESET`
49 - Shutdown: `HYPER(F19)`
50 - `MG_F17` → `MG_F19`
51 - Encoder press, triggers debug output.
52 - `KC_MUTE` → `DEBUG`
diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/rules.mk b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/rules.mk
new file mode 100644
index 000000000..76e1674d5
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/rules.mk
@@ -0,0 +1,6 @@
1# Build rules
2LIB_SRC += ansi.c
3LIB_SRC += helpers.c
4
5# Overrides
6MOUSEKEY_ENABLE = no # Mouse keys
diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h
index b9961f5c4..e1c124f41 100644
--- a/keyboards/helix/rev2/keymaps/five_rows/config.h
+++ b/keyboards/helix/rev2/keymaps/five_rows/config.h
@@ -29,7 +29,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29 see tmk_core/common/action_tapping.c */ 29 see tmk_core/common/action_tapping.c */
30 30
31#undef OLED_UPDATE_INTERVAL 31#undef OLED_UPDATE_INTERVAL
32#define OLED_UPDATE_INTERVAL 50 32#ifdef DEBUG_MATRIX_SCAN_RATE
33# define OLED_UPDATE_INTERVAL 500
34#else
35# define OLED_UPDATE_INTERVAL 50
36#endif
33 37
34// place overrides here 38// place overrides here
35 39
diff --git a/keyboards/helix/rev2/keymaps/five_rows/matrix_output_unselect_delay.c b/keyboards/helix/rev2/keymaps/five_rows/matrix_output_unselect_delay.c
new file mode 100644
index 000000000..a093afe0a
--- /dev/null
+++ b/keyboards/helix/rev2/keymaps/five_rows/matrix_output_unselect_delay.c
@@ -0,0 +1,31 @@
1/* Copyright 2021 mtei
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
20 /* If none of the keys are pressed,
21 * there is no need to wait for time for the next line. */
22 if (key_pressed) {
23# ifdef MATRIX_IO_DELAY
24# if MATRIX_IO_DELAY > 0
25 wait_us(MATRIX_IO_DELAY);
26# endif
27# else
28 wait_us(30);
29# endif
30 }
31}
diff --git a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c
index 090e8aaec..fcbd81c9b 100644
--- a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c
+++ b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c
@@ -64,6 +64,55 @@ void matrix_update(struct CharacterMatrix *dest,
64} 64}
65# endif 65# endif
66 66
67static char *sprint_decimal(char *buf, int data) {
68 if (data > 9) {
69 buf = sprint_decimal(buf, data/10);
70 }
71 *buf++ = "0123456789"[data%10];
72 *buf = '\0';
73 return buf;
74}
75
76static char *sprint_hex(char *buf, uint32_t data) {
77 if (data > 0xf) {
78 buf = sprint_hex(buf, data/0x10);
79 }
80 *buf++ = "0123456789abcdef"[data & 0xf];
81 *buf = '\0';
82 return buf;
83}
84
85char *sprints(char *buf, char *src) {
86 while (*src) {
87 *buf++ = *src++;
88 }
89 *buf = '\0';
90 return buf;
91}
92
93char *sprintx(char *buf, char *leadstr, uint32_t data) {
94 buf = sprints(buf, leadstr);
95 buf = sprint_hex(buf, data);
96 return buf;
97}
98
99char *sprintd(char *buf, char *leadstr, int data) {
100 buf = sprints(buf, leadstr);
101 buf = sprint_decimal(buf, data);
102 return buf;
103}
104
105char *sprint2d(char *buf, char *leadstr, int data) {
106 buf = sprints(buf, leadstr);
107 if (data > 99) {
108 return sprint_decimal(buf, data);
109 }
110 if (data < 10) {
111 *buf++ = ' ';
112 }
113 return sprint_decimal(buf, data);
114}
115
67# ifdef SSD1306OLED 116# ifdef SSD1306OLED
68static void render_logo(struct CharacterMatrix *matrix) { 117static void render_logo(struct CharacterMatrix *matrix) {
69# else 118# else
@@ -76,20 +125,35 @@ static void render_logo(void) {
76 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, 125 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
77 0}; 126 0};
78 oled_write_P(helix_logo, false); 127 oled_write_P(helix_logo, false);
79# ifdef RGBLIGHT_ENABLE
80 char buf[30]; 128 char buf[30];
129 char *bufp;
130# ifdef RGBLIGHT_ENABLE
81 if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { 131 if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) {
82 snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", 132 bufp = sprint2d(buf, " LED ", rgblight_get_mode());
83 rgblight_get_mode(), 133# ifdef DEBUG_MATRIX_SCAN_RATE
84 rgblight_get_hue()/RGBLIGHT_HUE_STEP, 134 bufp = sprintd(bufp, " scan:", get_matrix_scan_rate());
85 rgblight_get_sat()/RGBLIGHT_SAT_STEP, 135# else
86 rgblight_get_val()/RGBLIGHT_VAL_STEP); 136 bufp = sprintd(bufp, ": ", rgblight_get_hue()/RGBLIGHT_HUE_STEP);
137 bufp = sprintd(bufp, ",", rgblight_get_sat()/RGBLIGHT_SAT_STEP);
138 bufp = sprintd(bufp, ",", rgblight_get_val()/RGBLIGHT_VAL_STEP);
139 bufp = sprints(bufp, " ");
140# endif
87 oled_write(buf, false); 141 oled_write(buf, false);
88# ifndef SSD1306OLED 142# ifndef SSD1306OLED
89 } else { 143 } else {
144# ifdef DEBUG_MATRIX_SCAN_RATE
145 bufp = sprintd(buf, " scan:", get_matrix_scan_rate());
146 oled_write(buf, false);
147# endif
90 oled_write_P( PSTR("\n"), false); 148 oled_write_P( PSTR("\n"), false);
91# endif 149# endif
92 } 150 }
151# else
152# ifdef DEBUG_MATRIX_SCAN_RATE
153 bufp = sprintd(buf, " scan:", get_matrix_scan_rate());
154 bufp = sprints(bufp, " ");
155 oled_write(buf, false);
156# endif
93# endif 157# endif
94} 158}
95 159
@@ -142,6 +206,11 @@ void render_status(void) {
142 int name_num; 206 int name_num;
143 uint32_t lstate; 207 uint32_t lstate;
144 oled_write_P(layer_names[current_default_layer], false); 208 oled_write_P(layer_names[current_default_layer], false);
209# ifdef DEBUG_MATRIX_SCAN_RATE
210 char buf[16];
211 sprintd(buf, " scan:", get_matrix_scan_rate());
212 oled_write(buf, false);
213# endif
145 oled_write_P(PSTR("\n"), false); 214 oled_write_P(PSTR("\n"), false);
146 for (lstate = layer_state, name_num = 0; 215 for (lstate = layer_state, name_num = 0;
147 lstate && name_num < sizeof(layer_names)/sizeof(char *); 216 lstate && name_num < sizeof(layer_names)/sizeof(char *);
@@ -152,14 +221,13 @@ void render_status(void) {
152 } 221 }
153 } 222 }
154 } 223 }
224 oled_write_P(PSTR("\n"), false);
155 225
156 // Host Keyboard LED Status 226 // Host Keyboard LED Status
157 char led[40]; 227 led_t led_state = host_keyboard_led_state();
158 snprintf(led, sizeof(led), "\n%s %s %s", 228 oled_write_P(led_state.num_lock ? PSTR("NUMLOCK ") : PSTR(" "), false);
159 (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ", 229 oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
160 (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ", 230 oled_write_P(led_state.scroll_lock ? PSTR("SCLK ") : PSTR(" "), false);
161 (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " ");
162 oled_write(led, false);
163} 231}
164 232
165# ifdef SSD1306OLED 233# ifdef SSD1306OLED
diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk
index 5f7e4668f..8a091605a 100644
--- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk
+++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk
@@ -25,9 +25,11 @@ HELIX_ROWS = 5 # Helix Rows is 4 or 5
25# LED_ANIMATIONS = yes # LED animations 25# LED_ANIMATIONS = yes # LED animations
26# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) 26# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
27 27
28CUSTOM_DELAY = yes
29
28ifneq ($(strip $(HELIX)),) 30ifneq ($(strip $(HELIX)),)
29 define KEYMAP_OPTION_PARSE 31 define KEYMAP_OPTION_PARSE
30 # parse 'dispoff', 'consloe', 'na', 'ani', 'mini-ani' 32 # parse 'dispoff', 'consloe', 'na', 'ani', 'mini-ani', 'scan-api',
31 $(if $(SHOW_PARCE),$(info parse -$1-)) #debug 33 $(if $(SHOW_PARCE),$(info parse -$1-)) #debug
32 ifeq ($(strip $1),dispoff) 34 ifeq ($(strip $1),dispoff)
33 OLED_ENABLE = no 35 OLED_ENABLE = no
@@ -72,6 +74,11 @@ ifneq ($(strip $(HELIX)),)
72 ifneq ($(filter nolto no-lto no_lto,$(strip $1)),) 74 ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
73 LTO_ENABLE = no 75 LTO_ENABLE = no
74 endif 76 endif
77 ifeq ($(strip $1),scan-api)
78 # use DEBUG_MATRIX_SCAN_RATE
79 # see docs/newbs_testing_debugging.md
80 DEBUG_MATRIX_SCAN_RATE_ENABLE = api
81 endif
75 endef # end of KEYMAP_OPTION_PARSE 82 endef # end of KEYMAP_OPTION_PARSE
76 83
77 COMMA=, 84 COMMA=,
@@ -95,3 +102,7 @@ endif
95ifeq ($(strip $(OLED_ENABLE)), yes) 102ifeq ($(strip $(OLED_ENABLE)), yes)
96 SRC += oled_display.c 103 SRC += oled_display.c
97endif 104endif
105
106ifeq ($(strip $(CUSTOM_DELAY)),yes)
107 SRC += matrix_output_unselect_delay.c
108endif
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
index b9961f5c4..e1c124f41 100644
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
@@ -29,7 +29,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29 see tmk_core/common/action_tapping.c */ 29 see tmk_core/common/action_tapping.c */
30 30
31#undef OLED_UPDATE_INTERVAL 31#undef OLED_UPDATE_INTERVAL
32#define OLED_UPDATE_INTERVAL 50 32#ifdef DEBUG_MATRIX_SCAN_RATE
33# define OLED_UPDATE_INTERVAL 500
34#else
35# define OLED_UPDATE_INTERVAL 50
36#endif
33 37
34// place overrides here 38// place overrides here
35 39
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c
new file mode 100644
index 000000000..a093afe0a
--- /dev/null
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c
@@ -0,0 +1,31 @@
1/* Copyright 2021 mtei
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
20 /* If none of the keys are pressed,
21 * there is no need to wait for time for the next line. */
22 if (key_pressed) {
23# ifdef MATRIX_IO_DELAY
24# if MATRIX_IO_DELAY > 0
25 wait_us(MATRIX_IO_DELAY);
26# endif
27# else
28 wait_us(30);
29# endif
30 }
31}
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c
index 090e8aaec..fcbd81c9b 100644
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c
@@ -64,6 +64,55 @@ void matrix_update(struct CharacterMatrix *dest,
64} 64}
65# endif 65# endif
66 66
67static char *sprint_decimal(char *buf, int data) {
68 if (data > 9) {
69 buf = sprint_decimal(buf, data/10);
70 }
71 *buf++ = "0123456789"[data%10];
72 *buf = '\0';
73 return buf;
74}
75
76static char *sprint_hex(char *buf, uint32_t data) {
77 if (data > 0xf) {
78 buf = sprint_hex(buf, data/0x10);
79 }
80 *buf++ = "0123456789abcdef"[data & 0xf];
81 *buf = '\0';
82 return buf;
83}
84
85char *sprints(char *buf, char *src) {
86 while (*src) {
87 *buf++ = *src++;
88 }
89 *buf = '\0';
90 return buf;
91}
92
93char *sprintx(char *buf, char *leadstr, uint32_t data) {
94 buf = sprints(buf, leadstr);
95 buf = sprint_hex(buf, data);
96 return buf;
97}
98
99char *sprintd(char *buf, char *leadstr, int data) {
100 buf = sprints(buf, leadstr);
101 buf = sprint_decimal(buf, data);
102 return buf;
103}
104
105char *sprint2d(char *buf, char *leadstr, int data) {
106 buf = sprints(buf, leadstr);
107 if (data > 99) {
108 return sprint_decimal(buf, data);
109 }
110 if (data < 10) {
111 *buf++ = ' ';
112 }
113 return sprint_decimal(buf, data);
114}
115
67# ifdef SSD1306OLED 116# ifdef SSD1306OLED
68static void render_logo(struct CharacterMatrix *matrix) { 117static void render_logo(struct CharacterMatrix *matrix) {
69# else 118# else
@@ -76,20 +125,35 @@ static void render_logo(void) {
76 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, 125 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
77 0}; 126 0};
78 oled_write_P(helix_logo, false); 127 oled_write_P(helix_logo, false);
79# ifdef RGBLIGHT_ENABLE
80 char buf[30]; 128 char buf[30];
129 char *bufp;
130# ifdef RGBLIGHT_ENABLE
81 if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { 131 if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) {
82 snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", 132 bufp = sprint2d(buf, " LED ", rgblight_get_mode());
83 rgblight_get_mode(), 133# ifdef DEBUG_MATRIX_SCAN_RATE
84 rgblight_get_hue()/RGBLIGHT_HUE_STEP, 134 bufp = sprintd(bufp, " scan:", get_matrix_scan_rate());
85 rgblight_get_sat()/RGBLIGHT_SAT_STEP, 135# else
86 rgblight_get_val()/RGBLIGHT_VAL_STEP); 136 bufp = sprintd(bufp, ": ", rgblight_get_hue()/RGBLIGHT_HUE_STEP);
137 bufp = sprintd(bufp, ",", rgblight_get_sat()/RGBLIGHT_SAT_STEP);
138 bufp = sprintd(bufp, ",", rgblight_get_val()/RGBLIGHT_VAL_STEP);
139 bufp = sprints(bufp, " ");
140# endif
87 oled_write(buf, false); 141 oled_write(buf, false);
88# ifndef SSD1306OLED 142# ifndef SSD1306OLED
89 } else { 143 } else {
144# ifdef DEBUG_MATRIX_SCAN_RATE
145 bufp = sprintd(buf, " scan:", get_matrix_scan_rate());
146 oled_write(buf, false);
147# endif
90 oled_write_P( PSTR("\n"), false); 148 oled_write_P( PSTR("\n"), false);
91# endif 149# endif
92 } 150 }
151# else
152# ifdef DEBUG_MATRIX_SCAN_RATE
153 bufp = sprintd(buf, " scan:", get_matrix_scan_rate());
154 bufp = sprints(bufp, " ");
155 oled_write(buf, false);
156# endif
93# endif 157# endif
94} 158}
95 159
@@ -142,6 +206,11 @@ void render_status(void) {
142 int name_num; 206 int name_num;
143 uint32_t lstate; 207 uint32_t lstate;
144 oled_write_P(layer_names[current_default_layer], false); 208 oled_write_P(layer_names[current_default_layer], false);
209# ifdef DEBUG_MATRIX_SCAN_RATE
210 char buf[16];
211 sprintd(buf, " scan:", get_matrix_scan_rate());
212 oled_write(buf, false);
213# endif
145 oled_write_P(PSTR("\n"), false); 214 oled_write_P(PSTR("\n"), false);
146 for (lstate = layer_state, name_num = 0; 215 for (lstate = layer_state, name_num = 0;
147 lstate && name_num < sizeof(layer_names)/sizeof(char *); 216 lstate && name_num < sizeof(layer_names)/sizeof(char *);
@@ -152,14 +221,13 @@ void render_status(void) {
152 } 221 }
153 } 222 }
154 } 223 }
224 oled_write_P(PSTR("\n"), false);
155 225
156 // Host Keyboard LED Status 226 // Host Keyboard LED Status
157 char led[40]; 227 led_t led_state = host_keyboard_led_state();
158 snprintf(led, sizeof(led), "\n%s %s %s", 228 oled_write_P(led_state.num_lock ? PSTR("NUMLOCK ") : PSTR(" "), false);
159 (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ", 229 oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
160 (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ", 230 oled_write_P(led_state.scroll_lock ? PSTR("SCLK ") : PSTR(" "), false);
161 (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " ");
162 oled_write(led, false);
163} 231}
164 232
165# ifdef SSD1306OLED 233# ifdef SSD1306OLED
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
index d10972bbd..b0cca7912 100644
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
@@ -14,9 +14,11 @@ ENCODER_ENABLE = no
14LTO_ENABLE = no # if firmware size over limit, try this option 14LTO_ENABLE = no # if firmware size over limit, try this option
15LED_ANIMATIONS = yes 15LED_ANIMATIONS = yes
16 16
17CUSTOM_DELAY = yes
18
17ifneq ($(strip $(HELIX)),) 19ifneq ($(strip $(HELIX)),)
18 define KEYMAP_OPTION_PARSE 20 define KEYMAP_OPTION_PARSE
19 # parse 'dispoff', 'consle', 'back', 'oled', 'no-ani', 'mini-ani', 'lto', 'no-lto', 'no-enc', 'scan' 21 # parse 'dispoff', 'consle', 'back', 'oled', 'no-ani', 'mini-ani', 'lto', 'no-lto', 'no-enc', 'scan', 'scan-api'
20 $(if $(SHOW_PARCE),$(info parse .$1.)) #debug 22 $(if $(SHOW_PARCE),$(info parse .$1.)) #debug
21 ifeq ($(strip $1),dispoff) 23 ifeq ($(strip $1),dispoff)
22 OLED_ENABLE = no 24 OLED_ENABLE = no
@@ -63,6 +65,11 @@ ifneq ($(strip $(HELIX)),)
63 # see docs/newbs_testing_debugging.md 65 # see docs/newbs_testing_debugging.md
64 DEBUG_MATRIX_SCAN_RATE_ENABLE = yes 66 DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
65 endif 67 endif
68 ifeq ($(strip $1),scan-api)
69 # use DEBUG_MATRIX_SCAN_RATE
70 # see docs/newbs_testing_debugging.md
71 DEBUG_MATRIX_SCAN_RATE_ENABLE = api
72 endif
66 endef # end of KEYMAP_OPTION_PARSE 73 endef # end of KEYMAP_OPTION_PARSE
67 74
68 COMMA=, 75 COMMA=,
@@ -80,6 +87,10 @@ ifeq ($(strip $(LED_ANIMATIONS)), mini)
80 OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1 87 OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1
81endif 88endif
82 89
90ifeq ($(strip $(CUSTOM_DELAY)),yes)
91 SRC += matrix_output_unselect_delay.c
92endif
93
83ifeq ($(strip $(DEBUG_CONFIG)), yes) 94ifeq ($(strip $(DEBUG_CONFIG)), yes)
84 OPT_DEFS += -DDEBUG_CONFIG 95 OPT_DEFS += -DDEBUG_CONFIG
85endif 96endif
diff --git a/keyboards/massdrop/ctrl/keymaps/r-pufky/config.h b/keyboards/massdrop/ctrl/keymaps/r-pufky/config.h
index ddcd81630..e536ebdd8 100644
--- a/keyboards/massdrop/ctrl/keymaps/r-pufky/config.h
+++ b/keyboards/massdrop/ctrl/keymaps/r-pufky/config.h
@@ -24,3 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR 24#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
25#define RGB_MATRIX_STARTUP_VAL 100 25#define RGB_MATRIX_STARTUP_VAL 100
26#define HSV_BACKLIGHT_COLOR HSV_BLUE 26#define HSV_BACKLIGHT_COLOR HSV_BLUE
27#define HSV_GAME_COLOR 170, 255, 192 // darker blue
28#define HSV_CONTROL_COLOR 0, 255, 192 // darker red
diff --git a/keyboards/massdrop/ctrl/keymaps/r-pufky/keymap.c b/keyboards/massdrop/ctrl/keymaps/r-pufky/keymap.c
index d523dba89..824725756 100644
--- a/keyboards/massdrop/ctrl/keymaps/r-pufky/keymap.c
+++ b/keyboards/massdrop/ctrl/keymaps/r-pufky/keymap.c
@@ -16,6 +16,9 @@
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19#define BASE 0
20#define GAME 1
21#define CTRL 2
19#define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT) 22#define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT)
20#define MODS_CTRL (get_mods() & MOD_MASK_CTRL) 23#define MODS_CTRL (get_mods() & MOD_MASK_CTRL)
21#define MODS_ALT (get_mods() & MOD_MASK_ALT) 24#define MODS_ALT (get_mods() & MOD_MASK_ALT)
@@ -43,34 +46,60 @@ enum ctrl_keycodes {
43}; 46};
44 47
45const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 48const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 [0] = LAYOUT( 49 [BASE] = LAYOUT(
47 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, 50 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,
48 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_INS, KC_HOME, KC_PGUP, 51 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_INS, KC_HOME, KC_PGUP,
49 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, 52 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,
50 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 53 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
51 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, 54 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,
52 KC_NLCK, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_F24, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 55 KC_NLCK, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(CTRL), KC_F24, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
53 ), 56 ),
54 [1] = LAYOUT( 57 [GAME] = LAYOUT(
55 KC_EJCT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, _______, _______, 58 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,
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, 59 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_INS, KC_HOME, KC_PGUP,
57 _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, 60 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,
58 KC_CAPS, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, 61 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
59 _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_BRIU, 62 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,
60 _______, _______, _______, _______, _______, _______, _______, _______, KC_MRWD, KC_BRID, KC_MFFD 63 KC_HOME, KC_END, KC_LALT, KC_SPC, KC_RALT, MO(CTRL), KC_F24, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
64 ),
65 [CTRL] = LAYOUT(
66 KC_EJCT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, _______, _______,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU,
68 _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, TO(BASE), TO(GAME), _______, KC_MPRV, KC_MNXT, KC_VOLD,
69 KC_CAPS, RGB_RMOD, RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______,
70 _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_BRIU,
71 _______, _______, _______, _______, _______, _______, _______, _______, KC_MRWD, KC_BRID, KC_MFFD
61 ), 72 ),
62}; 73};
63 74
64// Init keyboard static color with underglow off. 75// Init keyboard static color with underglow off.
65void matrix_init_user(void) { 76void matrix_init_user(void) {
66 rgblight_sethsv(HSV_BACKLIGHT_COLOR); 77 rgblight_sethsv(HSV_BACKLIGHT_COLOR);
67 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); 78 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
68}; 79};
69 80
70// Runs constantly in the background, in a loop. 81// Runs constantly in the background, in a loop.
71void matrix_scan_user(void) { 82void matrix_scan_user(void) {
72}; 83};
73 84
85// Set backlight color based on active layer
86layer_state_t layer_state_set_user(layer_state_t state) {
87 switch (get_highest_layer(state)) {
88 case GAME: {
89 rgblight_sethsv_noeeprom(HSV_GAME_COLOR);
90 break;
91 }
92 case CTRL: {
93 rgblight_sethsv_noeeprom(HSV_CONTROL_COLOR);
94 break;
95 }
96 default:
97 rgblight_sethsv_noeeprom(HSV_BACKLIGHT_COLOR);
98 break;
99 }
100 return state;
101}
102
74bool process_record_user(uint16_t keycode, keyrecord_t *record) { 103bool process_record_user(uint16_t keycode, keyrecord_t *record) {
75 static uint32_t key_timer; 104 static uint32_t key_timer;
76 105
@@ -116,28 +145,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
116 return false; 145 return false;
117 case RGB_TOG: 146 case RGB_TOG:
118 if (record->event.pressed) { 147 if (record->event.pressed) {
119 switch (rgb_matrix_get_flags()) { 148 switch (rgb_matrix_get_flags()) {
120 case LED_FLAG_ALL: { 149 case LED_FLAG_ALL: {
121 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); 150 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
122 rgb_matrix_set_color_all(RGB_OFF); 151 rgb_matrix_set_color_all(RGB_OFF);
123 } 152 }
124 break; 153 break;
125 case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { 154 case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
126 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); 155 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
127 rgb_matrix_set_color_all(RGB_OFF); 156 rgb_matrix_set_color_all(RGB_OFF);
128 } 157 }
129 break; 158 break;
130 case LED_FLAG_UNDERGLOW: { 159 case LED_FLAG_UNDERGLOW: {
131 rgb_matrix_set_flags(LED_FLAG_NONE); 160 rgb_matrix_set_flags(LED_FLAG_NONE);
132 rgb_matrix_disable_noeeprom(); 161 rgb_matrix_disable_noeeprom();
133 } 162 }
134 break; 163 break;
135 default: { 164 default: {
136 rgb_matrix_set_flags(LED_FLAG_ALL); 165 rgb_matrix_set_flags(LED_FLAG_ALL);
137 rgb_matrix_enable_noeeprom(); 166 rgb_matrix_enable_noeeprom();
138 } 167 }
139 break; 168 break;
140 } 169 }
141 } 170 }
142 return false; 171 return false;
143 default: 172 default:
diff --git a/keyboards/massdrop/ctrl/keymaps/r-pufky/readme.md b/keyboards/massdrop/ctrl/keymaps/r-pufky/readme.md
index 515189259..38075b3a0 100644
--- a/keyboards/massdrop/ctrl/keymaps/r-pufky/readme.md
+++ b/keyboards/massdrop/ctrl/keymaps/r-pufky/readme.md
@@ -1,6 +1,7 @@
1# Massdrop Ctrl r-pufky 1# Massdrop Ctrl r-pufky
2 2
3Gaming QOL improvments; enabling useful keys for left hand & in-game overlay usage. 3Gaming QOL improvments; enabling useful keys for left hand & in-game overlay
4usage.
4 5
5## Layers 6## Layers
6 7
@@ -8,21 +9,36 @@ Gaming QOL improvments; enabling useful keys for left hand & in-game overlay usa
8 9
9![Typing Layer](https://i.imgur.com/qEBaupV.png) 10![Typing Layer](https://i.imgur.com/qEBaupV.png)
10 11
11Layer optimized to enable useful keys for gaming without changing typing state, as well as specific 12Layer optimized to enable useful keys for typing and casual gaming without
12in-game overlay keys. 13changing typing state, as well as specific in-game overlay keys.
13 14
14* Left Ctrl: Easier control key usage without always setting capslock. 15* Left Ctrl: Easier control key usage without always setting capslock.
15* Num Lock: Unique non visible character key for additional left-hand input options in game. 16* Num Lock: Unique non visible character key for additional left-hand input
16* Fn: Enable layer 1, temporal. 17 options in game.
17* F24: Unique non-visible F24 key; no windows function. Map to in-game overlays. 18* Fn: Enable Control layer, temporal.
19* F24: Non-visible F24 key; no windows function. Map to in-game overlays.
20
21### Gaming Layer
22
23![Gaming Layer](https://i.imgur.com/q4wGbFQ.png)
24
25Replaces super key with additional non-printing inputs.
26
27* Home: Non visible character key for additional input options in game.
28* End: Non visible character key for additional input options in game.
29* Left Ctrl: Easier control key usage without always setting capslock.
30* Fn: Enable Control layer, temporal.
31* F24: Non-visible F24 key; no windows function. Map to in-game overlays.
18 32
19### Function Layer 33### Control Layer
20 34
21![Function Layer](https://i.imgur.com/2qGNwVQ.png) 35![Function Layer](https://i.imgur.com/7Nalcyp.png)
22 36
23* Purple: Media keys. Note CD Eject on Escape, and OSX Prev/Next on Arrows. 37* Purple: Media keys. Note CD Eject on Escape, and OSX Prev/Next on Arrows.
24* Blue: Keyboard adminstration. Toggle NKRO (N Key Rollover) and enable bootloader. 38* Blue: Keyboard adminstration. Toggle NKRO (N Key Rollover) and enable
39 bootloader.
25* Orange: RGB Controls. 40* Orange: RGB Controls.
41* Green: Toggle gaming layer.
26* Capslock: Now requires the use of the function key. 42* Capslock: Now requires the use of the function key.
27* F13-F24: Extended function keys. 43* F13-F24: Extended function keys.
28* Bright+/-: Monitor Brightness. 44* Bright+/-: Monitor Brightness.
diff --git a/keyboards/mode/m65s/config.h b/keyboards/mode/m65s/config.h
index ba6edb8a0..e2e553bca 100644
--- a/keyboards/mode/m65s/config.h
+++ b/keyboards/mode/m65s/config.h
@@ -71,3 +71,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
71//#define NO_ACTION_ONESHOT 71//#define NO_ACTION_ONESHOT
72//#define NO_ACTION_MACRO 72//#define NO_ACTION_MACRO
73//#define NO_ACTION_FUNCTION 73//#define NO_ACTION_FUNCTION
74
75#define TAP_CODE_DELAY 50
diff --git a/keyboards/mode/m65s/rules.mk b/keyboards/mode/m65s/rules.mk
index a9ba596d5..c74e1db16 100644
--- a/keyboards/mode/m65s/rules.mk
+++ b/keyboards/mode/m65s/rules.mk
@@ -6,8 +6,8 @@ MCU = STM32F401
6# 6#
7BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration 7BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
8MOUSEKEY_ENABLE = no # Mouse keys 8MOUSEKEY_ENABLE = no # Mouse keys
9EXTRAKEY_ENABLE = no # Audio control and System control 9EXTRAKEY_ENABLE = yes # Audio control and System control
10CONSOLE_ENABLE = yes # Console for debug 10CONSOLE_ENABLE = no # Console for debug
11COMMAND_ENABLE = no # Commands for debug and configuration 11COMMAND_ENABLE = no # Commands for debug and configuration
12# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 12# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/moonlander/halconf.h b/keyboards/moonlander/halconf.h
new file mode 100644
index 000000000..46b53b1a7
--- /dev/null
+++ b/keyboards/moonlander/halconf.h
@@ -0,0 +1,22 @@
1/* Copyright 2021 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <https://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#define HAL_USE_I2C TRUE
19#define HAL_USE_GPT TRUE
20#define HAL_USE_DAC TRUE
21
22#include_next <halconf.h>
diff --git a/keyboards/moonlander/mcuconf.h b/keyboards/moonlander/mcuconf.h
new file mode 100644
index 000000000..69f458a93
--- /dev/null
+++ b/keyboards/moonlander/mcuconf.h
@@ -0,0 +1,39 @@
1/* Copyright 2021 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <https://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include_next "mcuconf.h"
20
21// for i2c expander, and ISSI
22#undef STM32_I2C_USE_I2C1
23#define STM32_I2C_USE_I2C1 TRUE
24
25// for future hardwar
26#undef STM32_I2C_USE_I2C2
27#define STM32_I2C_USE_I2C2 TRUE
28
29// for audio
30#undef STM32_DAC_USE_DAC1_CH1
31#define STM32_DAC_USE_DAC1_CH1 TRUE
32#undef STM32_DAC_USE_DAC1_CH2
33#define STM32_DAC_USE_DAC1_CH2 TRUE
34#undef STM32_GPT_USE_TIM6
35#define STM32_GPT_USE_TIM6 TRUE
36#undef STM32_GPT_USE_TIM7
37#define STM32_GPT_USE_TIM7 TRUE
38#undef STM32_GPT_USE_TIM8
39#define STM32_GPT_USE_TIM8 TRUE
diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk
index 557c2c465..23bf7b708 100644
--- a/keyboards/moonlander/rules.mk
+++ b/keyboards/moonlander/rules.mk
@@ -1,6 +1,5 @@
1# MCU name 1# MCU name
2MCU = STM32F303 2MCU = STM32F303
3BOARD = QMK_PROTON_C
4 3
5# Bootloader selection 4# Bootloader selection
6BOOTLOADER = stm32-dfu 5BOOTLOADER = stm32-dfu
@@ -8,7 +7,7 @@ BOOTLOADER = stm32-dfu
8# Build Options 7# Build Options
9# change yes to no to disable 8# change yes to no to disable
10# 9#
11BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite 10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
12MOUSEKEY_ENABLE = yes # Mouse keys 11MOUSEKEY_ENABLE = yes # Mouse keys
13EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
14CONSOLE_ENABLE = yes # Console for debug 13CONSOLE_ENABLE = yes # Console for debug
diff --git a/keyboards/nix_studio/oxalys80/info.json b/keyboards/nix_studio/oxalys80/info.json
index 73277b55a..d2fd76597 100644
--- a/keyboards/nix_studio/oxalys80/info.json
+++ b/keyboards/nix_studio/oxalys80/info.json
@@ -198,6 +198,101 @@
198 {"label":"\u2192", "x":17.25, "y":5.5} 198 {"label":"\u2192", "x":17.25, "y":5.5}
199 ] 199 ]
200 }, 200 },
201 "LAYOUT_tkl_ansi_tsangan": {
202 "layout": [
203 {"label":"Esc", "x":0, "y":0},
204 {"label":"F1", "x":2, "y":0},
205 {"label":"F2", "x":3, "y":0},
206 {"label":"F3", "x":4, "y":0},
207 {"label":"F4", "x":5, "y":0},
208 {"label":"F5", "x":6.5, "y":0},
209 {"label":"F6", "x":7.5, "y":0},
210 {"label":"F7", "x":8.5, "y":0},
211 {"label":"F8", "x":9.5, "y":0},
212 {"label":"F9", "x":11, "y":0},
213 {"label":"F10", "x":12, "y":0},
214 {"label":"F11", "x":13, "y":0},
215 {"label":"F12", "x":14, "y":0},
216 {"label":"PrtSc", "x":15.25, "y":0},
217 {"label":"Scroll Lock", "x":16.25, "y":0},
218 {"label":"Pause", "x":17.25, "y":0},
219
220 {"label":"~", "x":0, "y":1.5},
221 {"label":"!", "x":1, "y":1.5},
222 {"label":"@", "x":2, "y":1.5},
223 {"label":"#", "x":3, "y":1.5},
224 {"label":"$", "x":4, "y":1.5},
225 {"label":"%", "x":5, "y":1.5},
226 {"label":"^", "x":6, "y":1.5},
227 {"label":"&", "x":7, "y":1.5},
228 {"label":"*", "x":8, "y":1.5},
229 {"label":"(", "x":9, "y":1.5},
230 {"label":")", "x":10, "y":1.5},
231 {"label":"_", "x":11, "y":1.5},
232 {"label":"+", "x":12, "y":1.5},
233 {"label":"Bksp", "x":13, "y":1.5, "w":2},
234 {"label":"Insert", "x":15.25, "y":1.5},
235 {"label":"Home", "x":16.25, "y":1.5},
236 {"label":"PgUp", "x":17.25, "y":1.5},
237
238 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
239 {"label":"Q", "x":1.5, "y":2.5},
240 {"label":"W", "x":2.5, "y":2.5},
241 {"label":"E", "x":3.5, "y":2.5},
242 {"label":"R", "x":4.5, "y":2.5},
243 {"label":"T", "x":5.5, "y":2.5},
244 {"label":"Y", "x":6.5, "y":2.5},
245 {"label":"U", "x":7.5, "y":2.5},
246 {"label":"I", "x":8.5, "y":2.5},
247 {"label":"O", "x":9.5, "y":2.5},
248 {"label":"P", "x":10.5, "y":2.5},
249 {"label":"{", "x":11.5, "y":2.5},
250 {"label":"}", "x":12.5, "y":2.5},
251 {"label":"|", "x":13.5, "y":2.5, "w":1.5},
252 {"label":"Delete", "x":15.25, "y":2.5},
253 {"label":"End", "x":16.25, "y":2.5},
254 {"label":"PgDn", "x":17.25, "y":2.5},
255
256 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
257 {"label":"A", "x":1.75, "y":3.5},
258 {"label":"S", "x":2.75, "y":3.5},
259 {"label":"D", "x":3.75, "y":3.5},
260 {"label":"F", "x":4.75, "y":3.5},
261 {"label":"G", "x":5.75, "y":3.5},
262 {"label":"H", "x":6.75, "y":3.5},
263 {"label":"J", "x":7.75, "y":3.5},
264 {"label":"K", "x":8.75, "y":3.5},
265 {"label":"L", "x":9.75, "y":3.5},
266 {"label":":", "x":10.75, "y":3.5},
267 {"label":"\"", "x":11.75, "y":3.5},
268 {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
269
270 {"label":"Shift", "x":0, "y":4.5, "w":2.25},
271 {"label":"Z", "x":2.25, "y":4.5},
272 {"label":"X", "x":3.25, "y":4.5},
273 {"label":"C", "x":4.25, "y":4.5},
274 {"label":"V", "x":5.25, "y":4.5},
275 {"label":"B", "x":6.25, "y":4.5},
276 {"label":"N", "x":7.25, "y":4.5},
277 {"label":"M", "x":8.25, "y":4.5},
278 {"label":"<", "x":9.25, "y":4.5},
279 {"label":">", "x":10.25, "y":4.5},
280 {"label":"?", "x":11.25, "y":4.5},
281 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
282 {"label":"\u2191", "x":16.25, "y":4.5},
283
284 {"label":"Ctrl", "x":0, "y":5.5, "w":1.5},
285 {"label":"Win", "x":1.5, "y":5.5},
286 {"label":"Alt", "x":2.5, "y":5.5, "w":1.5},
287 { "x":4, "y":5.5, "w":7},
288 {"label":"Win", "x":11, "y":5.5, "w":1.5},
289 {"label":"Menu", "x":12.5, "y":5.5},
290 {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5},
291 {"label":"\u2190", "x":15.25, "y":5.5},
292 {"label":"\u2193", "x":16.25, "y":5.5},
293 {"label":"\u2192", "x":17.25, "y":5.5}
294 ]
295 },
201 "LAYOUT_tkl_ansi_wkl": { 296 "LAYOUT_tkl_ansi_wkl": {
202 "layout": [ 297 "layout": [
203 {"label":"Esc", "x":0, "y":0}, 298 {"label":"Esc", "x":0, "y":0},
@@ -290,6 +385,293 @@
290 {"label":"\u2193", "x":16.25, "y":5.5}, 385 {"label":"\u2193", "x":16.25, "y":5.5},
291 {"label":"\u2192", "x":17.25, "y":5.5} 386 {"label":"\u2192", "x":17.25, "y":5.5}
292 ] 387 ]
388 },
389 "LAYOUT_tkl_iso": {
390 "layout": [
391 {"label":"Esc", "x":0, "y":0},
392 {"label":"F1", "x":2, "y":0},
393 {"label":"F2", "x":3, "y":0},
394 {"label":"F3", "x":4, "y":0},
395 {"label":"F4", "x":5, "y":0},
396 {"label":"F5", "x":6.5, "y":0},
397 {"label":"F6", "x":7.5, "y":0},
398 {"label":"F7", "x":8.5, "y":0},
399 {"label":"F8", "x":9.5, "y":0},
400 {"label":"F9", "x":11, "y":0},
401 {"label":"F10", "x":12, "y":0},
402 {"label":"F11", "x":13, "y":0},
403 {"label":"F12", "x":14, "y":0},
404 {"label":"PrtSc", "x":15.25, "y":0},
405 {"label":"Scroll Lock", "x":16.25, "y":0},
406 {"label":"Pause", "x":17.25, "y":0},
407
408 {"label":"~", "x":0, "y":1.5},
409 {"label":"!", "x":1, "y":1.5},
410 {"label":"@", "x":2, "y":1.5},
411 {"label":"#", "x":3, "y":1.5},
412 {"label":"$", "x":4, "y":1.5},
413 {"label":"%", "x":5, "y":1.5},
414 {"label":"^", "x":6, "y":1.5},
415 {"label":"&", "x":7, "y":1.5},
416 {"label":"*", "x":8, "y":1.5},
417 {"label":"(", "x":9, "y":1.5},
418 {"label":")", "x":10, "y":1.5},
419 {"label":"_", "x":11, "y":1.5},
420 {"label":"+", "x":12, "y":1.5},
421 {"label":"Bksp", "x":13, "y":1.5, "w":2},
422 {"label":"Insert", "x":15.25, "y":1.5},
423 {"label":"Home", "x":16.25, "y":1.5},
424 {"label":"PgUp", "x":17.25, "y":1.5},
425
426 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
427 {"label":"Q", "x":1.5, "y":2.5},
428 {"label":"W", "x":2.5, "y":2.5},
429 {"label":"E", "x":3.5, "y":2.5},
430 {"label":"R", "x":4.5, "y":2.5},
431 {"label":"T", "x":5.5, "y":2.5},
432 {"label":"Y", "x":6.5, "y":2.5},
433 {"label":"U", "x":7.5, "y":2.5},
434 {"label":"I", "x":8.5, "y":2.5},
435 {"label":"O", "x":9.5, "y":2.5},
436 {"label":"P", "x":10.5, "y":2.5},
437 {"label":"{", "x":11.5, "y":2.5},
438 {"label":"}", "x":12.5, "y":2.5},
439 {"label":"Delete", "x":15.25, "y":2.5},
440 {"label":"End", "x":16.25, "y":2.5},
441 {"label":"PgDn", "x":17.25, "y":2.5},
442
443 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
444 {"label":"A", "x":1.75, "y":3.5},
445 {"label":"S", "x":2.75, "y":3.5},
446 {"label":"D", "x":3.75, "y":3.5},
447 {"label":"F", "x":4.75, "y":3.5},
448 {"label":"G", "x":5.75, "y":3.5},
449 {"label":"H", "x":6.75, "y":3.5},
450 {"label":"J", "x":7.75, "y":3.5},
451 {"label":"K", "x":8.75, "y":3.5},
452 {"label":"L", "x":9.75, "y":3.5},
453 {"label":":", "x":10.75, "y":3.5},
454 {"label":"\"", "x":11.75, "y":3.5},
455 {"label":"~", "x":12.75, "y":3.5},
456 {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
457
458 {"label":"Shift", "x":0, "y":4.5, "w":1.25},
459 {"label":"NUBS", "x":1.25, "y":4.5},
460 {"label":"Z", "x":2.25, "y":4.5},
461 {"label":"X", "x":3.25, "y":4.5},
462 {"label":"C", "x":4.25, "y":4.5},
463 {"label":"V", "x":5.25, "y":4.5},
464 {"label":"B", "x":6.25, "y":4.5},
465 {"label":"N", "x":7.25, "y":4.5},
466 {"label":"M", "x":8.25, "y":4.5},
467 {"label":"<", "x":9.25, "y":4.5},
468 {"label":">", "x":10.25, "y":4.5},
469 {"label":"?", "x":11.25, "y":4.5},
470 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
471 {"label":"\u2191", "x":16.25, "y":4.5},
472
473 {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
474 {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
475 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
476 {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
477 {"label":"Alt", "x":10, "y":5.5, "w":1.25},
478 {"label":"Win", "x":11.25, "y":5.5, "w":1.25},
479 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
480 {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
481 {"label":"\u2190", "x":15.25, "y":5.5},
482 {"label":"\u2193", "x":16.25, "y":5.5},
483 {"label":"\u2192", "x":17.25, "y":5.5}
484 ]
485 },
486 "LAYOUT_tkl_iso_tsangan": {
487 "layout": [
488 {"label":"Esc", "x":0, "y":0},
489 {"label":"F1", "x":2, "y":0},
490 {"label":"F2", "x":3, "y":0},
491 {"label":"F3", "x":4, "y":0},
492 {"label":"F4", "x":5, "y":0},
493 {"label":"F5", "x":6.5, "y":0},
494 {"label":"F6", "x":7.5, "y":0},
495 {"label":"F7", "x":8.5, "y":0},
496 {"label":"F8", "x":9.5, "y":0},
497 {"label":"F9", "x":11, "y":0},
498 {"label":"F10", "x":12, "y":0},
499 {"label":"F11", "x":13, "y":0},
500 {"label":"F12", "x":14, "y":0},
501 {"label":"PrtSc", "x":15.25, "y":0},
502 {"label":"Scroll Lock", "x":16.25, "y":0},
503 {"label":"Pause", "x":17.25, "y":0},
504
505 {"label":"~", "x":0, "y":1.5},
506 {"label":"!", "x":1, "y":1.5},
507 {"label":"@", "x":2, "y":1.5},
508 {"label":"#", "x":3, "y":1.5},
509 {"label":"$", "x":4, "y":1.5},
510 {"label":"%", "x":5, "y":1.5},
511 {"label":"^", "x":6, "y":1.5},
512 {"label":"&", "x":7, "y":1.5},
513 {"label":"*", "x":8, "y":1.5},
514 {"label":"(", "x":9, "y":1.5},
515 {"label":")", "x":10, "y":1.5},
516 {"label":"_", "x":11, "y":1.5},
517 {"label":"+", "x":12, "y":1.5},
518 {"label":"Bksp", "x":13, "y":1.5, "w":2},
519 {"label":"Insert", "x":15.25, "y":1.5},
520 {"label":"Home", "x":16.25, "y":1.5},
521 {"label":"PgUp", "x":17.25, "y":1.5},
522
523 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
524 {"label":"Q", "x":1.5, "y":2.5},
525 {"label":"W", "x":2.5, "y":2.5},
526 {"label":"E", "x":3.5, "y":2.5},
527 {"label":"R", "x":4.5, "y":2.5},
528 {"label":"T", "x":5.5, "y":2.5},
529 {"label":"Y", "x":6.5, "y":2.5},
530 {"label":"U", "x":7.5, "y":2.5},
531 {"label":"I", "x":8.5, "y":2.5},
532 {"label":"O", "x":9.5, "y":2.5},
533 {"label":"P", "x":10.5, "y":2.5},
534 {"label":"{", "x":11.5, "y":2.5},
535 {"label":"}", "x":12.5, "y":2.5},
536 {"label":"Delete", "x":15.25, "y":2.5},
537 {"label":"End", "x":16.25, "y":2.5},
538 {"label":"PgDn", "x":17.25, "y":2.5},
539
540 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
541 {"label":"A", "x":1.75, "y":3.5},
542 {"label":"S", "x":2.75, "y":3.5},
543 {"label":"D", "x":3.75, "y":3.5},
544 {"label":"F", "x":4.75, "y":3.5},
545 {"label":"G", "x":5.75, "y":3.5},
546 {"label":"H", "x":6.75, "y":3.5},
547 {"label":"J", "x":7.75, "y":3.5},
548 {"label":"K", "x":8.75, "y":3.5},
549 {"label":"L", "x":9.75, "y":3.5},
550 {"label":":", "x":10.75, "y":3.5},
551 {"label":"\"", "x":11.75, "y":3.5},
552 {"label":"~", "x":12.75, "y":3.5},
553 {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
554
555 {"label":"Shift", "x":0, "y":4.5, "w":1.25},
556 {"label":"NUBS", "x":1.25, "y":4.5},
557 {"label":"Z", "x":2.25, "y":4.5},
558 {"label":"X", "x":3.25, "y":4.5},
559 {"label":"C", "x":4.25, "y":4.5},
560 {"label":"V", "x":5.25, "y":4.5},
561 {"label":"B", "x":6.25, "y":4.5},
562 {"label":"N", "x":7.25, "y":4.5},
563 {"label":"M", "x":8.25, "y":4.5},
564 {"label":"<", "x":9.25, "y":4.5},
565 {"label":">", "x":10.25, "y":4.5},
566 {"label":"?", "x":11.25, "y":4.5},
567 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
568 {"label":"\u2191", "x":16.25, "y":4.5},
569
570 {"label":"Ctrl", "x":0, "y":5.5, "w":1.5},
571 {"label":"Win", "x":1.5, "y":5.5},
572 {"label":"Alt", "x":2.5, "y":5.5, "w":1.5},
573 {"label":"Space", "x":4, "y":5.5, "w":7},
574 {"label":"Win", "x":11, "y":5.5, "w":1.5},
575 {"label":"Menu", "x":12.5, "y":5.5},
576 {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5},
577 {"label":"\u2190", "x":15.25, "y":5.5},
578 {"label":"\u2193", "x":16.25, "y":5.5},
579 {"label":"\u2192", "x":17.25, "y":5.5}
580 ]
581 },
582 "LAYOUT_tkl_iso_wkl": {
583 "layout": [
584 {"label":"Esc", "x":0, "y":0},
585 {"label":"F1", "x":2, "y":0},
586 {"label":"F2", "x":3, "y":0},
587 {"label":"F3", "x":4, "y":0},
588 {"label":"F4", "x":5, "y":0},
589 {"label":"F5", "x":6.5, "y":0},
590 {"label":"F6", "x":7.5, "y":0},
591 {"label":"F7", "x":8.5, "y":0},
592 {"label":"F8", "x":9.5, "y":0},
593 {"label":"F9", "x":11, "y":0},
594 {"label":"F10", "x":12, "y":0},
595 {"label":"F11", "x":13, "y":0},
596 {"label":"F12", "x":14, "y":0},
597 {"label":"PrtSc", "x":15.25, "y":0},
598 {"label":"Scroll Lock", "x":16.25, "y":0},
599 {"label":"Pause", "x":17.25, "y":0},
600
601 {"label":"~", "x":0, "y":1.5},
602 {"label":"!", "x":1, "y":1.5},
603 {"label":"@", "x":2, "y":1.5},
604 {"label":"#", "x":3, "y":1.5},
605 {"label":"$", "x":4, "y":1.5},
606 {"label":"%", "x":5, "y":1.5},
607 {"label":"^", "x":6, "y":1.5},
608 {"label":"&", "x":7, "y":1.5},
609 {"label":"*", "x":8, "y":1.5},
610 {"label":"(", "x":9, "y":1.5},
611 {"label":")", "x":10, "y":1.5},
612 {"label":"_", "x":11, "y":1.5},
613 {"label":"+", "x":12, "y":1.5},
614 {"label":"Bksp", "x":13, "y":1.5, "w":2},
615 {"label":"Insert", "x":15.25, "y":1.5},
616 {"label":"Home", "x":16.25, "y":1.5},
617 {"label":"PgUp", "x":17.25, "y":1.5},
618
619 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
620 {"label":"Q", "x":1.5, "y":2.5},
621 {"label":"W", "x":2.5, "y":2.5},
622 {"label":"E", "x":3.5, "y":2.5},
623 {"label":"R", "x":4.5, "y":2.5},
624 {"label":"T", "x":5.5, "y":2.5},
625 {"label":"Y", "x":6.5, "y":2.5},
626 {"label":"U", "x":7.5, "y":2.5},
627 {"label":"I", "x":8.5, "y":2.5},
628 {"label":"O", "x":9.5, "y":2.5},
629 {"label":"P", "x":10.5, "y":2.5},
630 {"label":"{", "x":11.5, "y":2.5},
631 {"label":"}", "x":12.5, "y":2.5},
632 {"label":"Delete", "x":15.25, "y":2.5},
633 {"label":"End", "x":16.25, "y":2.5},
634 {"label":"PgDn", "x":17.25, "y":2.5},
635
636 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
637 {"label":"A", "x":1.75, "y":3.5},
638 {"label":"S", "x":2.75, "y":3.5},
639 {"label":"D", "x":3.75, "y":3.5},
640 {"label":"F", "x":4.75, "y":3.5},
641 {"label":"G", "x":5.75, "y":3.5},
642 {"label":"H", "x":6.75, "y":3.5},
643 {"label":"J", "x":7.75, "y":3.5},
644 {"label":"K", "x":8.75, "y":3.5},
645 {"label":"L", "x":9.75, "y":3.5},
646 {"label":":", "x":10.75, "y":3.5},
647 {"label":"\"", "x":11.75, "y":3.5},
648 {"label":"~", "x":12.75, "y":3.5},
649 {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
650
651 {"label":"Shift", "x":0, "y":4.5, "w":1.25},
652 {"label":"NUBS", "x":1.25, "y":4.5},
653 {"label":"Z", "x":2.25, "y":4.5},
654 {"label":"X", "x":3.25, "y":4.5},
655 {"label":"C", "x":4.25, "y":4.5},
656 {"label":"V", "x":5.25, "y":4.5},
657 {"label":"B", "x":6.25, "y":4.5},
658 {"label":"N", "x":7.25, "y":4.5},
659 {"label":"M", "x":8.25, "y":4.5},
660 {"label":"<", "x":9.25, "y":4.5},
661 {"label":">", "x":10.25, "y":4.5},
662 {"label":"?", "x":11.25, "y":4.5},
663 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
664 {"label":"\u2191", "x":16.25, "y":4.5},
665
666 {"label":"Ctrl", "x":0, "y":5.5, "w":1.5},
667 {"label":"Alt", "x":2.5, "y":5.5, "w":1.5},
668 {"label":"Space", "x":4, "y":5.5, "w":7},
669 {"label":"Alt", "x":11, "y":5.5, "w":1.5},
670 {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5},
671 {"label":"\u2190", "x":15.25, "y":5.5},
672 {"label":"\u2193", "x":16.25, "y":5.5},
673 {"label":"\u2192", "x":17.25, "y":5.5}
674 ]
293 } 675 }
294 } 676 }
295} 677}
diff --git a/keyboards/nix_studio/oxalys80/keymaps/default/keymap.c b/keyboards/nix_studio/oxalys80/keymaps/default/keymap.c
index 70d05e7b9..f2e62ec6c 100644
--- a/keyboards/nix_studio/oxalys80/keymaps/default/keymap.c
+++ b/keyboards/nix_studio/oxalys80/keymaps/default/keymap.c
@@ -17,20 +17,20 @@
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 19
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 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, 21 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,
22 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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP, 22 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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP,
23 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_BSPC, KC_DEL, KC_END, KC_PGDN, 23 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_BSPC, KC_DEL, KC_END, KC_PGDN,
24 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, 24 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,
25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, 25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27 27
28 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, 29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
30 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_VOLU, 30 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_VOLU,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, 31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
32 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, 32 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,
33 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, 33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
35 35
36}; 36};
diff --git a/keyboards/nix_studio/oxalys80/keymaps/via/keymap.c b/keyboards/nix_studio/oxalys80/keymaps/via/keymap.c
index a81dface9..9ad66c923 100644
--- a/keyboards/nix_studio/oxalys80/keymaps/via/keymap.c
+++ b/keyboards/nix_studio/oxalys80/keymaps/via/keymap.c
@@ -17,36 +17,36 @@
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 19
20 [0] = LAYOUT_all( 20 [0] = LAYOUT_all(
21 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, 21 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,
22 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_GRV, KC_INS, KC_HOME, KC_PGUP, 22 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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP,
23 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, 23 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_BSPC, KC_DEL, KC_END, KC_PGDN,
24 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, 24 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,
25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, 25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), 26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27 27
28 [1] = LAYOUT_all( 28 [1] = LAYOUT_all(
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, 29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
30 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_VOLU, 30 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_VOLU,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, 31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
32 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, 32 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,
33 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, 33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
35 35
36 [2] = LAYOUT_all( 36 [2] = LAYOUT_all(
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, 37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
38 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_VOLU, 38 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_VOLU,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, 39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
40 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, 40 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,
41 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, 41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
43 43
44 [3] = LAYOUT_all( 44 [3] = LAYOUT_all(
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, 45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
46 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_VOLU, 46 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_VOLU,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, 47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
48 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, 48 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,
49 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, 49 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,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
51 51
52}; 52};
diff --git a/keyboards/nix_studio/oxalys80/oxalys80.h b/keyboards/nix_studio/oxalys80/oxalys80.h
index a4f36b2ac..2a9f789b5 100644
--- a/keyboards/nix_studio/oxalys80/oxalys80.h
+++ b/keyboards/nix_studio/oxalys80/oxalys80.h
@@ -17,29 +17,185 @@
17 17
18#include "quantum.h" 18#include "quantum.h"
19 19
20#define ___ KC_NO
21
22/* LAYOUT_all
23 * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
24 * │00 │ │01 │11 │02 │12 │ │03 │13 │04 │14 │ │05 │15 │06 │16 │ │07 │17 │08 │
25 * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
26 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐
27 * │20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │66 │ │27 │37 │28 │ │36 │ 2u Backspace
28 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤
29 * │40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │46 │56 │ │47 │57 │48 │ │ │
30 * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐76 │ ISO Enter
31 * LShift │60 │70 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │76 │ │56 │ │
32 * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤
33 * │80 │ │80 │90 │81 │91 │82 │92 │83 │93 │84 │94 │85 │95 │86 │96 │ │97 │ │86 │ 2.75u RShift
34 * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘
35 * │A0 │B0 │A1 │A3 │A5 │B5 │A6 │B6 │ │A7 │B7 │A8 │
36 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
37 * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
38 * │A0 │B0 │A1 │A3 │B5 │A6 │B6 │ Tsangan
39 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
40 * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
41 * │A0 │ │A1 │A3 │B5 │ │B6 │ WKL
42 * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘
43 */
44
20// This a shortcut to help you visually see your layout. 45// This a shortcut to help you visually see your layout.
21// The following is an example using the Planck MIT layout
22// The first section contains all of the arguments 46// The first section contains all of the arguments
23// The second converts the arguments into a two-dimensional array 47// The second converts the arguments into a two-dimensional array
24 48
25#define LAYOUT_all(\ 49#define LAYOUT_all(\
26 K000, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ 50 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
27 K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K066, K027, K037, K028, \ 51 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K66, K27, K37, K28, \
28 K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K057, K048, \ 52 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
29 K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \ 53 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
30 K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K097, \ 54 K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K96, K97, \
31 K100, K110, K101, K103, K105, K115, K106, K116, K107, K117, K108 \ 55 KA0, KB0, KA1, KA3, KA5, KB5, KA6, KB6, KA7, KB7, KA8 \
56) { \
57 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
58 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
59 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
60 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
61 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
62 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
63 { K60, K61, K62, K63, K64, K65, K66, ___, ___ }, \
64 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
65 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
66 { K90, K91, K92, K93, K94, K95, K96, K97, ___ }, \
67 { KA0, KA1, ___, KA3, ___, KA5, KA6, KA7, KA8 }, \
68 { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
69}
70
71#define LAYOUT_tkl_ansi(\
72 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
73 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
74 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
75 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
76 K80, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
77 KA0, KB0, KA1, KA3, KA5, KB5, KA6, KB6, KA7, KB7, KA8 \
78) { \
79 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
80 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
81 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
82 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
83 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
84 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
85 { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
86 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
87 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
88 { ___, K91, K92, K93, K94, K95, ___, K97, ___ }, \
89 { KA0, KA1, ___, KA3, ___, KA5, KA6, KA7, KA8 }, \
90 { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
91}
92
93#define LAYOUT_tkl_ansi_tsangan(\
94 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
95 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
96 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
97 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
98 K80, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
99 KA0, KB0, KA1, KA3, KB5, KA6, KB6, KA7, KB7, KA8 \
100) { \
101 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
102 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
103 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
104 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
105 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
106 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
107 { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
108 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
109 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
110 { ___, K91, K92, K93, K94, K95, ___, K97, ___ }, \
111 { KA0, KA1, ___, KA3, ___, ___, KA6, KA7, KA8 }, \
112 { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
113}
114
115#define LAYOUT_tkl_ansi_wkl(\
116 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
117 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
118 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
119 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
120 K80, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
121 KA0, KA1, KA3, KB5, KB6, KA7, KB7, KA8 \
122) { \
123 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
124 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
125 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
126 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
127 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
128 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
129 { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
130 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
131 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
132 { ___, K91, K92, K93, K94, K95, ___, K97, ___ }, \
133 { KA0, KA1, ___, KA3, ___, ___, ___, KA7, KA8 }, \
134 { ___, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
135}
136
137#define LAYOUT_tkl_iso(\
138 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
139 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
140 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, K48, \
141 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K56, K76, \
142 K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
143 KA0, KB0, KA1, KA3, KA5, KB5, KA6, KB6, KA7, KB7, KA8 \
144) { \
145 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
146 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
147 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
148 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
149 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
150 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
151 { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
152 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
153 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
154 { K90, K91, K92, K93, K94, K95, ___, K97, ___ }, \
155 { KA0, KA1, ___, KA3, ___, KA5, KA6, KA7, KA8 }, \
156 { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
157}
158
159#define LAYOUT_tkl_iso_tsangan(\
160 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
161 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
162 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, K48, \
163 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K56, K76, \
164 K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
165 KA0, KB0, KA1, KA3, KB5, KA6, KB6, KA7, KB7, KA8 \
166) { \
167 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
168 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
169 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
170 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
171 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
172 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
173 { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
174 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
175 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
176 { K90, K91, K92, K93, K94, K95, ___, K97, ___ }, \
177 { KA0, KA1, ___, KA3, ___, ___, KA6, KA7, KA8 }, \
178 { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
179}
180
181#define LAYOUT_tkl_iso_wkl(\
182 K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
183 K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
184 K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, K48, \
185 K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K56, K76, \
186 K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
187 KA0, KA1, KA3, KB5, KB6, KA7, KB7, KA8 \
32) { \ 188) { \
33 { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ 189 { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
34 { KC_NO, K011, K012, K013, K014, K015, K016, K017, KC_NO }, \ 190 { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
35 { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ 191 { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
36 { K030, K031, K032, K033, K034, K035, K036, K037, KC_NO }, \ 192 { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
37 { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ 193 { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
38 { K050, K051, K052, K053, K054, K055, K056, K057, KC_NO }, \ 194 { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
39 { K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \ 195 { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
40 { K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \ 196 { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
41 { K080, K081, K082, K083, K084, K085, K086, KC_NO, KC_NO }, \ 197 { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
42 { K090, K091, K092, K093, K094, K095, K096, K097, KC_NO }, \ 198 { K90, K91, K92, K93, K94, K95, ___, K97, ___ }, \
43 { K100, K101, KC_NO, K103, KC_NO, K105, K106, K107, K108 }, \ 199 { KA0, KA1, ___, KA3, ___, ___, ___, KA7, KA8 }, \
44 { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, KC_NO } \ 200 { ___, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
45} 201}
diff --git a/keyboards/nix_studio/oxalys80/readme.md b/keyboards/nix_studio/oxalys80/readme.md
index 44ad7e828..a1b009ebe 100644
--- a/keyboards/nix_studio/oxalys80/readme.md
+++ b/keyboards/nix_studio/oxalys80/readme.md
@@ -1,43 +1,49 @@
1oxalys80 1# OXALYS80
2===
3 2
4A QMK-powered replacement PCB for custom TKL keyboards. This PCB has the same size of the b.87 PCB, Hiney H87a, KBD8X. 3A QMK-powered replacement PCB for custom TKL keyboards. This PCB has the same size of the b.87 PCB, Hiney H87a, and KBD8X.
5 4
6Keyboard Maintainer: [Nix Studio](https://github.com/Nix-Studio) 5* Keyboard Maintainer: [Nix Studio](https://github.com/Nix-Studio)
7Hardware Supported: oxalys80 ver. 1.0 6* Hardware Supported: oxalys80 ver. 1.0
8Hardware Availability: [Nix Studio](https://www.instagram.com/nix.studio/) 7* Hardware Availability: [Nix Studio](https://www.instagram.com/nix.studio/)
9 8
10Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
11 10
12 make nix_studio/oxalys80:default 11 make nix_studio/oxalys80:default
13 12
13Flashing example for this keyboard:
14
15 make nix_studio/oxalys80:default:flash
16
14See 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). 17See 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).
15 18
16## oxalys80 hardware information 19## OXALYS80 Hardware Information
20
21Controller: ATmega32U4
22
23### Column Pin Configuration
24
25| col: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
26|------|----|----|----|----|----|----|----|----|----|
27| pin: | F0 | F1 | F4 | F5 | F6 | F7 | C7 | B0 | B1 |
28
29### Row Pin Configuration
30
31| row: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
32|------|----|----|----|----|----|----|----|----|----|----|----|----|
33| pin: | C6 | B6 | B5 | B4 | D7 | D6 | D4 | D5 | D3 | D2 | D1 | D0 |
17 34
18Controller: Atmega32u4 35The OXALYS80 PCB utilizes duplex matrix organization.
19 36
20 /* Column pin configuration 37### LED Pins
21 * col: 0 1 2 3 4 5 6 7 8
22 * pin: F0 F1 F4 F5 F6 F7 C7 B0 B1
23 */
24
25 /* Row pin configuration
26 * row: 0 1 2 3 4 5 6 7 8 9 10 11
27 * pin: C6 B6 B5 B4 D7 D6 D4 D5 D3 D2 D1 D0
28 */
29
30The oxalys PCB utilizes duplex matrix organization.
31 38
32 Caps Lock LED: E6 39* Caps Lock LED: E6
33 Scroll Lock LED: B2 40* Scroll Lock LED: B2
34 Num Lock LED: not supported 41* Num Lock LED: not supported
35 Backlight Pin: B7 42* Backlight Pin: B7
36 RGB Data Pin: B3 43* RGB Data Pin: B3
37
38 44
45## In-switch Indicators
39 46
40In-switch indicators:
41To 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. 47To 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.
42 48
43To 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. 49To 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.
diff --git a/keyboards/nix_studio/oxalys80/rules.mk b/keyboards/nix_studio/oxalys80/rules.mk
index cc0852ead..3da643f9f 100644
--- a/keyboards/nix_studio/oxalys80/rules.mk
+++ b/keyboards/nix_studio/oxalys80/rules.mk
@@ -10,14 +10,16 @@ BOOTLOADER = atmel-dfu
10BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite 10BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys 11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover 18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default 19BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable RGB underglow 20RGBLIGHT_ENABLE = yes # Enable RGB underglow
21UNICODE_ENABLE = no # Unicode 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23LTO_ENABLE = yes 23LTO_ENABLE = yes
24
25LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/planck/ez/halconf.h b/keyboards/planck/ez/halconf.h
new file mode 100644
index 000000000..f1044867f
--- /dev/null
+++ b/keyboards/planck/ez/halconf.h
@@ -0,0 +1,23 @@
1/* Copyright 2021 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <https://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#define HAL_USE_I2C TRUE
19#define HAL_USE_GPT TRUE
20#define HAL_USE_DAC TRUE
21#define HAL_USE_PWM TRUE
22
23#include_next <halconf.h>
diff --git a/keyboards/planck/ez/mcuconf.h b/keyboards/planck/ez/mcuconf.h
new file mode 100644
index 000000000..44035e782
--- /dev/null
+++ b/keyboards/planck/ez/mcuconf.h
@@ -0,0 +1,41 @@
1/* Copyright 2021 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <https://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include_next "mcuconf.h"
20
21// for i2c expander, and ISSI
22#undef STM32_I2C_USE_I2C1
23#define STM32_I2C_USE_I2C1 TRUE
24
25// for indicator LEDs
26#undef STM32_PWM_USE_TIM3
27#define STM32_PWM_USE_TIM3 TRUE
28#undef STM32_PWM_USE_TIM4
29#define STM32_PWM_USE_TIM4 TRUE
30
31// for audio
32#undef STM32_DAC_USE_DAC1_CH1
33#define STM32_DAC_USE_DAC1_CH1 TRUE
34#undef STM32_DAC_USE_DAC1_CH2
35#define STM32_DAC_USE_DAC1_CH2 TRUE
36#undef STM32_GPT_USE_TIM6
37#define STM32_GPT_USE_TIM6 TRUE
38#undef STM32_GPT_USE_TIM7
39#define STM32_GPT_USE_TIM7 TRUE
40#undef STM32_GPT_USE_TIM8
41#define STM32_GPT_USE_TIM8 TRUE
diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk
index a570a9c3c..f17afe362 100644
--- a/keyboards/planck/ez/rules.mk
+++ b/keyboards/planck/ez/rules.mk
@@ -1,6 +1,5 @@
1# MCU name 1# MCU name
2MCU = STM32F303 2MCU = STM32F303
3BOARD = QMK_PROTON_C
4 3
5# Bootloader selection 4# Bootloader selection
6BOOTLOADER = stm32-dfu 5BOOTLOADER = stm32-dfu
@@ -9,23 +8,25 @@ BOOTLOADER = stm32-dfu
9# change to "no" to disable the options, or define them in the Makefile in 8# change to "no" to disable the options, or define them in the Makefile in
10# the appropriate keymap folder that will get included automatically 9# the appropriate keymap folder that will get included automatically
11# 10#
12BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite 11BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
13MOUSEKEY_ENABLE = yes # Mouse keys 12MOUSEKEY_ENABLE = yes # Mouse keys
14EXTRAKEY_ENABLE = yes # Audio control and System control 13EXTRAKEY_ENABLE = yes # Audio control and System control
15CONSOLE_ENABLE = yes # Console for debug 14CONSOLE_ENABLE = yes # Console for debug
16COMMAND_ENABLE = yes # Commands for debug and configuration 15COMMAND_ENABLE = yes # Commands for debug and configuration
17NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 16NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 17BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
19AUDIO_ENABLE = yes # Audio output on port C6 18AUDIO_ENABLE = yes # Audio output
20UNICODE_ENABLE = no # Unicode
21RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. 19RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
22 20
23# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 21# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
24SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 22SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
25#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
26 23
27ENCODER_ENABLE = yes 24ENCODER_ENABLE = yes
28RGB_MATRIX_DRIVER = IS31FL3737 25RGB_MATRIX_DRIVER = IS31FL3737
29 26
30LAYOUTS = ortho_4x12 planck_mit 27LAYOUTS = ortho_4x12 planck_mit
31LAYOUTS_HAS_RGB = no 28LAYOUTS_HAS_RGB = no
29
30RGB_MATRIX_SUPPORTED = yes
31RGBLIGHT_SUPPORTED = no
32BAKCLIGHT_SUPPORTED = no
diff --git a/keyboards/sauce/mild/config.h b/keyboards/sauce/mild/config.h
new file mode 100644
index 000000000..6e203a434
--- /dev/null
+++ b/keyboards/sauce/mild/config.h
@@ -0,0 +1,58 @@
1/* Copyright 2021 Andy Yong (Sauce)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x8367 // "SC"
23#define PRODUCT_ID 0x7783 // "MS"
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Sauce
26#define PRODUCT Mild
27
28/* key matrix size */
29#define MATRIX_ROWS 6
30#define MATRIX_COLS 17
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41*/
42#define MATRIX_ROW_PINS { C13, C14, C15, A15, F0, F1 }
43#define MATRIX_COL_PINS { A10, A9, A8, B11, B10, B2, B1, B0, A7, A5, A4, A3, A2, A1, B6, B5, B4 }
44#define UNUSED_PINS
45
46/* COL2ROW, ROW2COL*/
47#define DIODE_DIRECTION COL2ROW
48
49/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
50#define DEBOUNCE 5
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54/* Locking resynchronize hack */
55#define LOCKING_RESYNC_ENABLE
56
57#define LED_CAPS_LOCK_PIN A6
58#define LED_SCROLL_LOCK_PIN B14
diff --git a/keyboards/sauce/mild/info.json b/keyboards/sauce/mild/info.json
new file mode 100644
index 000000000..d722a03d8
--- /dev/null
+++ b/keyboards/sauce/mild/info.json
@@ -0,0 +1,17 @@
1{
2 "keyboard_name": "Sauce - Mild",
3 "url": "",
4 "maintainer": "Sauce",
5 "layouts": {
6 "LAYOUT_all": {
7 "layout": [
8 {"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},
9 {"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},
10 {"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},
11 {"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},
12 {"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},
13 {"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}
14 ]
15 }
16 }
17}
diff --git a/keyboards/sauce/mild/keymaps/default/keymap.c b/keyboards/sauce/mild/keymaps/default/keymap.c
new file mode 100644
index 000000000..4b6f63aa1
--- /dev/null
+++ b/keyboards/sauce/mild/keymaps/default/keymap.c
@@ -0,0 +1,36 @@
1/* Copyright 2021 Andy Yong (Sauce)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19
20 [0] = LAYOUT_all(
21 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,
22 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,
23 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,
24 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,
25 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,
26 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27
28 [1] = LAYOUT_all(
29 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,
30 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,
31 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,
32 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,
33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
35
36};
diff --git a/keyboards/sauce/mild/keymaps/via/keymap.c b/keyboards/sauce/mild/keymaps/via/keymap.c
new file mode 100644
index 000000000..01f5742d0
--- /dev/null
+++ b/keyboards/sauce/mild/keymaps/via/keymap.c
@@ -0,0 +1,52 @@
1/* Copyright 2021 Andy Yong (Sauce)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19
20 [0] = LAYOUT_all(
21 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,
22 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,
23 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,
24 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,
25 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,
26 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
27
28 [1] = LAYOUT_all(
29 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,
30 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,
31 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,
32 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,
33 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,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
35
36 [2] = LAYOUT_all(
37 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,
38 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,
39 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,
40 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,
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
43
44 [3] = LAYOUT_all(
45 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,
46 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,
47 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,
48 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,
49 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,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
51
52};
diff --git a/keyboards/sauce/mild/keymaps/via/rules.mk b/keyboards/sauce/mild/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/sauce/mild/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/sauce/mild/mild.c b/keyboards/sauce/mild/mild.c
new file mode 100644
index 000000000..963cbede9
--- /dev/null
+++ b/keyboards/sauce/mild/mild.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 Andy Yong (Sauce)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "mild.h"
diff --git a/keyboards/sauce/mild/mild.h b/keyboards/sauce/mild/mild.h
new file mode 100644
index 000000000..3dbd2630e
--- /dev/null
+++ b/keyboards/sauce/mild/mild.h
@@ -0,0 +1,37 @@
1/* Copyright 2021 Andy Yong (Sauce)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define ____ KC_NO
22
23#define LAYOUT_all( \
24 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, K016, \
25 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K412, K114, K115, K116, \
26 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
27 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K314, \
28 K400, K501, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
29 K500, K503, K505, K510, K513, K514, K515, K516 \
30) { \
31 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, ____, K014, K015, K016 }, \
32 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
33 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \
34 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K314, ____, ____, ____ }, \
35 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, ____, K415, ____ }, \
36 { K500, K501, ____, K503, ____, K505, ____, ____, ____, ____, K510, ____, ____, K513, K514, K515, K516 } \
37}
diff --git a/keyboards/sauce/mild/readme.md b/keyboards/sauce/mild/readme.md
new file mode 100644
index 000000000..70202f19e
--- /dev/null
+++ b/keyboards/sauce/mild/readme.md
@@ -0,0 +1,17 @@
1# Sauce Mild
2
3Mild is a basic TKL keyboard
4
5* Keyboard Maintainer: [Sauce](https://github.com/andyywz)
6* Hardware Supported: Mild pcb
7* Hardware Availability: -
8
9Make example for this keyboard (after setting up your build environment):
10
11 make sauce/mild:default
12
13Flashing example for this keyboard:
14
15 make sauce/mild:default:flash
16
17See 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).
diff --git a/keyboards/sauce/mild/rules.mk b/keyboards/sauce/mild/rules.mk
new file mode 100644
index 000000000..e913552c9
--- /dev/null
+++ b/keyboards/sauce/mild/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
22
23# Enter lower-power sleep mode when on the ChibiOS idle thread
24OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/xbows/knight/rules.mk b/keyboards/xbows/knight/rules.mk
index c3b73b766..2ec14e405 100644
--- a/keyboards/xbows/knight/rules.mk
+++ b/keyboards/xbows/knight/rules.mk
@@ -13,7 +13,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/xbows/knight_plus/rules.mk b/keyboards/xbows/knight_plus/rules.mk
index c3b73b766..2ec14e405 100644
--- a/keyboards/xbows/knight_plus/rules.mk
+++ b/keyboards/xbows/knight_plus/rules.mk
@@ -13,7 +13,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/xbows/numpad/rules.mk b/keyboards/xbows/numpad/rules.mk
index c3b73b766..2ec14e405 100644
--- a/keyboards/xbows/numpad/rules.mk
+++ b/keyboards/xbows/numpad/rules.mk
@@ -13,7 +13,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality