aboutsummaryrefslogtreecommitdiff
path: root/keyboards/keybee
diff options
context:
space:
mode:
authorWolf Van Herreweghe <wolfvanh@gmail.com>2021-09-15 06:20:07 +0100
committerGitHub <noreply@github.com>2021-09-14 22:20:07 -0700
commit344a73fddd4729a2aa8346437273050971be6ae7 (patch)
tree8ff420301c46fa801ac4ecef004c1545f3433119 /keyboards/keybee
parent34352890522309e28b1788f72feab01e268eff34 (diff)
downloadqmk_firmware-344a73fddd4729a2aa8346437273050971be6ae7.tar.gz
qmk_firmware-344a73fddd4729a2aa8346437273050971be6ae7.zip
[Keyboard] Add KeyBee65 (#14163)
Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
Diffstat (limited to 'keyboards/keybee')
-rw-r--r--keyboards/keybee/keybee65/config.h64
-rw-r--r--keyboards/keybee/keybee65/info.json361
-rw-r--r--keyboards/keybee/keybee65/keybee65.c39
-rw-r--r--keyboards/keybee/keybee65/keybee65.h32
-rw-r--r--keyboards/keybee/keybee65/keymaps/default/keymap.c84
-rw-r--r--keyboards/keybee/keybee65/keymaps/via/keymap.c105
-rw-r--r--keyboards/keybee/keybee65/keymaps/via/rules.mk1
-rw-r--r--keyboards/keybee/keybee65/readme.md26
-rw-r--r--keyboards/keybee/keybee65/rules.mk27
9 files changed, 739 insertions, 0 deletions
diff --git a/keyboards/keybee/keybee65/config.h b/keyboards/keybee/keybee65/config.h
new file mode 100644
index 000000000..25c7b5083
--- /dev/null
+++ b/keyboards/keybee/keybee65/config.h
@@ -0,0 +1,64 @@
1/*
2Copyright 2020 <contact@vwolf.be>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x6265 // KeyBee
24#define PRODUCT_ID 0x0001 // Keybee65
25#define DEVICE_VER 0x0001 // Version 1
26#define MANUFACTURER KeyBee
27#define PRODUCT KeyBee65
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 16
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43
44// Checked with Eagle Schematic
45#define MATRIX_ROW_PINS { D3, D2, D0, B0, F0 }
46#define MATRIX_COL_PINS { E6, D1, D5, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 }
47#define UNUSED_PINS
48
49/* COL2ROW or ROW2COL */
50#define DIODE_DIRECTION COL2ROW
51
52/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
53#define DEBOUNCE 5
54
55// The pin connected to the data pin of the LEDs
56#define RGB_DI_PIN B0
57// The number of LEDs connected
58#define DRIVER_LED_TOTAL 80
59
60#define RGB_MATRIX_KEYPRESSES
61#define RGB_DISABLE_WHEN_USB_SUSPENDED
62
63#define NO_ACTION_MACRO
64#define NO_ACTION_FUNCTION
diff --git a/keyboards/keybee/keybee65/info.json b/keyboards/keybee/keybee65/info.json
new file mode 100644
index 000000000..63f05c9c2
--- /dev/null
+++ b/keyboards/keybee/keybee65/info.json
@@ -0,0 +1,361 @@
1{
2 "keyboard_name": "KeyBee65",
3 "url": "",
4 "maintainer": "ToastyStoemp",
5 "layouts": {
6 "LAYOUT_65_ansi": {
7 "layout": [
8 {
9 "label": "~",
10 "x": 0,
11 "y": 0
12 },
13 {
14 "label": "!",
15 "x": 1,
16 "y": 0
17 },
18 {
19 "label": "@",
20 "x": 2,
21 "y": 0
22 },
23 {
24 "label": "#",
25 "x": 3,
26 "y": 0
27 },
28 {
29 "label": "$",
30 "x": 4,
31 "y": 0
32 },
33 {
34 "label": "%",
35 "x": 5,
36 "y": 0
37 },
38 {
39 "label": "^",
40 "x": 6,
41 "y": 0
42 },
43 {
44 "label": "&",
45 "x": 7,
46 "y": 0
47 },
48 {
49 "label": "*",
50 "x": 8,
51 "y": 0
52 },
53 {
54 "label": "(",
55 "x": 9,
56 "y": 0
57 },
58 {
59 "label": ")",
60 "x": 10,
61 "y": 0
62 },
63 {
64 "label": "_",
65 "x": 11,
66 "y": 0
67 },
68 {
69 "label": "+",
70 "x": 12,
71 "y": 0
72 },
73 {
74 "label": "Backspace",
75 "x": 13,
76 "y": 0,
77 "w": 2
78 },
79 {
80 "label": "Home",
81 "x": 15,
82 "y": 0
83 },
84 {
85 "label": "Tab",
86 "x": 0,
87 "y": 1,
88 "w": 1.5
89 },
90 {
91 "label": "Q",
92 "x": 1.5,
93 "y": 1
94 },
95 {
96 "label": "W",
97 "x": 2.5,
98 "y": 1
99 },
100 {
101 "label": "E",
102 "x": 3.5,
103 "y": 1
104 },
105 {
106 "label": "R",
107 "x": 4.5,
108 "y": 1
109 },
110 {
111 "label": "T",
112 "x": 5.5,
113 "y": 1
114 },
115 {
116 "label": "Y",
117 "x": 6.5,
118 "y": 1
119 },
120 {
121 "label": "U",
122 "x": 7.5,
123 "y": 1
124 },
125 {
126 "label": "I",
127 "x": 8.5,
128 "y": 1
129 },
130 {
131 "label": "O",
132 "x": 9.5,
133 "y": 1
134 },
135 {
136 "label": "P",
137 "x": 10.5,
138 "y": 1
139 },
140 {
141 "label": "{",
142 "x": 11.5,
143 "y": 1
144 },
145 {
146 "label": "}",
147 "x": 12.5,
148 "y": 1
149 },
150 {
151 "label": "|",
152 "x": 13.5,
153 "y": 1,
154 "w": 1.5
155 },
156 {
157 "label": "Page Up",
158 "x": 15,
159 "y": 1
160 },
161 {
162 "label": "Caps Lock",
163 "x": 0,
164 "y": 2,
165 "w": 1.75
166 },
167 {
168 "label": "A",
169 "x": 1.75,
170 "y": 2
171 },
172 {
173 "label": "S",
174 "x": 2.75,
175 "y": 2
176 },
177 {
178 "label": "D",
179 "x": 3.75,
180 "y": 2
181 },
182 {
183 "label": "F",
184 "x": 4.75,
185 "y": 2
186 },
187 {
188 "label": "G",
189 "x": 5.75,
190 "y": 2
191 },
192 {
193 "label": "H",
194 "x": 6.75,
195 "y": 2
196 },
197 {
198 "label": "J",
199 "x": 7.75,
200 "y": 2
201 },
202 {
203 "label": "K",
204 "x": 8.75,
205 "y": 2
206 },
207 {
208 "label": "L",
209 "x": 9.75,
210 "y": 2
211 },
212 {
213 "label": ":",
214 "x": 10.75,
215 "y": 2
216 },
217 {
218 "label": "\"",
219 "x": 11.75,
220 "y": 2
221 },
222 {
223 "label": "Enter",
224 "x": 12.75,
225 "y": 2,
226 "w": 2.25
227 },
228 {
229 "label": "Page Down",
230 "x": 15,
231 "y": 2
232 },
233 {
234 "label": "Shift",
235 "x": 0,
236 "y": 3,
237 "w": 2.25
238 },
239 {
240 "label": "Z",
241 "x": 2.25,
242 "y": 3
243 },
244 {
245 "label": "X",
246 "x": 3.25,
247 "y": 3
248 },
249 {
250 "label": "C",
251 "x": 4.25,
252 "y": 3
253 },
254 {
255 "label": "V",
256 "x": 5.25,
257 "y": 3
258 },
259 {
260 "label": "B",
261 "x": 6.25,
262 "y": 3
263 },
264 {
265 "label": "N",
266 "x": 7.25,
267 "y": 3
268 },
269 {
270 "label": "M",
271 "x": 8.25,
272 "y": 3
273 },
274 {
275 "label": "<",
276 "x": 9.25,
277 "y": 3
278 },
279 {
280 "label": ">",
281 "x": 10.25,
282 "y": 3
283 },
284 {
285 "label": "?",
286 "x": 11.25,
287 "y": 3
288 },
289 {
290 "label": "Shift",
291 "x": 12.25,
292 "y": 3,
293 "w": 1.75
294 },
295 {
296 "label": "UP",
297 "x": 14,
298 "y": 3
299 },
300 {
301 "label": "End",
302 "x": 15,
303 "y": 3
304 },
305 {
306 "label": "Ctrl",
307 "x": 0,
308 "y": 4,
309 "w": 1.25
310 },
311 {
312 "label": "Win",
313 "x": 1.25,
314 "y": 4,
315 "w": 1.25
316 },
317 {
318 "label": "Alt",
319 "x": 2.5,
320 "y": 4,
321 "w": 1.25
322 },
323 {
324 "x": 3.75,
325 "y": 4,
326 "w": 6.25
327 },
328 {
329 "label": "Alt",
330 "x": 10,
331 "y": 4
332 },
333 {
334 "label": "Fn",
335 "x": 11,
336 "y": 4
337 },
338 {
339 "label": "Ctrl",
340 "x": 12,
341 "y": 4
342 },
343 {
344 "label": "LEFT",
345 "x": 13,
346 "y": 4
347 },
348 {
349 "label": "DOWN",
350 "x": 14,
351 "y": 4
352 },
353 {
354 "label": "RIGHT",
355 "x": 15,
356 "y": 4
357 }
358 ]
359 }
360 }
361} \ No newline at end of file
diff --git a/keyboards/keybee/keybee65/keybee65.c b/keyboards/keybee/keybee65/keybee65.c
new file mode 100644
index 000000000..12422f088
--- /dev/null
+++ b/keyboards/keybee/keybee65/keybee65.c
@@ -0,0 +1,39 @@
1/*
2Copyright 2020 <contact@vwolf.be>
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14#include "keybee65.h"
15
16led_config_t g_led_config = { {
17 // Key Matrix to LED Index
18 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 },
19 { 29, NO_LED, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
20 { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
21 { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED, 45, 44 },
22 { 58, 59, 60, NO_LED, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
23}, {
24 // LED Index to Physical Position
25 {6, 2}, {20, 2}, {35, 11}, {49, 11}, {64, 11}, {78, 11}, {92, 11}, {107, 11}, {120, 11}, {135, 11}, {148, 11}, {164, 11}, {177, 11}, {198, 11}, {220, 11},
26 {9, 24}, {26, 24}, {42, 24}, {56, 24}, {70, 24}, {85, 24}, {100, 24}, {113, 24}, {128, 24}, {143, 24}, {156, 24}, {170, 24}, {184, 24}, {202, 24}, {220, 24},
27 {11, 38}, {29, 38}, {46, 38}, {60, 38}, {74, 38}, {88, 38}, {103, 38}, {118, 38}, {132, 38}, {146, 38}, {160, 38}, {174, 38}, {198, 38}, {220, 38},
28 {16, 53}, {37, 53}, {52, 53}, {66, 53}, {80, 53}, {96, 53}, {110, 53}, {125, 53}, {140, 53}, {153, 53}, {168, 53}, {187, 53}, {207, 53}, {220, 53},
29 {6, 68}, {25, 68}, {44, 68},
30}, {
31 // LED Index to Flag
32 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
33 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
34 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
35 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
36 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
37
38 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
39} }; \ No newline at end of file
diff --git a/keyboards/keybee/keybee65/keybee65.h b/keyboards/keybee/keybee65/keybee65.h
new file mode 100644
index 000000000..484f8977a
--- /dev/null
+++ b/keyboards/keybee/keybee65/keybee65.h
@@ -0,0 +1,32 @@
1/*
2Copyright 2020 <contact@vwolf.be>
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#pragma once
16
17#include "quantum.h"
18
19/* Keybee65 Keymap Definitions */
20#define LAYOUT_65_ansi( \
21 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \
22 K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
23 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
24 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
25 K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F \
26) { \
27 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \
28 { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
29 { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \
30 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
31 { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F } \
32}
diff --git a/keyboards/keybee/keybee65/keymaps/default/keymap.c b/keyboards/keybee/keybee65/keymaps/default/keymap.c
new file mode 100644
index 000000000..13d1ba1f9
--- /dev/null
+++ b/keyboards/keybee/keybee65/keymaps/default/keymap.c
@@ -0,0 +1,84 @@
1/*
2Copyright 2020 <me@homedrop.org>
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#include QMK_KEYBOARD_H
16
17enum layers {
18 _LAYER0,
19 _LAYER1,
20};
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24 [_LAYER0] = LAYOUT_65_ansi(
25 KC_GESC, 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,
26 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,
27 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,
28 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,
29 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
30 ),
31
32 [_LAYER1] = LAYOUT_65_ansi(
33 KC_TRNS, 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_TRNS, KC_TRNS,
34 KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET, KC_TRNS,
35 KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK
38 )
39};
40
41bool process_record_user(uint16_t keycode, keyrecord_t *record) {
42 switch (keycode) {
43 case RGB_TOG:
44 if (record->event.pressed) {
45 switch (rgb_matrix_get_flags()) {
46 case LED_FLAG_ALL: {
47 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
48 rgb_matrix_set_color_all(0, 0, 0);
49 }
50 break;
51 case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER): {
52 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
53 rgb_matrix_set_color_all(0, 0, 0);
54 }
55 break;
56 case LED_FLAG_UNDERGLOW: {
57 rgb_matrix_set_flags(LED_FLAG_INDICATOR);
58 rgb_matrix_set_color_all(0, 0, 0);
59 }
60 break;
61 case LED_FLAG_INDICATOR: {
62 rgb_matrix_set_flags(LED_FLAG_NONE);
63 rgb_matrix_disable_noeeprom();
64 }
65 break;
66 default: {
67 rgb_matrix_set_flags(LED_FLAG_ALL);
68 rgb_matrix_enable_noeeprom();
69 }
70 break;
71 }
72 }
73 return false;
74 default:
75 return true; //Process all other keycodes normally
76 }
77}
78
79void rgb_matrix_indicators_kb(void) {
80 led_t host_leds = host_keyboard_led_state();
81 if (host_leds.caps_lock) {
82 rgb_matrix_set_color(30, 254, 189, 41); // set caps lock led color first nunber is index, R G B
83 }
84} \ No newline at end of file
diff --git a/keyboards/keybee/keybee65/keymaps/via/keymap.c b/keyboards/keybee/keybee65/keymaps/via/keymap.c
new file mode 100644
index 000000000..811e13ef5
--- /dev/null
+++ b/keyboards/keybee/keybee65/keymaps/via/keymap.c
@@ -0,0 +1,105 @@
1/*
2Copyright 2020 <me@homedrop.org>
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#include QMK_KEYBOARD_H
16
17enum layers {
18 _LAYER0,
19 _LAYER1,
20 _LAYER2,
21 _LAYER3,
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25
26 [_LAYER0] = LAYOUT_65_ansi(
27 KC_GESC, 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,
28 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,
29 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,
30 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,
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
32 ),
33
34 [_LAYER1] = LAYOUT_65_ansi(
35 KC_TRNS, 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_TRNS, KC_TRNS,
36 KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET, KC_TRNS,
37 KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK
40 ),
41
42 [_LAYER2] = LAYOUT_65_ansi(
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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,
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,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
48 ),
49
50 [_LAYER3] = LAYOUT_65_ansi(
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
56 ),
57
58};
59
60bool process_record_user(uint16_t keycode, keyrecord_t *record) {
61 switch (keycode) {
62 case RGB_TOG:
63 if (record->event.pressed) {
64 switch (rgb_matrix_get_flags()) {
65 case LED_FLAG_ALL: {
66 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
67 rgb_matrix_set_color_all(0, 0, 0);
68 }
69 break;
70 case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER): {
71 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
72 rgb_matrix_set_color_all(0, 0, 0);
73 }
74 break;
75 case LED_FLAG_UNDERGLOW: {
76 rgb_matrix_set_flags(LED_FLAG_INDICATOR);
77 rgb_matrix_set_color_all(0, 0, 0);
78 }
79 break;
80 case LED_FLAG_INDICATOR: {
81 rgb_matrix_set_flags(LED_FLAG_NONE);
82 rgb_matrix_disable_noeeprom();
83 }
84 break;
85 default: {
86 rgb_matrix_set_flags(LED_FLAG_ALL);
87 rgb_matrix_enable_noeeprom();
88 }
89 break;
90 }
91 }
92 return false;
93 default:
94 return true; //Process all other keycodes normally
95 }
96}
97
98void rgb_matrix_indicators_kb(void) {
99 led_t host_leds = host_keyboard_led_state();
100 if (host_leds.caps_lock) {
101 rgb_matrix_set_color(30, 254, 189, 41); // set caps lock led color first nunber is index, R G B
102 } else if (!(rgb_matrix_get_flags() & LED_FLAG_MODIFIER)) {
103 rgb_matrix_set_color(30, 0, 0, 0);
104 }
105} \ No newline at end of file
diff --git a/keyboards/keybee/keybee65/keymaps/via/rules.mk b/keyboards/keybee/keybee65/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/keybee/keybee65/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/keybee/keybee65/readme.md b/keyboards/keybee/keybee65/readme.md
new file mode 100644
index 000000000..afe9cfd22
--- /dev/null
+++ b/keyboards/keybee/keybee65/readme.md
@@ -0,0 +1,26 @@
1# KeyBee 65
2
3The following is the QMK Firmware for the KeyBee 65 Hotswap PCB.
4
5The PCB features:
6* QMK & VIA compatibility
7* Hotswap
8* RGB underglow
9* Per-Key RGB
10
11---
12
13* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp)
14* Hardware Supported: Pollen65
15* Hardware Availability: [keybeeshop.com](https://www.keybeeshop.com/collections/keyboards/products/pollen65-mechanical-keyboard-kit)
16
17Make example for this keyboard (after setting up your build environment):
18
19 make keybee/keybee65:default
20
21See 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).
22
23## Bootloader Enter the bootloader in 3 ways:
24* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch)
25* **Physical reset button**: Briefly press the button on the back of the PCB
26* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `RESET` \ No newline at end of file
diff --git a/keyboards/keybee/keybee65/rules.mk b/keyboards/keybee/keybee65/rules.mk
new file mode 100644
index 000000000..17b1906d4
--- /dev/null
+++ b/keyboards/keybee/keybee65/rules.mk
@@ -0,0 +1,27 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # 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
22KEYBOARD_LOCK_ENABLE = yes
23ENCODER_ENABLE = no
24RGB_MATRIX_ENABLE = yes
25RGB_MATRIX_DRIVER = WS2812
26
27LAYOUTS = 65_ansi