6d4f8d896398dda1177aa73ec2110fc0e3e10729
- Author
- jack <jack@pngu.org>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/keyboards/geigeigeist/klor/config.h b/keyboards/geigeigeist/klor/config.h
2new file mode 100644
3index 0000000000000000000000000000000000000000..2ece9b3d29e052d451c1787dea83c13383cb9133
4--- /dev/null
5+++ b/keyboards/geigeigeist/klor/config.h
6@@ -0,0 +1,17 @@
7+// Copyright 2024 QMK
8+// SPDX-License-Identifier: GPL-2.0-or-later
9+#pragma once
10+
11+#ifdef POINTING_DEVICE_ENABLE
12+# define POINTING_DEVICE_SCLK_PIN D0
13+# define POINTING_DEVICE_SDIO_PIN D1
14+#endif
15+
16+#ifdef AUDIO_ENABLE
17+# define AUDIO_PIN B5
18+#endif
19+
20+#ifdef OLED_ENABLE
21+# define OLED_DISPLAY_128X64
22+# define OLED_FONT_H "keyboards/geigeigeist/klor/glcdfont.c"
23+#endif
24diff --git a/keyboards/geigeigeist/klor/glcdfont.c b/keyboards/geigeigeist/klor/glcdfont.c
25new file mode 100644
26index 0000000000000000000000000000000000000000..3bab5d5081eba1d072371828bcbb72e0257fadf3
27--- /dev/null
28+++ b/keyboards/geigeigeist/klor/glcdfont.c
29@@ -0,0 +1,16 @@
30+// Copyright 2024 QMK
31+// SPDX-License-Identifier: GPL-2.0-or-later
32+
33+#include "progmem.h"
34+
35+static const unsigned char PROGMEM font[] = {
36diff --git a/keyboards/geigeigeist/klor/keyboard.json b/keyboards/geigeigeist/klor/keyboard.json
37new file mode 100644
38index 0000000000000000000000000000000000000000..a61c931dd9ef28331e6a8ac61487234640ee0908
39--- /dev/null
40+++ b/keyboards/geigeigeist/klor/keyboard.json
41@@ -0,0 +1,167 @@
42+{
43+ "manufacturer": "Geigeigeist",
44+ "keyboard_name": "Klor",
45+ "maintainer": "waffle87",
46+ "build": {
47+ "lto": true
48+ },
49+ "development_board": "elite_c",
50+ "diode_direction": "COL2ROW",
51+ "encoder": {
52+ "rotary": [
53+ {"pin_a": "F5", "pin_b": "F4"}
54+ ]
55+ },
56+ "features": {
57+ "bootmagic": true,
58+ "encoder": true,
59+ "extrakey": true,
60+ "haptic": true,
61+ "mousekey": true,
62+ "oled": true,
63+ "pointing_device": false,
64+ "rgb_matrix": true,
65+ "audio": false
66+ },
67+ "haptic": {
68+ "driver": "drv2605l"
69+ },
70+ "matrix_pins": {
71+ "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
72+ "rows": ["C6", "D7", "E6", "B4"]
73+ },
74+ "rgb_matrix": {
75+ "driver": "ws2812",
76+ "animations": {
77+ "alphas_mods": true,
78+ "band_sat": true,
79+ "band_val": true,
80+ "breathing": true,
81+ "gradient_left_right": true,
82+ "gradient_up_down": true
83+ },
84+ "layout": [
85+ {"matrix": [3, 4], "x": 102, "y": 63, "flags": 1},
86+ {"matrix": [3, 3], "x": 89, "y": 54, "flags": 1},
87+ {"matrix": [3, 2], "x": 74, "y": 49, "flags": 1},
88+ {"matrix": [2, 5], "x": 75, "y": 34, "flags": 4},
89+ {"matrix": [1, 5], "x": 75, "y": 21, "flags": 4},
90+ {"matrix": [0, 5], "x": 75, "y": 8, "flags": 4},
91+ {"matrix": [0, 4], "x": 60, "y": 6, "flags": 4},
92+ {"matrix": [1, 4], "x": 60, "y": 19, "flags": 4},
93+ {"matrix": [2, 4], "x": 60, "y": 32, "flags": 4},
94+ {"matrix": [3, 1], "x": 58, "y": 48, "flags": 1},
95+ {"matrix": [2, 3], "x": 46, "y": 25, "flags": 4},
96+ {"matrix": [1, 3], "x": 46, "y": 12, "flags": 4},
97+ {"matrix": [0, 3], "x": 46, "y": 0, "flags": 4},
98+ {"matrix": [0, 2], "x": 29, "y": 7, "flags": 4},
99+ {"matrix": [1, 2], "x": 30, "y": 20, "flags": 4},
100+ {"matrix": [2, 2], "x": 31, "y": 33, "flags": 4},
101+ {"matrix": [2, 1], "x": 17, "y": 42, "flags": 4},
102+ {"matrix": [1, 1], "x": 15, "y": 30, "flags": 4},
103+ {"matrix": [0, 1], "x": 13, "y": 17, "flags": 4},
104+ {"matrix": [1, 0], "x": 0, "y": 28, "flags": 1},
105+ {"matrix": [2, 0], "x": 3, "y": 41, "flags": 1},
106+ {"matrix": [7, 4], "x": 122, "y": 63, "flags": 1},
107+ {"matrix": [7, 3], "x": 135, "y": 54, "flags": 1},
108+ {"matrix": [7, 2], "x": 150, "y": 49, "flags": 1},
109+ {"matrix": [6, 5], "x": 149, "y": 34, "flags": 4},
110+ {"matrix": [5, 5], "x": 149, "y": 21, "flags": 4},
111+ {"matrix": [4, 5], "x": 149, "y": 8, "flags": 4},
112+ {"matrix": [4, 4], "x": 163, "y": 6, "flags": 4},
113+ {"matrix": [5, 4], "x": 163, "y": 19, "flags": 4},
114+ {"matrix": [6, 4], "x": 163, "y": 32, "flags": 4},
115+ {"matrix": [7, 1], "x": 166, "y": 48, "flags": 1},
116+ {"matrix": [6, 3], "x": 178, "y": 25, "flags": 4},
117+ {"matrix": [5, 3], "x": 178, "y": 12, "flags": 4},
118+ {"matrix": [4, 3], "x": 178, "y": 0, "flags": 4},
119+ {"matrix": [4, 2], "x": 195, "y": 7, "flags": 4},
120+ {"matrix": [5, 2], "x": 194, "y": 20, "flags": 4},
121+ {"matrix": [6, 2], "x": 193, "y": 33, "flags": 4},
122+ {"matrix": [4, 1], "x": 206, "y": 42, "flags": 4},
123+ {"matrix": [5, 1], "x": 209, "y": 30, "flags": 4},
124+ {"matrix": [6, 1], "x": 211, "y": 17, "flags": 4},
125+ {"matrix": [5, 0], "x": 224, "y": 28, "flags": 1},
126+ {"matrix": [6, 0], "x": 221, "y": 41, "flags": 1}
127+ ],
128+ "split_count": [21, 21]
129+ },
130+ "split": {
131+ "enabled": true,
132+ "encoder": {
133+ "right": {
134+ "rotary": [
135+ {"pin_a": "F4", "pin_b": "F5"}
136+ ]
137+ }
138+ },
139+ "serial": {
140+ "pin": "D2"
141diff --git a/keyboards/geigeigeist/klor/keymaps/default/keymap.json b/keyboards/geigeigeist/klor/keymaps/default/keymap.json
142new file mode 100644
143index 0000000000000000000000000000000000000000..cb9e5b4005973878c61ccbd3faa1c6948288f570
144--- /dev/null
145+++ b/keyboards/geigeigeist/klor/keymaps/default/keymap.json
146@@ -0,0 +1,13 @@
147+{
148+ "keyboard": "geigeigeist/klor",
149+ "keymap": "default",
150+ "layout": "LAYOUT",
151+ "layers": [
152+ [
153+ "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P",
154+ "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
155+ "KC_DEL", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_MUTE", "KC_MPLY", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT",
156+ "KC_LCTL", "KC_TRNS", "KC_SPC", "KC_LALT", "KC_LGUI", "KC_ENT", "KC_TRNS", "KC_BSPC"
157+ ]
158+ ]
159+}
160diff --git a/keyboards/geigeigeist/klor/klor.c b/keyboards/geigeigeist/klor/klor.c
161new file mode 100644
162index 0000000000000000000000000000000000000000..5676c974f0ef901d368b42cf8420251ebb495dfa
163--- /dev/null
164+++ b/keyboards/geigeigeist/klor/klor.c
165@@ -0,0 +1,103 @@
166+// Copyright 2024 QMK
167+// SPDX-License-Identifier: GPL-2.0-or-later
168+#include "quantum.h"
169+
170+#ifdef OLED_ENABLE
171+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
172+ return OLED_ROTATION_180;
173+}
174+
175+static const char PROGMEM klor_face[] = {
176+ // clang-format off
177+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178+ 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
179+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0,
180+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
183+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
184+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
185+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
186+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
187+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
188+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
190+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
191+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
192+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
194+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
195+ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
196+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
198+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0,
199+ 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
200+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff,
203+ 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
204+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
206+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
207+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
208+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
209+ // clang-format on
210+};
211+
212+void render_keyboard_status(void) {
213+ static const char PROGMEM sep_v[] = {0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0};
214+ static const char PROGMEM sep_h1[] = {0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0};
215+ static const char PROGMEM sep_h2[] = {0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0};
216+ static const char PROGMEM face_1[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0xE1, 0};
217+ static const char PROGMEM face_2[] = {0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xE1, 0};
218+ static const char PROGMEM os_m_1[] = {0x95, 0x96, 0};
219+ static const char PROGMEM os_m_2[] = {0xB5, 0xB6, 0};
220+ static const char PROGMEM os_w_1[] = {0x97, 0x98, 0};
221+ static const char PROGMEM os_w_2[] = {0xB7, 0xB8, 0};
222+ static const char PROGMEM s_lock[] = {0x8F, 0x90, 0};
223+ static const char PROGMEM n_lock[] = {0x91, 0x92, 0};
224+ static const char PROGMEM c_lock[] = {0x93, 0x94, 0};
225+ static const char PROGMEM b_lock[] = {0xE1, 0xE1, 0};
226+ static const char PROGMEM hap_en[] = {0xB1, 0xB2, 0};
227+# ifdef AUDIO_ENABLE
228+ static const char PROGMEM aud_en[] = {0xAF, 0xB0, 0};
229+ static const char PROGMEM aud_di[] = {0xCF, 0xD0, 0};
230+# endif
231+ oled_write_ln_P(sep_v, false);
232+ oled_write_P(keymap_config.swap_lctl_lgui ? os_m_1 : os_w_1, false);
233+ oled_write_P(sep_h1, false);
234+ oled_write_P(face_1, false);
235+ oled_write_P(keymap_config.swap_lctl_lgui ? os_m_2 : os_w_2, false);
236+ oled_write_P(sep_h1, false);
237+ oled_write_P(face_2, false);
238+ oled_write_ln_P(sep_v, false);
239+
240+ led_t led_usb_state = host_keyboard_led_state();
241+ oled_write_P(led_usb_state.num_lock ? n_lock : b_lock, false);
242+ oled_write_P(led_usb_state.caps_lock ? c_lock : b_lock, false);
243+ oled_write_P(led_usb_state.scroll_lock ? s_lock : b_lock, false);
244+ oled_write_P(sep_h2, false);
245+
246+# ifndef AUDIO_ENABLE
247+ oled_write_P(b_lock, false);
248+# endif
249+ oled_write_P(b_lock, false);
250+
251+# ifdef AUDIO_ENABLE
252+ oled_write_P(is_audio_on() ? aud_en : aud_di, false);
253+# endif
254+ oled_write_P(hap_en, false);
255+}
256+
257+bool oled_task_kb(void) {
258+ if (!oled_task_user()) {
259+ return false;
260+ }
261+ if (is_keyboard_master()) {
262+ render_keyboard_status();
263+ } else {
264+ oled_write_raw_P(klor_face, sizeof(klor_face));
265diff --git a/keyboards/geigeigeist/klor/readme.md b/keyboards/geigeigeist/klor/readme.md
266new file mode 100644
267index 0000000000000000000000000000000000000000..905dc8c5b39faad427c5c3211c8982cd95d65c13
268--- /dev/null
269+++ b/keyboards/geigeigeist/klor/readme.md
270@@ -0,0 +1,26 @@
271+# Klor
272+
273+
274+
275+* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
276+* Hardware Supported: Klor PCBs w/ Pro-Micro compatible microcontrollers
277+* Hardware Availability: [github:geigeigeist/klor](https://github.com/geigeigeist/klor)
278+
279+**Note**: Audio and Pointing Device features are disabled by default to conserve firmware space on AVR
280+
281+Make example for this keyboard (after setting up your build environment):
282+
283+ make geigeigeist/klor:default
284+
285+Flashing example for this keyboard:
286+
287+ make geigeigeist/klor:default:flash
288+
289diff --git a/keyboards/geigeigeist/klor/rules.mk b/keyboards/geigeigeist/klor/rules.mk
290new file mode 100644
291index 0000000000000000000000000000000000000000..5ff6500c9a87a34f38c2d2087ed4266ba90d50bc
292--- /dev/null
293+++ b/keyboards/geigeigeist/klor/rules.mk
294@@ -0,0 +1 @@
295+POINTING_DEVICE_DRIVER = paw3204