From a274d43796f9eb40a0f5928a24439cf8d0a339f1 Mon Sep 17 00:00:00 2001
From: Victor <VictorN076@gmail.com>
Date: Sun, 12 May 2024 23:34:04 -0500
Subject: [PATCH] Initial checkin - trying to port over the old config to
 info.json data driven config - stopped for tonight

---
 keyboards/klor/config.h  | 55 ++++++++++++++++++++++++
 keyboards/klor/info.json | 90 ++++++++++++++++++++++++++++++++++++++++
 keyboards/klor/klor.c    |  0
 keyboards/klor/klor.h    |  0
 keyboards/klor/readme.md | 26 ++++++++++++
 keyboards/klor/rules.mk  | 15 +++++++
 6 files changed, 186 insertions(+)
 create mode 100644 keyboards/klor/config.h
 create mode 100644 keyboards/klor/info.json
 create mode 100644 keyboards/klor/klor.c
 create mode 100644 keyboards/klor/klor.h
 create mode 100644 keyboards/klor/readme.md
 create mode 100644 keyboards/klor/rules.mk

diff --git a/keyboards/klor/config.h b/keyboards/klor/config.h
new file mode 100644
index 00000000..2daaaec4
--- /dev/null
+++ b/keyboards/klor/config.h
@@ -0,0 +1,55 @@
+#pragma once
+
+// Most configuration will be found in info.json
+
+// ┌─────────────────────────────────────────────────┐
+// │ o l e d s                                       │
+// └─────────────────────────────────────────────────┘
+
+#ifdef OLED_ENABLE
+# define OLED_DISPLAY_128X64
+#endif
+
+// ┌─────────────────────────────────────────────────┐
+// │ a u d i o                                       │
+// └─────────────────────────────────────────────────┘ 
+
+#define AUDIO_PIN B5
+#define AUDIO_VOICES
+#define AUDIO_DAC_SAMPLE_MAX 4095U
+#define AUDIO_VOICE_DEFAULT butts_fader
+
+#ifdef AUDIO_ENABLE     
+#    define KLOR_SOUND W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0)
+#    define STARTUP_SONG SONG(KLOR_SOUND)
+#    define BYE_SOUND H__NOTE(_DS4), H__NOTE(_DS3), W__NOTE(_DS1)
+#    define GOODBYE_SONG SONG(BYE_SOUND)
+#    define DEFAULT_LAYER_SONGS \
+        { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND) }
+#endif 
+
+// ┌─────────────────────────────────────────────────┐
+// │ h a p t i c   f e e d b a c k                   │
+// └─────────────────────────────────────────────────┘ 
+
+#ifdef HAPTIC_ENABLE
+#    define FB_ERM_LRA 1
+#    define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 
+#    define FB_LOOPGAIN 1 // For  Low:0, Medium:1, High:2, Very High:3 
+#    define RATED_VOLTAGE 2
+#    define V_PEAK 2.8
+#    define V_RMS 2.0 
+#    define F_LRA 150 // resonance freq 
+#    define DRV_GREETING       alert_750ms
+#endif
+
+// ┌─────────────────────────────────────────────────┐
+// │ t r a c k b a l l                               │
+// └─────────────────────────────────────────────────┘ 
+
+#ifdef POINTING_DEVICE_ENABLE
+#    define PAW3204_SCLK_PIN D0
+#    define PAW3204_SDIO_PIN D1
+#    define POINTING_DEVICE_AUTO_MOUSE_ENABLE
+#    define AUTO_MOUSE_DELAY 300
+#endif
\ No newline at end of file
diff --git a/keyboards/klor/info.json b/keyboards/klor/info.json
new file mode 100644
index 00000000..ecffb70c
--- /dev/null
+++ b/keyboards/klor/info.json
@@ -0,0 +1,90 @@
+{
+    "keyboard_name": "KLOR", 
+    "url": "https://github.com/GEIGEIGEIST/KLOR", 
+    "manufacturer": "GEIST",
+    "usb": {
+        "vid": "0x3A3C",
+        "pid": "0x0001",
+        "device_version": "1.3.0"
+    },
+	"processor": "RP2040",
+	"bootloader": "rp2040",
+	"matrix_pins": {
+		"cols": [ "F6", "F7", "B1", "B3", "B2", "B6" ],
+		"rows": [ "C6", "D7", "E6", "B4" ]
+	},
+	"diode_direction": "COL2ROW",
+	"features": {
+		"bootmagic": true,
+		"extrakey": true,
+		"encoder": true,
+		"oled": true
+	},
+	"build": {
+		"lto": true
+	},
+	"encoder": {
+		"rotary": [
+			{
+				"pin_a": "F4", 
+				"pin_b": "F5",
+				"resolution": 2
+			}
+		]
+	},
+	"split": {
+		"enabled": true,
+		"soft_serial_pin": "D2",
+		"encoder": {
+			"right": {
+				"rotary": [ 
+					{ 
+						"pin_a": "F4", 
+						"pin_b": "F5", 
+						"resolution": 2
+					}
+				]
+			}
+		},
+		"transport": {
+			"sync": {
+				"matrix_state": true,
+				"oled": true,
+				"haptic": true
+			}
+		}
+	},
+    "rgb_matrix": {
+        "driver": "ws2812",
+		"led_count": 42,
+		"split_count": [21,21],
+		"max_brightness": 180,
+		"sleep": true
+    },
+	"ws2812": {
+		"pin": "D3",
+		"driver": "vendor"
+	},
+    "layouts": {
+        "LAYOUT_polydactyl": {
+            "layout": [
+                {"x":3, "y":0.25}, {"x":13, "y":0.25}, {"x":4, "y":0.75}, {"x":12, "y":0.75}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":3, "y":1.25}, {"x":13, "y":1.25}, {"x":4, "y":1.75}, {"x":12, "y":1.75}, {"x":5, "y":2}, {"x":11, "y":2}, {"x":3, "y":2.25}, {"x":13, "y":2.25}, {"x":4, "y":2.75}, {"x":12, "y":2.75}, {"x":5, "y":3}, {"x":11, "y":3}, {"x":6.25, "y":3.25}, {"x":9.75, "y":3.25}, {"x":-0.5, "y":-0.4500000000000002}, {"x":-0.5, "y":-4.15}, {"x":-0.5, "y":-6.15}, {"x":-0.5, "y":-5.15}, {"x":-0.5, "y":-4.15}, {"x":-0.25, "y":-5.5}, {"x":0.75, "y":-4.7}, {"x":-0.25, "y":-4.500000000000001}, {"x":0.75, "y":-3.7000000000000006}, {"x":-0.25, "y":-3.5000000000000004}, {"x":-0.5, "y":-7.200000000000001}, {"x":-0.5, "y":-7.200000000000001}, {"x":-0.5, "y":-7.200000000000001}, {"x":-0.5, "y":-10.9}, {"x":-0.5, "y":-10.9}, {"x":-0.5, "y":-10.9}, {"x":-1.0, "y":-12.250000000000002}, {"x":-2, "y":-11.450000000000001}, {"x":-1.0, "y":-11.250000000000002}, {"x":-2, "y":-10.450000000000001}, {"x":-1.0, "y":-10.250000000000002}, {"x":-0.75, "y":-12.250000000000002}, {"x":-0.75, "y":-11.250000000000002}, {"x":-0.75, "y":-10.250000000000002}
+            ]
+        },
+       "LAYOUT_konrad": {
+            "layout": [
+                {"x":3, "y":0.25}, {"x":13, "y":0.25}, {"x":4, "y":0.75}, {"x":12, "y":0.75}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":3, "y":1.25}, {"x":13, "y":1.25}, {"x":4, "y":1.75}, {"x":12, "y":1.75}, {"x":5, "y":2}, {"x":11, "y":2}, {"x":3, "y":2.25}, {"x":13, "y":2.25}, {"x":4, "y":2.75}, {"x":12, "y":2.75}, {"x":5, "y":3}, {"x":11, "y":3}, {"x":6.25, "y":3.25}, {"x":9.75, "y":3.25}, {"x":-0.5, "y":-0.4499999999999993}, {"x":-0.5, "y":-4.149999999999999}, {"x":-0.5, "y":-6.149999999999999}, {"x":-0.5, "y":-5.149999999999999}, {"x":-0.5, "y":-4.149999999999999}, {"x":-0.25, "y":-5.499999999999999}, {"x":0.75, "y":-4.699999999999998}, {"x":-0.25, "y":-4.499999999999999}, {"x":0.75, "y":-3.6999999999999984}, {"x":-0.25, "y":-3.4999999999999987}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-1.0, "y":-12.249999999999998}, {"x":-2, "y":-11.449999999999998}, {"x":-1.0, "y":-11.249999999999998}, {"x":-2, "y":-10.449999999999998}, {"x":-1.0, "y":-10.249999999999998}, {"x":-0.75, "y":-12.249999999999998}, {"x":-0.75, "y":-11.249999999999998}, {"x":-0.75, "y":-10.249999999999998}
+            ]
+        },
+       "LAYOUT_yubitsume": {
+            "layout": [
+                {"x":2.25, "y":0.25}, {"x":12.25, "y":0.25}, {"x":3.25, "y":0.75}, {"x":11.25, "y":0.75}, {"x":4.25, "y":1}, {"x":10.25, "y":1}, {"x":2.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":3.25, "y":1.75}, {"x":11.25, "y":1.75}, {"x":4.25, "y":2}, {"x":10.25, "y":2}, {"x":2.25, "y":2.25}, {"x":12.25, "y":2.25}, {"x":3.25, "y":2.75}, {"x":11.25, "y":2.75}, {"x":4.25, "y":3}, {"x":10.25, "y":3}, {"x":5.5, "y":3.25}, {"x":9, "y":3.25}, {"x":-0.5, "y":-0.4499999999999993}, {"x":-0.5, "y":-4.149999999999999}, {"x":-1.25, "y":-6.149999999999999}, {"x":-1.25, "y":-5.149999999999999}, {"x":-1.25, "y":-4.149999999999999}, {"x":-1.0, "y":-5.499999999999999}, {"x":-1.0, "y":-4.499999999999999}, {"x":-1.0, "y":-3.4999999999999987}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-1.75, "y":-12.25}, {"x":-1.75, "y":-11.25}, {"x":-1.75, "y":-10.25}, {"x":-1.5, "y":-12.25}, {"x":-1.5, "y":-11.25}, {"x":-1.5, "y":-10.25}
+            ]
+       },
+       "LAYOUT_saegewerk": {
+            "layout": [
+                {"x":2.25, "y":0.25}, {"x":12.25, "y":0.25}, {"x":3.25, "y":0.75}, {"x":11.25, "y":0.75}, {"x":4.25, "y":1}, {"x":10.25, "y":1}, {"x":2.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":3.25, "y":1.75}, {"x":11.25, "y":1.75}, {"x":4.25, "y":2}, {"x":10.25, "y":2}, {"x":2.25, "y":2.25}, {"x":12.25, "y":2.25}, {"x":3.25, "y":2.75}, {"x":11.25, "y":2.75}, {"x":4.25, "y":3}, {"x":10.25, "y":3}, {"x":5.5, "y":3.25}, {"x":9, "y":3.25}, {"x":-0.5, "y":-0.4499999999999993}, {"x":-0.5, "y":-4.149999999999999}, {"x":-1.25, "y":-6.149999999999999}, {"x":-1.25, "y":-5.149999999999999}, {"x":-1.25, "y":-4.149999999999999}, {"x":-1.0, "y":-5.499999999999999}, {"x":-1.0, "y":-4.499999999999999}, {"x":-1.0, "y":-3.4999999999999987}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-1.75, "y":-12.249999999999998}, {"x":-1.75, "y":-11.249999999999998}, {"x":-1.75, "y":-10.249999999999998}, {"x":-1.5, "y":-12.249999999999998}, {"x":-1.5, "y":-11.249999999999998}, {"x":-1.5, "y":-10.249999999999998}
+            ]
+        }
+    }
+}
diff --git a/keyboards/klor/klor.c b/keyboards/klor/klor.c
new file mode 100644
index 00000000..e69de29b
diff --git a/keyboards/klor/klor.h b/keyboards/klor/klor.h
new file mode 100644
index 00000000..e69de29b
diff --git a/keyboards/klor/readme.md b/keyboards/klor/readme.md
new file mode 100644
index 00000000..6632bcf2
--- /dev/null
+++ b/keyboards/klor/readme.md
@@ -0,0 +1,26 @@
+```text
+█         █    █            ▄▄▄▀▀▀▀▀▀▄▄▄        █▀▀▀▀▀▀▀▀▀▀█
+█        █     █          ▄▀            ▀▄      █          █
+█       █      █        ▄▀                ▀▄    █          █
+█      █       █        █                  █    █          █
+█     █        █       █                    █   █          █
+█    █         █       █                    █   █▄▄▄▄▄▄▄▄▄▄█
+█   █ █        █       █                    █   █      █
+█  █   █       █        █                  █    █       █
+█ █     █      █        ▀▄                ▄▀    █        █
+██       █     █          ▀▄            ▄▀      █         █
+█         █    █▄▄▄▄▄▄▄▄    ▀▀▀▄▄▄▄▄▄▀▀▀        █          █
+```
+
+# KLOR split keyboard
+
+KLOR is 42 keys column-staggered split keyboard made by @geigeigeist. It supports a per key RGB matrix, encoders, OLED displays, haptic feedback, audio, a Pixart Paw3204 trackball and four different layouts, through brake off parts.
+It's schematics are based on the Sofle, while the layout is based on the Yacc46.
+
+t4croun: this is my attempt at modernizing @geigeigeist's keymap. The repo has not been updated in a few years and QMK has introduced breaking changes. His repo can be found [here](https://github.com/GEIGEIGEIST/qmk-config-klor). Note: Focusing on defining my saegewerk configuration as that is what I have
+
+You can use this command to compile the firmware
+`qmk compile -kb klor -km default`
+
+and this command if you want to compile the firmware for a RP2040 based MCU
+`qmk compile -kb klor/2040 -km default`
\ No newline at end of file
diff --git a/keyboards/klor/rules.mk b/keyboards/klor/rules.mk
new file mode 100644
index 00000000..c3fcb138
--- /dev/null
+++ b/keyboards/klor/rules.mk
@@ -0,0 +1,15 @@
+#HAPTIC FEEDBACK
+HAPTIC_DRIVER = drv2605l
+
+#PER KEY RGB
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+RGB_MATRIX_ENABLE = yes      # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
+
+#SPACE SAVING
+AUDIO_ENABLE = no
+MUSIC_ENABLE = no
+CONSOLE_ENABLE = no
+COMMAND_ENABLE = no
+SPACE_CADET_ENABLE = no
+GRAVE_ESC_ENABLE = no