dcc47ea31b3f4ef097a2fc677bdbb9b2560d905a
- Author
- James Gzowski <flexyjerkov@gmail.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/keyboards/proteus67/config.h b/keyboards/proteus67/config.h
2new file mode 100644
3index 0000000000000000000000000000000000000000..66faa7a2981c18b6e51301eceb643d0ebed0014f
4--- /dev/null
5+++ b/keyboards/proteus67/config.h
6@@ -0,0 +1,7 @@
7+// Copyright 2023 QMK
8+// SPDX-License-Identifier: GPL-2.0-or-later
9+#pragma once
10+
11+#define RGBLIGHT_MAX_LAYERS 3
12+#define ENCODER_MAP_KEY_DELAY 10
13+#define ENCODER_DEFAULT_POS 0x3
14diff --git a/keyboards/proteus67/info.json b/keyboards/proteus67/info.json
15new file mode 100644
16index 0000000000000000000000000000000000000000..0ab7117ef27d8e52ebf0ddadf60ba164410a1985
17--- /dev/null
18+++ b/keyboards/proteus67/info.json
19@@ -0,0 +1,129 @@
20+{
21+ "manufacturer": "gzowski",
22+ "keyboard_name": "Proteus67",
23+ "maintainer": "gzowski",
24+ "development_board": "elite_pi",
25+ "diode_direction": "COL2ROW",
26+ "encoder": {
27+ "rotary": [
28+ {"pin_a": "GP21", "pin_b": "GP9"}
29+ ]
30+ },
31+ "features": {
32+ "encoder": true,
33+ "bootmagic": true,
34+ "extrakey": true,
35+ "mousekey": true,
36+ "nkro": true,
37+ "rgblight": true
38+ },
39+ "matrix_pins": {
40+ "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP23", "GP20", "GP22", "GP26", "GP27", "GP28", "GP29"],
41+ "rows": ["GP12", "GP13", "GP14", "GP15", "GP16"]
42+ },
43+ "rgblight": {
44+ "animations": {
45+ "alternating": true,
46+ "breathing": true,
47+ "christmas": true,
48+ "knight": true,
49+ "rainbow_mood": true,
50+ "rainbow_swirl": true,
51+ "rgb_test": false,
52+ "snake": true,
53+ "static_gradient": true,
54+ "twinkle": true
55+ },
56+ "brightness_steps": 5,
57+ "led_count": 21,
58+ "saturation_steps": 5,
59+ "sleep": true,
60+ "layers": {
61+ "enabled": true,
62+ "override_rgb": false
63+ }
64+ },
65+ "url": "https://github.com/gzowski",
66+ "usb": {
67+ "device_version": "1.0.0",
68+ "pid": "0x6F64",
69+ "vid": "0x7072"
70+ },
71+ "ws2812": {
72+ "pin": "GP0",
73+ "driver": "vendor"
74+ },
75+ "layouts": {
76+ "LAYOUT_ortho_5x14": {
77+ "layout": [
78+ {"matrix": [0, 0], "x": 0, "y": 0},
79+ {"matrix": [0, 1], "x": 1, "y": 0},
80+ {"matrix": [0, 2], "x": 2, "y": 0},
81+ {"matrix": [0, 3], "x": 3, "y": 0},
82+ {"matrix": [0, 4], "x": 4, "y": 0},
83+ {"matrix": [0, 5], "x": 5, "y": 0},
84+ {"matrix": [0, 6], "x": 6, "y": 0},
85+ {"matrix": [0, 7], "x": 7, "y": 0},
86+ {"matrix": [0, 8], "x": 8, "y": 0},
87+ {"matrix": [0, 9], "x": 9, "y": 0},
88+ {"matrix": [0, 10], "x": 10, "y": 0},
89+ {"matrix": [0, 11], "x": 11, "y": 0},
90+ {"matrix": [0, 12], "x": 12, "y": 0},
91+ {"matrix": [0, 13], "x": 13, "y": 0},
92+ {"matrix": [1, 0], "x": 0, "y": 1},
93+ {"matrix": [1, 1], "x": 1, "y": 1},
94+ {"matrix": [1, 2], "x": 2, "y": 1},
95+ {"matrix": [1, 3], "x": 3, "y": 1},
96+ {"matrix": [1, 4], "x": 4, "y": 1},
97+ {"matrix": [1, 5], "x": 5, "y": 1},
98+ {"matrix": [1, 6], "x": 6, "y": 1},
99+ {"matrix": [1, 7], "x": 7, "y": 1},
100+ {"matrix": [1, 8], "x": 8, "y": 1},
101+ {"matrix": [1, 9], "x": 9, "y": 1},
102+ {"matrix": [1, 10], "x": 10, "y": 1},
103+ {"matrix": [1, 11], "x": 11, "y": 1},
104+ {"matrix": [1, 12], "x": 12, "y": 1},
105+ {"matrix": [1, 13], "x": 13, "y": 1},
106+ {"matrix": [2, 0], "x": 0, "y": 2},
107+ {"matrix": [2, 1], "x": 1, "y": 2},
108+ {"matrix": [2, 2], "x": 2, "y": 2},
109+ {"matrix": [2, 3], "x": 3, "y": 2},
110+ {"matrix": [2, 4], "x": 4, "y": 2},
111+ {"matrix": [2, 5], "x": 5, "y": 2},
112+ {"matrix": [2, 6], "x": 6, "y": 2},
113+ {"matrix": [2, 7], "x": 7, "y": 2},
114+ {"matrix": [2, 8], "x": 8, "y": 2},
115+ {"matrix": [2, 9], "x": 9, "y": 2},
116+ {"matrix": [2, 10], "x": 10, "y": 2},
117+ {"matrix": [2, 11], "x": 11, "y": 2},
118+ {"matrix": [2, 12], "x": 12, "y": 2},
119diff --git a/keyboards/proteus67/keymaps/colemak/keymap.c b/keyboards/proteus67/keymaps/colemak/keymap.c
120new file mode 100644
121index 0000000000000000000000000000000000000000..df572f0bc0151ba7e588405c544a04a25f940fd0
122--- /dev/null
123+++ b/keyboards/proteus67/keymaps/colemak/keymap.c
124@@ -0,0 +1,42 @@
125+// Copyright 2023 James Gzowski
126+// SPDX-License-Identifier: GPL-2.0-or-later
127+#include QMK_KEYBOARD_H
128+
129+enum custom_layer {
130+ _LAYERA,
131+ _LAYERB,
132+ _LAYERC,
133+};
134+
135+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
136+ [_LAYERA] = LAYOUT_ortho_5x14(
137+ KC_ESC , KC_1 ,KC_2 ,KC_3 , KC_4 , KC_5 , KC_PSCR , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
138+ KC_TAB , KC_Q ,KC_W ,KC_F , KC_P , KC_G , KC_END , KC_HOME , KC_J , KC_L , KC_U , KC_Y , KC_SCLN ,KC_MINUS,
139+ KC_LCTL, KC_A ,KC_R ,KC_S , KC_T , KC_D , KC_PGDN , KC_PGUP , KC_H , KC_N , KC_E , KC_I , KC_O ,KC_QUOT ,
140+ KC_LSFT, KC_Z ,KC_X ,KC_C , KC_V , KC_B , KC_LBRC, KC_RBRC, KC_K , KC_M , KC_COMM , KC_DOT , KC_SLSH, KC_RSFT,
141+ KC_NO , MO(_LAYERB) ,KC_LGUI,KC_LALT, KC_SPC , KC_MUTE, KC_ENT , KC_BSPC , MO(_LAYERC) , KC_INS , KC_DEL
142+),
143+ [_LAYERB] = LAYOUT_ortho_5x14(
144+ RGB_TOG , RGB_HUD ,RGB_HUI ,RGB_SAD , RGB_SAI , RGB_VAD , RGB_VAI , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , RGB_M_K , RGB_M_TW , RGB_M_G ,
145+ KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_TRNS ,KC_TRNS,
146+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_MS_L , KC_MS_D , KC_MS_R , KC_SCLN,KC_QUOT ,
147+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS,
148+ KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , RGB_RMOD, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
149+),
150+ [_LAYERC] = LAYOUT_ortho_5x14(
151+ KC_TRNS , KC_F1 ,KC_F2 ,KC_F3 , KC_F4 , KC_F5 , KC_TRNS , KC_TRNS , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_GRV ,
152+ KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS ,KC_TRNS,
153+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT,KC_QUOT ,
154+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS,
155+ KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , RGB_MOD, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
156+)
157+};
158+
159+#if defined(ENCODER_MAP_ENABLE)
160+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
161+ [_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
162+ [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
163+ [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
164+};
165+#endif
166+
167diff --git a/keyboards/proteus67/keymaps/colemak/rules.mk b/keyboards/proteus67/keymaps/colemak/rules.mk
168new file mode 100644
169index 0000000000000000000000000000000000000000..f1adcab005e805a6e95f33b3d46bb01778ccaa7d
170--- /dev/null
171+++ b/keyboards/proteus67/keymaps/colemak/rules.mk
172@@ -0,0 +1,2 @@
173+VIA_ENABLE = yes
174+ENCODER_MAP_ENABLE = yes
175diff --git a/keyboards/proteus67/keymaps/default/keymap.c b/keyboards/proteus67/keymaps/default/keymap.c
176new file mode 100644
177index 0000000000000000000000000000000000000000..bef2a5d1c5b642bb80d31c544b892877d0f840d3
178--- /dev/null
179+++ b/keyboards/proteus67/keymaps/default/keymap.c
180@@ -0,0 +1,41 @@
181+// Copyright 2023 James Gzowski
182+// SPDX-License-Identifier: GPL-2.0-or-later
183+#include QMK_KEYBOARD_H
184+
185+enum custom_layer {
186+ _LAYERA,
187+ _LAYERB,
188+ _LAYERC,
189+};
190+
191+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
192+ [_LAYERA] = LAYOUT_ortho_5x14(
193+ KC_ESC , KC_1 ,KC_2 ,KC_3 , KC_4 , KC_5 , KC_MINUS , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
194+ KC_TAB , KC_Q ,KC_W ,KC_E , KC_R , KC_T , KC_END , KC_HOME , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINUS,
195+ KC_LCTL, KC_A ,KC_S ,KC_D , KC_F , KC_G , KC_PGDN , KC_PGUP , KC_H , KC_J , KC_K , KC_L , KC_SCLN,KC_QUOT ,
196+ KC_LSFT, KC_Z ,KC_X ,KC_C , KC_V , KC_B , KC_LBRC, KC_RBRC, KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH, KC_RSFT,
197+ KC_NO , MO(_LAYERB) ,KC_LGUI,KC_LALT, KC_SPC , KC_MUTE, KC_ENT , KC_BSPC , MO(_LAYERC) , KC_INS , KC_DEL
198+),
199+ [_LAYERB] = LAYOUT_ortho_5x14(
200+ RGB_TOG , RGB_HUI ,RGB_HUD ,RGB_SAI , RGB_SAD , RGB_VAI , RGB_VAD , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , RGB_M_K , RGB_M_X , RGB_M_G ,
201+ KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_TRNS ,KC_TRNS,
202+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_MS_L , KC_MS_D , KC_MS_R , KC_SCLN,KC_QUOT ,
203+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS,
204+ KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , RGB_RMOD, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
205+),
206+ [_LAYERC] = LAYOUT_ortho_5x14(
207+ KC_TRNS , KC_F1 ,KC_F2 ,KC_F3 , KC_F4 , KC_F5 , KC_TRNS , KC_TRNS , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_GRV ,
208+ KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_UP , KC_TRNS , KC_TRNS ,KC_TRNS,
209+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_LEFT , KC_DOWN , KC_RIGHT , KC_SCLN,KC_QUOT ,
210+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS,
211+ KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , RGB_MOD, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
212+)
213+};
214+
215+#if defined(ENCODER_MAP_ENABLE)
216+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
217+ [_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
218+ [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
219+ [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
220+};
221+#endif
222diff --git a/keyboards/proteus67/keymaps/default/rules.mk b/keyboards/proteus67/keymaps/default/rules.mk
223new file mode 100644
224index 0000000000000000000000000000000000000000..ee325681483fbd804de1e14be33c47719c65bc71
225--- /dev/null
226+++ b/keyboards/proteus67/keymaps/default/rules.mk
227@@ -0,0 +1 @@
228+ENCODER_MAP_ENABLE = yes
229diff --git a/keyboards/proteus67/keymaps/via/keymap.c b/keyboards/proteus67/keymaps/via/keymap.c
230new file mode 100644
231index 0000000000000000000000000000000000000000..c79ac61e9e623cf60daf0a98678d9607e84bfdf4
232--- /dev/null
233+++ b/keyboards/proteus67/keymaps/via/keymap.c
234@@ -0,0 +1,41 @@
235+// Copyright 2023 James Gzowski
236+// SPDX-License-Identifier: GPL-2.0-or-later
237+#include QMK_KEYBOARD_H
238+
239+enum custom_layer {
240+ _LAYERA,
241+ _LAYERB,
242+ _LAYERC,
243+};
244+
245+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
246+ [_LAYERA] = LAYOUT_ortho_5x14(
247+ KC_ESC , KC_1 ,KC_2 ,KC_3 , KC_4 , KC_5 , KC_MINUS , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV ,
248+ KC_TAB , KC_Q ,KC_W ,KC_E , KC_R , KC_T , KC_END , KC_HOME , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINUS,
249+ KC_LCTL, KC_A ,KC_S ,KC_D , KC_F , KC_G , KC_PGDN , KC_PGUP , KC_H , KC_J , KC_K , KC_L , KC_SCLN,KC_QUOT ,
250+ KC_LSFT, KC_Z ,KC_X ,KC_C , KC_V , KC_B , KC_LBRC, KC_RBRC, KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH, KC_RSFT,
251+ KC_NO , MO(_LAYERB) ,KC_LGUI,KC_LALT, KC_SPC , KC_MUTE, KC_ENT , KC_BSPC , MO(_LAYERC) , KC_INS , KC_DEL
252+),
253+ [_LAYERB] = LAYOUT_ortho_5x14(
254+ RGB_TOG , RGB_HUD ,RGB_HUI ,RGB_SAD , RGB_SAI , RGB_VAD , RGB_VAI , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , RGB_M_K , RGB_M_TW , RGB_M_G ,
255+ KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_TRNS ,KC_TRNS,
256+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_MS_L , KC_MS_D , KC_MS_R , KC_SCLN,KC_QUOT ,
257+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS,
258+ KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , RGB_RMOD, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
259+),
260+ [_LAYERC] = LAYOUT_ortho_5x14(
261+ KC_TRNS , KC_F1 ,KC_F2 ,KC_F3 , KC_F4 , KC_F5 , KC_TRNS , KC_TRNS , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_GRV ,
262+ KC_TRNS , KC_TRNS, KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_UP , KC_TRNS , KC_TRNS ,KC_TRNS,
263+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_LEFT , KC_DOWN , KC_RIGHT , KC_SCLN,KC_QUOT ,
264+ KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_NUBS, KC_TRNS,
265+ KC_TRNS , KC_TRNS ,KC_TRNS,KC_TRNS, KC_TRNS , RGB_MOD, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
266+)
267+};
268+
269+#if defined(ENCODER_MAP_ENABLE)
270+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
271+ [_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
272+ [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
273+ [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
274+};
275+#endif
276diff --git a/keyboards/proteus67/keymaps/via/rules.mk b/keyboards/proteus67/keymaps/via/rules.mk
277new file mode 100644
278index 0000000000000000000000000000000000000000..f1adcab005e805a6e95f33b3d46bb01778ccaa7d
279--- /dev/null
280+++ b/keyboards/proteus67/keymaps/via/rules.mk
281@@ -0,0 +1,2 @@
282+VIA_ENABLE = yes
283+ENCODER_MAP_ENABLE = yes
284diff --git a/keyboards/proteus67/proteus67.c b/keyboards/proteus67/proteus67.c
285new file mode 100644
286index 0000000000000000000000000000000000000000..4073ac87d3e6cf88054c0b0dd2a0fd2c6c2446a1
287--- /dev/null
288+++ b/keyboards/proteus67/proteus67.c
289@@ -0,0 +1,42 @@
290+// Copyright 2023 James Gzowski
291+// SPDX-License-Identifier: GPL-2.0-or-later
292+#include QMK_KEYBOARD_H
293+
294+enum custom_layer {
295+ _LAYERA,
296+ _LAYERB,
297+ _LAYERC,
298+};
299+
300+// MO(_LAYERB)
301+const rgblight_segment_t PROGMEM backlight_layer_layerb[] = RGBLIGHT_LAYER_SEGMENTS(
302+ {0, 4, HSV_GOLD}
303+);
304+// MO(_LAYERC)
305+const rgblight_segment_t PROGMEM backlight_layer_layerc[] = RGBLIGHT_LAYER_SEGMENTS(
306+ {0, 4, HSV_CYAN}
307+);
308+const rgblight_segment_t PROGMEM backlight_layer_layera[] = RGBLIGHT_LAYER_SEGMENTS(
309+ {0, 4, HSV_BLACK}
310+);
311+const rgblight_segment_t* const PROGMEM set_backlight_mode[] = RGBLIGHT_LAYERS_LIST(
312+ backlight_layer_layerb,
313+ backlight_layer_layerc,
314+ backlight_layer_layera
315+);
316+
317+layer_state_t layer_state_set_kb(layer_state_t state) {
318+ rgblight_set_layer_state(0, layer_state_cmp(state, _LAYERB));
319+ rgblight_set_layer_state(1, layer_state_cmp(state, _LAYERC));
320+ rgblight_set_layer_state(2, layer_state_cmp(state, _LAYERA));
321+
322+ return layer_state_set_user(state);
323+}
324+
325+void keyboard_post_init_kb(void) {
326+ rgblight_set_effect_range(4, 17);
327+ rgblight_sethsv_range(HSV_BLACK, 0, 4);
328+ rgblight_layers = set_backlight_mode;
329+
330+ keyboard_post_init_user();
331+}
332diff --git a/keyboards/proteus67/readme.md b/keyboards/proteus67/readme.md
333new file mode 100644
334index 0000000000000000000000000000000000000000..b1422b8042176e7e5e993d3e53b7be45eb128ef5
335--- /dev/null
336+++ b/keyboards/proteus67/readme.md
337@@ -0,0 +1,25 @@
338+# proteus67
339+
340+
341+
342+67 key ortholinear layout with rotary encoder.
343+
344+* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski)
345+* Hardware Supported: Elite-Pi or equivilent RP2040 controller with additional I/O along bottom.
346+* Build Guide: [Proteus67](https://github.com/gzowski/Proteus67)
347+
348+Make example for this keyboard (after setting up your build environment):
349+
350+ make proteus67:default
351+
352+Flashing example for this keyboard:
353+
354+ make proteus67:default:flash
355+
356diff --git a/keyboards/proteus67/rules.mk b/keyboards/proteus67/rules.mk
357new file mode 100644
358index 0000000000000000000000000000000000000000..6e7633bfe015beed407755e5b0bf5bfed8f67eae
359--- /dev/null
360+++ b/keyboards/proteus67/rules.mk
361@@ -0,0 +1 @@
362+# This file intentionally left blank